Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ytakahashi/pokedex.js
A library to get Pokémon information
https://github.com/ytakahashi/pokedex.js
nodejs pokedex pokedex-data pokemon
Last synced: 6 days ago
JSON representation
A library to get Pokémon information
- Host: GitHub
- URL: https://github.com/ytakahashi/pokedex.js
- Owner: ytakahashi
- License: mit
- Created: 2018-07-27T13:36:18.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-06-16T12:33:51.000Z (5 months ago)
- Last Synced: 2024-10-28T05:45:07.361Z (11 days ago)
- Topics: nodejs, pokedex, pokedex-data, pokemon
- Language: JavaScript
- Homepage:
- Size: 912 KB
- Stars: 11
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Pokedex.js
[![npm version](https://badge.fury.io/js/pokedex.js.svg)](https://badge.fury.io/js/pokedex.js)
[![Actions Status](https://github.com/ytakahashi/pokedex.js/workflows/Node%20CI/badge.svg)](https://github.com/ytakahashi/pokedex.js/actions)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)A library to get Pokémon information.
:us: [:jp:](./README_ja.md)
## install
```shell
npm install pokedex.js
```or
```shell
yarn add pokedex.js
```## Usage
### Example: Get Pokémon with Name/ID
```node.js
const Pokedex = require('pokedex.js')
// or import Pokedex from 'pokedex.js'
const pokedex = new Pokedex('en')console.log(pokedex.name('Pikachu').getPokemonAsJson())
// [{"id":"25","localId":{"galar":"194","paldea":"74"},"name":"Pikachu","type":["Electric"],"ability":[{"name":"Static","hidden":false},{"name":"Lightning Rod","hidden":true}],"eggGroup":["Field","Fairy"],"baseStats":{"H":"35","A":"55","B":"40","C":"50","D":"50","S":"90"},"generation":1}]console.log(pokedex.id(26).getPokemonAsJson())
// [{"id":"26","localId":{"galar":"195","paldea":"75"},"name":"Raichu","type":["Electric"],"ability":[{"name":"Static","hidden":false},{"name":"Lightning Rod","hidden":true}],"eggGroup":["Field","Fairy"],"baseStats":{"H":"60","A":"90","B":"55","C":"90","D":"80","S":"110"},"generation":1},{"id":"26","formName":"Alola Form","name":"Raichu","type":["Electric","Psychic"],"ability":[{"name":"Surge Surfer","hidden":false}],"eggGroup":["Field","Fairy"],"baseStats":{"H":"60","A":"85","B":"50","C":"95","D":"85","S":"110"},"generation":7}]```
### APIs
- `id(id: Number|String)` : Filters list of Pokémon with ID.
- `name(name: String)` : Filters list of Pokémon with name.
- `type(type: String)` : Filters list of Pokémon with type.
- `eggGroup(eggGroup: String)` : Filters list of Pokémon with egg group.
- `baseStatTotal(operator: String, value: Number|String)` : Takes Pokémon whose base stat total matches to given operation (one of `'>='`, `'>'`, `'<='`, `'<'`, `'='`) and value.
- `canMegaEvolve()` : Takes Pokémon which can Mega Evolve (including Primal Reversion, Ultra Burst).
- `generation(generation: Number|String)` : Filters list of Pokémon by a generation when the Pokémon was introduced.
- `inGalarPokedex()` : Only Pokémon in the Galar Pokédex is returned if this filter is applied.
- `sort(sortKey: String)` : Sorts Pokémon list according to a given sortKey. `'Lexicographical'` or `'NationalNumber'` is available as `sortKey`.
- `getPokemon()`: Returns a list of Pokémon which satisfy applied filter method(s).
- `getPokemonAsJson()`: Returns a list of Pokémon which satisfy applied filter method(s) as a JSON string.Multiple filtering methods can be applied at the same time by chaining methods like examples below.
### Examples
#### Filter by multiple types
Get Pokémon which have type Water/Fairy
```node.js
console.log(
pokedex
.type('Water')
.type('Fairy')
.getPokemonAsJson()
)
// [{"id":"183","localId":{"paldea":"47"},"name":"Marill","type":["Water","Fairy"],"ability":[{"name":"Thick Fat","hidden":false},{"name":"Huge Power","hidden":false},{"name":"Sap Sipper","hidden":true}],"eggGroup":["Water1","Fairy"],"baseStats":{"H":"70","A":"20","B":"50","C":"20","D":"50","S":"40"},"generation":2},{"id":"184","localId":{"paldea":"48"},"name":"Azumarill","type":["Water","Fairy"],"ability":[{"name":"Thick Fat","hidden":false},{"name":"Huge Power","hidden":false},{"name":"Sap Sipper","hidden":true}],"eggGroup":["Water1","Fairy"],"baseStats":{"H":"100","A":"50","B":"80","C":"60","D":"80","S":"50"},"generation":2},{"id":"730","name":"Primarina","type":["Water","Fairy"],"ability":[{"name":"Torrent","hidden":false},{"name":"Liquid Voice","hidden":true}],"eggGroup":["Water1","Field"],"baseStats":{"H":"80","A":"74","B":"74","C":"126","D":"116","S":"60"},"generation":7},{"id":"788","name":"Tapu Fini","type":["Water","Fairy"],"ability":[{"name":"Misty Surge","hidden":false},{"name":"Telepathy","hidden":true}],"eggGroup":["Undiscovered"],"baseStats":{"H":"70","A":"75","B":"115","C":"95","D":"130","S":"85"},"generation":7}]
```#### Filter by base stat total, generation
Get Pokémon whose base stat total is between 580 and 600, and introduced at 2nd generation.
```node.js
console.log(
pokedex
.baseStatTotal('>=', 580)
.baseStatTotal('<=', 600)
.generation(2)
.getPokemonAsJson()
)
// [{"id":"243","name":"Raikou","type":["Electric"],"ability":[{"name":"Pressure","hidden":false},{"name":"Inner Focus","hidden":true}],"eggGroup":["Undiscovered"],"baseStats":{"H":"90","A":"85","B":"75","C":"115","D":"100","S":"115"},"generation":2},{"id":"244","name":"Entei","type":["Fire"],"ability":[{"name":"Pressure","hidden":false},{"name":"Inner Focus","hidden":true}],"eggGroup":["Undiscovered"],"baseStats":{"H":"115","A":"115","B":"85","C":"90","D":"75","S":"100"},"generation":2},{"id":"245","name":"Suicune","type":["Water"],"ability":[{"name":"Pressure","hidden":false},{"name":"Inner Focus","hidden":true}],"eggGroup":["Undiscovered"],"baseStats":{"H":"100","A":"75","B":"115","C":"90","D":"115","S":"85"},"generation":2},{"id":"248","localId":{"galar":"385","paldea":"318"},"name":"Tyranitar","type":["Rock","Dark"],"ability":[{"name":"Sand Stream","hidden":false},{"name":"Unnerve","hidden":true}],"eggGroup":["Monster"],"baseStats":{"H":"100","A":"134","B":"110","C":"95","D":"100","S":"61"},"megaEvolution":[{"name":"Mega Tyranitar","type":["Rock","Dark"],"ability":[{"name":"Sand Stream","hidden":false}],"baseStats":{"H":"100","A":"164","B":"150","C":"95","D":"120","S":"71"}}],"generation":2},{"id":"251","name":"Celebi","type":["Psychic","Grass"],"ability":[{"name":"Natural Cure","hidden":false}],"eggGroup":["Undiscovered"],"baseStats":{"H":"100","A":"100","B":"100","C":"100","D":"100","S":"100"},"generation":2}]
```#### Pokémon in Galar Region
Get Pokémon in the Galar Pokédex
```node.js
console.log(
pokedex
.inGalarPokedex()
.getPokemonAsJson()
)
// [{"id":"4","localId":{"galar":"378"},"name":"Charmander","type":["Fire"],"ability":[{"name":"Blaze","hidden":false},{"name":"Solar Power","hidden":true}],"eggGroup":["Monster","Dragon"],"baseStats":{"H":"39","A":"52","B":"43","C":"60","D":"50","S":"65"},"generation":1},{"id":"5","localId":{"galar":"379"},"name":"Charmeleon","type":["Fire"],"ability":[{"name":"Blaze","hidden":false},{"name":"Solar Power","hidden":true}],"eggGroup":["Monster","Dragon"],"baseStats":{"H":"58","A":"64","B":"58","C":"80","D":"65","S":"80"},"generation":1},{"id":"6","localId":{"galar":"380"},"name":"Charizard","type":["Fire","Flying"],"ability":[{"name":"Blaze","hidden":false},{"name":"Solar Power","hidden":true}],"eggGroup":["Monster","Dragon"],"baseStats":{"H":"78","A":"84","B":"78","C":"109","D":"85","S":"100"},"generation":1}, ... snip
```Everything can be done in Japanese! See [README_ja.md](./README_ja.md).