From 50ae9463da386a6c3c218dd1ffb37308de8ede98 Mon Sep 17 00:00:00 2001 From: dutlist <166175391+AMelonInsideLemon@users.noreply.github.com> Date: Wed, 26 Jun 2024 07:51:32 +0200 Subject: [PATCH] find dict once --- .../custom/getItemListsController.ts | 18 +-- src/services/itemDataService.ts | 116 ++++++++---------- 2 files changed, 60 insertions(+), 74 deletions(-) diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts index 3fc6730b..0282ba6e 100644 --- a/src/controllers/custom/getItemListsController.ts +++ b/src/controllers/custom/getItemListsController.ts @@ -1,5 +1,5 @@ import { RequestHandler } from "express"; -import { getString } from "@/src/services/itemDataService"; +import { getDict, getString } from "@/src/services/itemDataService"; import { ExportArcanes, ExportGear, @@ -19,18 +19,18 @@ interface ListedItem { const getItemListsController: RequestHandler = (req, res) => { const weapons = []; const miscitems = []; - const lang = req.query.lang?.toString(); + const dict = getDict(req.query.dict?.toString()); for (const [uniqueName, item] of Object.entries(ExportWeapons)) { if (item.productCategory !== "OperatorAmps") { if (item.totalDamage !== 0) { weapons.push({ uniqueName, - name: getString(item.name, lang) + name: getString(item.name, dict) }); } else if (!item.excludeFromCodex) { miscitems.push({ uniqueName: "MiscItems:" + uniqueName, - name: getString(item.name, lang) + name: getString(item.name, dict) }); } } @@ -38,13 +38,13 @@ const getItemListsController: RequestHandler = (req, res) => { for (const [uniqueName, item] of Object.entries(ExportResources)) { miscitems.push({ uniqueName: "MiscItems:" + uniqueName, - name: getString(item.name, lang) + name: getString(item.name, dict) }); } for (const [uniqueName, item] of Object.entries(ExportGear)) { miscitems.push({ uniqueName: "Consumables:" + uniqueName, - name: getString(item.name, lang) + name: getString(item.name, dict) }); } @@ -53,7 +53,7 @@ const getItemListsController: RequestHandler = (req, res) => { for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) { mods.push({ uniqueName, - name: getString(upgrade.name, lang), + name: getString(upgrade.name, dict), fusionLimit: upgrade.fusionLimit }); if (upgrade.isStarter || upgrade.isFrivolous || upgrade.upgradeEntries) { @@ -63,7 +63,7 @@ const getItemListsController: RequestHandler = (req, res) => { for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) { mods.push({ uniqueName, - name: getString(arcane.name, lang) + name: getString(arcane.name, dict) }); } @@ -73,7 +73,7 @@ const getItemListsController: RequestHandler = (req, res) => { .map(([uniqueName, warframe]) => { return { uniqueName, - name: getString(warframe.name, lang) + name: getString(warframe.name, dict) }; }), weapons, diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index 730e0907..623d8476 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -89,70 +89,56 @@ export const getSuitByUniqueName = (uniqueName: string): IPowersuit | undefined return ExportWarframes[uniqueName]; }; -export const getString = (key: string, lang: string | undefined): string => { - let dict; - switch (lang) { - case "de": - dict = dict_de; - break; - - case "es": - dict = dict_es; - break; - - case "fr": - dict = dict_fr; - break; - - case "it": - dict = dict_it; - break; - - case "ja": - dict = dict_ja; - break; - - case "ko": - dict = dict_ko; - break; - - case "pl": - dict = dict_pl; - break; - - case "pt": - dict = dict_pt; - break; - - case "ru": - dict = dict_ru; - break; - - case "tc": - dict = dict_tc; - break; - - case "th": - dict = dict_th; - break; - - case "tr": - dict = dict_tr; - break; - - case "uk": - dict = dict_uk; - break; - - case "zh": - dict = dict_zh; - break; - - case "en": - default: - dict = dict_en; - break; - } - +export const getString = (key: string, dict: Record): string => { return dict[key] ?? key; }; + +export const getDict = (lang: string | undefined) =>{ + switch (lang) { + case "de": + return dict_de; + + case "es": + return dict_es; + + case "fr": + return dict_fr; + + case "it": + return dict_it; + + case "ja": + return dict_ja; + + case "ko": + return dict_ko; + + case "pl": + return dict_pl; + + case "pt": + return dict_pt; + + case "ru": + return dict_ru; + + case "tc": + return dict_tc; + + case "th": + return dict_th; + + case "tr": + return dict_tr; + + case "uk": + return dict_uk; + + case "zh": + return dict_zh; + + case "en": + default: + return dict_en; + } +}