Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/monbrey/pokeapi-typescript
Typescript SDK for PokeAPI (https://pokeapi.co)
https://github.com/monbrey/pokeapi-typescript
Last synced: 4 months ago
JSON representation
Typescript SDK for PokeAPI (https://pokeapi.co)
- Host: GitHub
- URL: https://github.com/monbrey/pokeapi-typescript
- Owner: monbrey
- Created: 2019-08-07T21:55:28.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-06T11:51:52.000Z (almost 2 years ago)
- Last Synced: 2024-09-19T16:48:31.487Z (5 months ago)
- Language: TypeScript
- Size: 91.8 KB
- Stars: 20
- Watchers: 1
- Forks: 6
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pokeapi-typescript
## About
pokeapi-typescript is a fully-typed SDK for the [PokeAPI](https://pokeapi.co) using Promises, featuring an easy to manage cache which utilises [Collections](https://github.com/discordjs/collection)
## Installation
Via yarn: `yarn add pokeapi-typescript`
Via npm: `npm install pokeapi-typescript`
## Getting Started
To start using the PokeAPI, import the module. All available endpoints are mounted as static properties of the module.
```js
// ES6 imports
import PokeAPI from "pokeapi-typescript";
// Node.js require
const PokeAPI = require("pokeapi-typescript");
```### Endpoints
Every endpoint documented in the [PokeAPI Docs](https://pokeapi.co/docs/v2.html) is available. By default, any data that is fetched will be cached in-memory.
### .resolve()
`PokeAPI..resolve()` retrieves a resource, first checking the internal cache to see if it is available. If no cached resource exists, it will be fetched via the API.
#### By ID
```js
// Using .then()
PokeAPI.Pokemon.resolve(25).then(result => console.log(result));// Using async/await
const result = await PokeAPI.Pokemon.resolve(25);
```#### By Name
```js
// Using.then()
PokeAPI.Pokemon.resolve("pikachu").then(result => console.log(result));// Using async/await
const result = await PokeAPI.Pokemon.resolve("pikachu");
```### .fetch()
`PokeAPI..fetch()` will always retrieve a resource via the API, updating any cached resources in the process.
#### By ID
```js
// Using .then()
PokeAPI.Pokemon.fetch(25).then(result => console.log(result));// Using async/await
const result = await PokeAPI.Pokemon.fetch(25);
```#### By Name
```js
// Using.then()
PokeAPI.Pokemon.fetch("pikachu").then(result => console.log(result));// Using async/await
const result = await PokeAPI.Pokemon.fetch("pikachu");
```### .get()
`PokeAPI..get()` will always retrieve a cached resource, returning null if one could not be found. `.get()` is synchronous and does not return a Promise.
#### By ID
```js
const result = PokeAPI.Pokemon.get(25);
```#### By Name
```js
const result = PokeAPI.Pokemon.get("pikachu");
```### .list()
`PokeAPI..list()` retrieves the [IApiResourceList](https://pokeapi.co/docs/v2.html#un-named) or [INamedApiResourceList](https://pokeapi.co/docs/v2.html#named) for an endpoint.
`list()` accepts two parameters for pagination
- `limit` - Number of results to list. Default 20
- `offset` - Index of result to start listing from. Default 0```js
// Fetch 1000 Pokemon (all) in a NamedApiResourceList
const resourceList = await PokeAPI.Pokemon.list(1000, 0);
```
`resourceList.results` will contain an array of `IApiResource` or `INamedApiResource` objects depending on the type of list.### .listAll()
`PokeAPI..listAll()` functions like the above, but will return the complete list for an endpoint. This is done by making two API calls.
```js
// Fetch 1000 Pokemon (all) in a NamedApiResourceList
const completeResourceList = await PokeAPI.Pokemon.listAll();
```## Endpoint List
#### Berries
- Berry
- BerryFirmness
- BerryFlavors#### Contests
- ContestType
- ContestEffect
- SuperContestEffect#### Encounters
- EncounterMethod
- EncounterCondition
- EncounterConditionValue#### Evolution
- EvolutionChain
- EvolutionTrigger#### Games
- Generation
- Pokedex
- Version
- VersionGroup#### Items
- Item
- ItemAttribute
- ItemCategory
- ItemFlingEffect
- ItemPocket##### Locations
- Location
- LocationArea
- PalParkArea
- Region#### Machines
- Machine
#### Moves
- Move
- MoveAilment
- MoveBattleStyle
- MoveCategory
- MoveDamageClass
- MoveLearnMethod
- MoveTarget#### Pokemon
- Ability
- Characteristic
- EggGroup
- Gender
- GrowthRate
- Nature
- PokeathlonStat
- Pokemon
- PokemonColor
- PokemonForm
- PokemonHabitat
- PokemonShape
- PokemonSpecies
- Stat
- Type#### Utility
- Language