diff --git a/.gitignore b/.gitignore index d45f3fcd..60057f6f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ build/ node_modules pnpm-debug.log tup.config +dist/ diff --git a/data/lib/index.ts b/data/lib/index.ts new file mode 100644 index 00000000..fd6891eb --- /dev/null +++ b/data/lib/index.ts @@ -0,0 +1,27 @@ + +import path from 'path'; +import { fileURLToPath } from 'url'; +import fs from 'fs'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const libdir = path.join(__dirname, "../.."); + +export type Type = { + num: number, + formeNum: number, + base: string, + forme: string, + sid: number +}; + +const species : Record = JSON.parse(fs.readFileSync(path.join(libdir, "species.json"), 'utf8')); + +const result = new Map(); + +for (const entry of Object.values(species)) { + result.set(entry.sid, entry); +} + +export default result; + diff --git a/data/lib/package.json b/data/lib/package.json new file mode 100644 index 00000000..ed201da9 --- /dev/null +++ b/data/lib/package.json @@ -0,0 +1,12 @@ +{ + "name": "@smogon/sprite-data", + "private": "true", + "type": "module", + "devDependencies": { + "typescript": "^3.9.7" + }, + "dependencies": { + "@types/node": "^14.0.23" + }, + "main": "./dist/index.js" +} diff --git a/data/lib/tsconfig.json b/data/lib/tsconfig.json new file mode 100644 index 00000000..e844c6fe --- /dev/null +++ b/data/lib/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig-base", + "compilerOptions": { + "outDir": "dist" + } +} diff --git a/newsrc/species.json b/data/species.json similarity index 100% rename from newsrc/species.json rename to data/species.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 286cafc6..0d84f473 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,12 @@ importers: + data/lib: + dependencies: + '@types/node': 14.0.23 + devDependencies: + typescript: 3.9.7 + specifiers: + '@types/node': ^14.0.23 + typescript: ^3.9.7 tools/deflopt: specifiers: {} tools/deploy: @@ -31,6 +39,10 @@ importers: debug: ^4.1.1 lockfileVersion: 5.1 packages: + /@types/node/14.0.23: + dev: false + resolution: + integrity: sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw== /ajv/6.12.0: dependencies: fast-deep-equal: 3.1.1 @@ -1026,6 +1038,13 @@ packages: dev: false resolution: integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + /typescript/3.9.7: + dev: true + engines: + node: '>=4.2.0' + hasBin: true + resolution: + integrity: sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== /uniq/1.0.1: dev: false resolution: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ac9570f0..82b1985c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,3 +4,4 @@ packages: - 'tools/deploy' - 'tools/deflopt' - 'tools/trim' + - "data/lib" diff --git a/tsconfig-base.json b/tsconfig-base.json new file mode 100644 index 00000000..43b6acb4 --- /dev/null +++ b/tsconfig-base.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "incremental": true, + "target": "es2018", + "lib": ["es2018"], + "module": "esnext", + "jsx": "react", + "strict": true, + "moduleResolution": "node", + "esModuleInterop": true, + "isolatedModules": true, + "composite": true + } +}