From 965bfaec6d9b04eecc8af50890f05440db694595 Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 7 Jun 2024 16:20:36 +0200 Subject: [PATCH] improve: typings --- package-lock.json | 8 +++---- package.json | 2 +- .../custom/getItemListsController.ts | 7 +++--- src/services/itemDataService.ts | 24 +++++-------------- 4 files changed, 14 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46a8b08a..1fe81846 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "express": "^5.0.0-beta.3", "mongoose": "^8.1.1", "warframe-items": "^1.1262.74", - "warframe-public-export-plus": "^0.2.0", + "warframe-public-export-plus": "^0.2.2", "warframe-riven-info": "^0.1.0", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.7.1" @@ -3895,9 +3895,9 @@ } }, "node_modules/warframe-public-export-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.2.0.tgz", - "integrity": "sha512-JkTpkOzFWmjaK10H3CphGz4f6IAdH5higF9jyyTBbBD97U21C+3u9OGAoWav5CO8ydR2hLezcyOyRaqBAf4Abg==" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.2.2.tgz", + "integrity": "sha512-PAsiyiRDqXcsUwZTweihwrSksd+GT3USrbHwS/TrJUC3TqLS0Ng24OfefFKPWOmPfMxDbdkg2zV39uq72iZ/Yg==" }, "node_modules/warframe-riven-info": { "version": "0.1.0", diff --git a/package.json b/package.json index adcec54a..88a71412 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "express": "^5.0.0-beta.3", "mongoose": "^8.1.1", "warframe-items": "^1.1262.74", - "warframe-public-export-plus": "^0.2.0", + "warframe-public-export-plus": "^0.2.2", "warframe-riven-info": "^0.1.0", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.7.1" diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts index bbcd8b06..dc4ba69c 100644 --- a/src/controllers/custom/getItemListsController.ts +++ b/src/controllers/custom/getItemListsController.ts @@ -1,8 +1,7 @@ import { RequestHandler } from "express"; import { MinItem, MinWeapon, warframes, items, getEnglishString } from "@/src/services/itemDataService"; import badItems from "@/static/json/exclude-mods.json"; -import ExportArcanes from "@/node_modules/warframe-public-export-plus/ExportArcanes.json"; -import ExportWeapons from "@/node_modules/warframe-public-export-plus/ExportWeapons.json"; +import { ExportArcanes, ExportWeapons } from "warframe-public-export-plus"; interface ListedItem { uniqueName: string; @@ -32,10 +31,10 @@ const getItemListsController: RequestHandler = (_req, res) => { warframes: reduceItems(warframes), weapons: Object.entries(ExportWeapons) .filter( - ([_uniqueName, weapon]: [string, any]) => + ([_uniqueName, weapon]) => weapon.productCategory !== "OperatorAmps" && weapon.totalDamage !== 0 ) - .map(([uniqueName, weapon]: [string, any]) => { + .map(([uniqueName, weapon]) => { return { uniqueName, name: getEnglishString(weapon.name) diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index 5b78bff1..455c051b 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -2,9 +2,7 @@ import { getIndexAfter } from "@/src/helpers/stringHelpers"; import { logger } from "@/src/utils/logger"; import Items, { Buildable, Category, MinimalItem, Warframe, Weapon } from "warframe-items"; import badItems from "@/static/json/exclude-mods.json"; -import dict_en from "@/node_modules/warframe-public-export-plus/dict.en.json"; -import ExportWarframes from "@/node_modules/warframe-public-export-plus/ExportWarframes.json"; -import ExportWeapons from "@/node_modules/warframe-public-export-plus/ExportWeapons.json"; +import { dict_en, ExportWarframes, ExportWeapons, IPowersuit } from "warframe-public-export-plus"; export type MinWarframe = Omit; export type MinWeapon = Omit; @@ -36,8 +34,8 @@ export const items: MinItem[] = Array.from(new Items({ category: ["All"] }) as M return next; }); -export const getWeaponType = (weaponName: string) => { - const weaponInfo = (ExportWeapons as PublicExportPlus.IGenericExport)[weaponName]; +export const getWeaponType = (weaponName: string): WeaponTypeInternal => { + const weaponInfo = ExportWeapons[weaponName]; if (!weaponInfo) { throw new Error(`unknown weapon ${weaponName}`); @@ -137,18 +135,8 @@ export const getItemCategoryByUniqueName = (uniqueName: string) => { return category; }; -namespace PublicExportPlus { - export interface IGenericExport { - [key: string]: any; - } - - export interface IDict { - [key: string]: string | undefined; - } -} - -export const getSuitByUniqueName = (uniqueName: string) => { - return (ExportWarframes as PublicExportPlus.IGenericExport)[uniqueName]; +export const getSuitByUniqueName = (uniqueName: string): IPowersuit | undefined => { + return ExportWarframes[uniqueName]; }; export const getItemByUniqueName = (uniqueName: string) => { @@ -162,5 +150,5 @@ export const getItemByName = (name: string) => { }; export const getEnglishString = (key: string): string => { - return (dict_en as PublicExportPlus.IDict)[key] ?? key; + return dict_en[key] ?? key; };