mirror of
https://github.com/chase-manning/pokemon-js.git
synced 2025-07-22 20:07:51 +00:00
68 lines
2 KiB
JavaScript
68 lines
2 KiB
JavaScript
const pokemon = require("./pokemon.json");
|
|
const fs = require("fs");
|
|
|
|
const downloadData = async () => {
|
|
let output = {};
|
|
|
|
for (let i = 0; i < pokemon.length; i++) {
|
|
const response = await fetch(pokemon[i].url);
|
|
const data = await response.json();
|
|
|
|
const moves = [];
|
|
|
|
for (let j = 0; j < data.moves.length; j++) {
|
|
const name = data.moves[j].move.name;
|
|
const versionDetails = data.moves[j].version_group_details.find(
|
|
(move) =>
|
|
move.move_learn_method.name === "level-up" &&
|
|
move.version_group.name === "red-blue"
|
|
);
|
|
if (versionDetails) {
|
|
moves.push({
|
|
name,
|
|
levelLearnedAt: versionDetails.level_learned_at,
|
|
});
|
|
}
|
|
}
|
|
|
|
const poke = {
|
|
baseExperience: data.base_experience,
|
|
height: data.height,
|
|
id: data.id,
|
|
moves,
|
|
name: data.name,
|
|
images: {
|
|
front:
|
|
data.sprites.versions["generation-i"]["red-blue"].front_transparent,
|
|
back: data.sprites.versions["generation-i"]["red-blue"]
|
|
.back_transparent,
|
|
},
|
|
baseStats: {
|
|
hp: data.stats.filter((stat) => stat.stat.name === "hp")[0].base_stat,
|
|
attack: data.stats.filter((stat) => stat.stat.name === "attack")[0]
|
|
.base_stat,
|
|
defense: data.stats.filter((stat) => stat.stat.name === "defense")[0]
|
|
.base_stat,
|
|
specialAttack: data.stats.filter(
|
|
(stat) => stat.stat.name === "special-attack"
|
|
)[0].base_stat,
|
|
specialDefense: data.stats.filter(
|
|
(stat) => stat.stat.name === "special-defense"
|
|
)[0].base_stat,
|
|
speed: data.stats.filter((stat) => stat.stat.name === "speed")[0]
|
|
.base_stat,
|
|
},
|
|
types: data.types.map((type) => type.type.name),
|
|
};
|
|
|
|
output[i] = poke;
|
|
|
|
console.log(`Downloaded ${poke.name}`);
|
|
// wait one second
|
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
}
|
|
|
|
fs.writeFileSync("data.json", JSON.stringify(output));
|
|
};
|
|
|
|
downloadData();
|