Skip to content

Commit

Permalink
feat: implement pokemon search page
Browse files Browse the repository at this point in the history
Search for pokemon based on name, type, or abilities.

Closes #1, #6, #7, #8, #11
  • Loading branch information
FoRVaiS committed May 2, 2022
2 parents 8bb5306 + 5be7382 commit 5ae28cf
Show file tree
Hide file tree
Showing 9 changed files with 575 additions and 3 deletions.
383 changes: 383 additions & 0 deletions global.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,383 @@
interface EntityApiReference {
name: string;
url: string;
}

interface Name {
name: string;
language: EntityApiReference;
}

interface EffectEntry {
effect: string;
short_effect?: string;
language: EntityApiReference;
}

interface EffectChange {
version_group: EntityApiReference;
effect_entries: EffectEntry[];
}

interface FlavorTextEntry {
flavor_text: string;
language: EntityApiReference;
version_group: EntityApiReference;
}

interface PokemonReference {
is_hidden?: boolean;
slot: number;
pokemon: EntityApiReference;
}

interface DamageRelations {
no_damage_to: EntityApiReference[];
half_damage_to: EntityApiReference[];
double_damage_to: EntityApiReference[];
no_damage_from: EntityApiReference[];
half_damage_from: EntityApiReference[];
double_damage_from: EntityApiReference[];
}

interface PastDamageRelation {
generation: EntityApiReference;
damage_relations: DamageRelations;
}

interface GameIndice {
game_index: number;
generation: EntityApiReference;
}

interface EntityApiReference {
name: string;
url: string;
}

interface Ability {
is_hidden: boolean;
slot: number;
ability: EntityApiReference;
}

interface GameIndice {
game_index: number;
version: EntityApiReference;
}

interface VersionDetail {
rarity: number;
version: EntityApiReference;
}

interface HeldItem {
item: EntityApiReference;
version_details: VersionDetail[];
}

interface VersionGroupDetail {
level_learned_at: number;
version_group: EntityApiReference;
move_learn_method: EntityApiReference;
}

interface Move {
move: EntityApiReference;
version_group_details: VersionGroupDetail[];
}

interface DreamWorld {
front_default: string;
front_female?: any;
}

interface Home {
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface OfficialArtwork {
front_default: string;
}

interface Other {
dream_world: DreamWorld;
home: Home;
"official-artwork": OfficialArtwork;
}

interface RedBlue {
back_default: string;
back_gray: string;
front_default: string;
front_gray: string;
}

interface Yellow {
back_default: string;
back_gray: string;
front_default: string;
front_gray: string;
}

interface GenerationI {
"red-blue": RedBlue;
yellow: Yellow;
}

interface Crystal {
back_default: string;
back_shiny: string;
front_default: string;
front_shiny: string;
}

interface Gold {
back_default: string;
back_shiny: string;
front_default: string;
front_shiny: string;
}

interface Silver {
back_default: string;
back_shiny: string;
front_default: string;
front_shiny: string;
}

interface GenerationIi {
crystal: Crystal;
gold: Gold;
silver: Silver;
}

interface Emerald {
front_default: string;
front_shiny: string;
}

interface FireredLeafgreen {
back_default: string;
back_shiny: string;
front_default: string;
front_shiny: string;
}

interface RubySapphire {
back_default: string;
back_shiny: string;
front_default: string;
front_shiny: string;
}

interface GenerationIii {
emerald: Emerald;
"firered-leafgreen": FireredLeafgreen;
"ruby-sapphire": RubySapphire;
}

interface DiamondPearl {
back_default: string;
back_female?: any;
back_shiny: string;
back_shiny_female?: any;
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface HeartgoldSoulsilver {
back_default: string;
back_female?: any;
back_shiny: string;
back_shiny_female?: any;
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface Platinum {
back_default: string;
back_female?: any;
back_shiny: string;
back_shiny_female?: any;
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface GenerationIv {
"diamond-pearl": DiamondPearl;
"heartgold-soulsilver": HeartgoldSoulsilver;
platinum: Platinum;
}

interface Animated {
back_default: string;
back_female?: any;
back_shiny: string;
back_shiny_female?: any;
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface BlackWhite {
animated: Animated;
back_default: string;
back_female?: any;
back_shiny: string;
back_shiny_female?: any;
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface GenerationV {
"black-white": BlackWhite;
}

interface OmegarubyAlphasapphire {
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface XY {
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface GenerationVi {
"omegaruby-alphasapphire": OmegarubyAlphasapphire;
"x-y": XY;
}

interface Icons {
front_default: string;
front_female?: any;
}

interface UltraSunUltraMoon {
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
}

interface GenerationVii {
icons: Icons;
"ultra-sun-ultra-moon": UltraSunUltraMoon;
}

interface GenerationViii {
icons: Icons;
}

interface Versions {
"generation-i": GenerationI;
"generation-ii": GenerationIi;
"generation-iii": GenerationIii;
"generation-iv": GenerationIv;
"generation-v": GenerationV;
"generation-vi": GenerationVi;
"generation-vii": GenerationVii;
"generation-viii": GenerationViii;
}

interface Sprites {
back_default: string;
back_female?: any;
back_shiny: string;
back_shiny_female?: any;
front_default: string;
front_female?: any;
front_shiny: string;
front_shiny_female?: any;
other: Other;
versions: Versions;
}

interface Stat {
base_stat: number;
effort: number;
stat: EntityApiReference;
}

interface Type {
slot: number;
type: EntityApiReference;
}

interface PastType {
generation: EntityApiReference;
types: Type[];
}

interface Window {
pokedex?: Partial<Pokedex>;
}

interface Pokedex {
fetchPokemonByName: (name: string) => Promise<Pokemon>;
fetchPokemonByType: (type: string) => Promise<Pokemon[]>;
fetchPokemonByAbility: (abilityName: string) => Promise<Pokemon[]>;
}

interface Pokemon {
id: number;
name: string;
base_experience: number;
height: number;
is_default: boolean;
order: number;
weight: number;
abilities: Ability[];
forms: EntityApiReference[];
game_indices: GameIndice[];
held_items: HeldItem[];
location_area_encounters: string;
moves: Move[];
species: EntityApiReference;
sprites: Sprites;
stats: Stat[];
types: Type[];
past_types: PastType[];
}

interface PokemonAbility {
id: number;
name: string;
is_main_series: boolean;
generation: EntityApiReference;
names: Name[];
effect_entries: EffectEntry[];
effect_changes: EffectChange[];
flavor_text_entries: FlavorTextEntry[];
pokemon: PokemonReference[];
}

interface PokemonType {
id: number;
name: string;
damage_relations: DamageRelations;
past_damage_relations: PastDamageRelation[];
game_indices: GameIndice[];
generation: EntityApiReference;
move_damage_class: EntityApiReference;
names: Name[];
pokemon: PokemonReference[];
moves: EntityApiReference[];
}
2 changes: 2 additions & 0 deletions src/index.pug
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ html(lang="en")
ul.navbar__list
li.navbar__item
a(href="./index.html").navbar__link Home
li.navbar__item
a(href="./search.html").navbar__link Search
main
.description
p Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptate in minima odit aperiam, harum numquam sint ullam maiores autem cumque recusandae veniam cum expedita hic blanditiis error, facere nesciunt vero sit explicabo delectus? Nobis, beatae. Numquam, excepturi eos? Facere numquam molestias est eius unde placeat mollitia nihil distinctio autem saepe! Fugit aspernatur placeat quia expedita porro quis inventore asperiores quibusdam deserunt. Saepe esse quaerat rem!
Expand Down
4 changes: 3 additions & 1 deletion src/scripts/global.ts
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
console.log("Hello World!");
(() => {

})();
Loading

0 comments on commit 5ae28cf

Please sign in to comment.