From 99e1a66da8ebc68dc31a5747e08a05a9c7ca1ac0 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Thu, 24 Apr 2025 00:46:33 +0200 Subject: [PATCH] chore: improve typings in getItemLists --- .../custom/getItemListsController.ts | 70 ++++++++++++------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts index 43981011..a2c98c7d 100644 --- a/src/controllers/custom/getItemListsController.ts +++ b/src/controllers/custom/getItemListsController.ts @@ -32,6 +32,29 @@ interface ListedItem { parazon?: boolean; } +interface ItemLists { + archonCrystalUpgrades: Record; + uniqueLevelCaps: Record; + Suits: ListedItem[]; + LongGuns: ListedItem[]; + Melee: ListedItem[]; + ModularParts: ListedItem[]; + Pistols: ListedItem[]; + Sentinels: ListedItem[]; + SentinelWeapons: ListedItem[]; + SpaceGuns: ListedItem[]; + SpaceMelee: ListedItem[]; + SpaceSuits: ListedItem[]; + MechSuits: ListedItem[]; + miscitems: ListedItem[]; + Syndicates: ListedItem[]; + OperatorAmps: ListedItem[]; + QuestKeys: ListedItem[]; + KubrowPets: ListedItem[]; + MoaPets: ListedItem[]; + mods: ListedItem[]; +} + const relicQualitySuffixes: Record = { VPQ_BRONZE: "", VPQ_SILVER: " [Flawless]", @@ -41,24 +64,28 @@ const relicQualitySuffixes: Record = { const getItemListsController: RequestHandler = (req, response) => { const lang = getDict(typeof req.query.lang == "string" ? req.query.lang : "en"); - const res: Record = {}; - res.Suits = []; - res.LongGuns = []; - res.Melee = []; - res.ModularParts = []; - res.Pistols = []; - res.Sentinels = []; - res.SentinelWeapons = []; - res.SpaceGuns = []; - res.SpaceMelee = []; - res.SpaceSuits = []; - res.MechSuits = []; - res.miscitems = []; - res.Syndicates = []; - res.OperatorAmps = []; - res.QuestKeys = []; - res.KubrowPets = []; - res.MoaPets = []; + const res: ItemLists = { + archonCrystalUpgrades, + uniqueLevelCaps: ExportMisc.uniqueLevelCaps, + Suits: [], + LongGuns: [], + Melee: [], + ModularParts: [], + Pistols: [], + Sentinels: [], + SentinelWeapons: [], + SpaceGuns: [], + SpaceMelee: [], + SpaceSuits: [], + MechSuits: [], + miscitems: [], + Syndicates: [], + OperatorAmps: [], + QuestKeys: [], + KubrowPets: [], + MoaPets: [], + mods: [] + }; for (const [uniqueName, item] of Object.entries(ExportWarframes)) { res[item.productCategory].push({ uniqueName, @@ -201,7 +228,6 @@ const getItemListsController: RequestHandler = (req, response) => { }); } - res.mods = []; for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) { const mod: ListedItem = { uniqueName, @@ -260,11 +286,7 @@ const getItemListsController: RequestHandler = (req, response) => { } } - response.json({ - archonCrystalUpgrades, - uniqueLevelCaps: ExportMisc.uniqueLevelCaps, - ...res - }); + response.json(res); }; export { getItemListsController };