From 5101366ff2789f4d52feeca5307158d866b994ca Mon Sep 17 00:00:00 2001 From: Matej Voboril Date: Wed, 22 Nov 2023 09:42:26 -0600 Subject: [PATCH] improve some types --- .gitignore | 5 ++- .nvmrc | 1 + src/controllers/api/saveLoadout.ts | 12 +++++-- src/types/saveLoadoutTypes.ts | 57 +++++++++++++++++------------- 4 files changed, 47 insertions(+), 28 deletions(-) create mode 100644 .nvmrc diff --git a/.gitignore b/.gitignore index 70556674..23c4cd81 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,7 @@ /.env /static/data/*.bin yarn.lock -/tmp \ No newline at end of file +/tmp + +# JetBrains/webstorm configs +.idea/ diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..9de22568 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/iron diff --git a/src/controllers/api/saveLoadout.ts b/src/controllers/api/saveLoadout.ts index ec44ce4e..9be69fb6 100644 --- a/src/controllers/api/saveLoadout.ts +++ b/src/controllers/api/saveLoadout.ts @@ -1,7 +1,12 @@ import { Inventory } from "@/src/models/inventoryModel"; import { RequestHandler } from "express"; import util from "util"; -import { EquipmentCategories, ISaveLoadoutRequest } from "@/src/types/saveLoadoutTypes"; +import { + EquipmentCategories, + ISaveLoadoutEntry, + ISaveLoadoutLoadoutEntry, + ISaveLoadoutRequest +} from "@/src/types/saveLoadoutTypes"; import { isObject } from "@/src/helpers/general"; import { ISuitResponse } from "@/src/types/inventoryTypes/SuitTypes"; @@ -9,8 +14,11 @@ export const isObjectEmpty = (obj: Record) => { return obj && Object.keys(obj).length === 0 && obj.constructor === Object; }; +type EquipmentChangeEntry = number | ISaveLoadoutEntry | ISaveLoadoutLoadoutEntry; + export const handleInventoryItemConfigChange = (equipmentChanges: ISaveLoadoutRequest) => { - for (const [equipmentName, equipment] of Object.entries(equipmentChanges)) { + for (const [equipmentName, eqp] of Object.entries(equipmentChanges)) { + const equipment = eqp as EquipmentChangeEntry; //console.log(equipmentName); if (!isObjectEmpty(equipment)) { // non-empty is a change in loadout(or suit...) diff --git a/src/types/saveLoadoutTypes.ts b/src/types/saveLoadoutTypes.ts index ccac66e9..bf2c9d1b 100644 --- a/src/types/saveLoadoutTypes.ts +++ b/src/types/saveLoadoutTypes.ts @@ -1,30 +1,37 @@ export interface ISaveLoadoutRequest { - LoadOuts: { [key: string]: LoadOut }; - LongGuns: { [key: string]: Config }; - OperatorAmps: { [key: string]: Config }; - Pistols: { [key: string]: Config }; - Suits: { [key: string]: Config }; - Melee: {}; - Sentinels: {}; - SentinelWeapons: {}; - KubrowPets: {}; - SpaceSuits: {}; - SpaceGuns: {}; - SpaceMelee: {}; - Scoops: {}; - SpecialItems: {}; - MoaPets: {}; - Hoverboards: {}; - DataKnives: {}; - MechSuits: {}; - CrewShipHarnesses: {}; - Horses: {}; - DrifterMelee: {}; + LoadOuts: ISaveLoadoutLoadoutEntry; + LongGuns: ISaveLoadoutEntry; + OperatorAmps: ISaveLoadoutEntry; + Pistols: ISaveLoadoutEntry; + Suits: ISaveLoadoutEntry; + Melee: ISaveLoadoutEntry; + Sentinels: ISaveLoadoutEntry; + SentinelWeapons: ISaveLoadoutEntry; + KubrowPets: ISaveLoadoutEntry; + SpaceSuits: ISaveLoadoutEntry; + SpaceGuns: ISaveLoadoutEntry; + SpaceMelee: ISaveLoadoutEntry; + Scoops: ISaveLoadoutEntry; + SpecialItems: ISaveLoadoutEntry; + MoaPets: ISaveLoadoutEntry; + Hoverboards: ISaveLoadoutEntry; + DataKnives: ISaveLoadoutEntry; + MechSuits: ISaveLoadoutEntry; + CrewShipHarnesses: ISaveLoadoutEntry; + Horses: ISaveLoadoutEntry; + DrifterMelee: ISaveLoadoutEntry; UpgradeVer: number; - OperatorLoadOuts: {}; - AdultOperatorLoadOuts: {}; - KahlLoadOuts: {}; - CrewShips: {}; + OperatorLoadOuts: ISaveLoadoutEntry; + AdultOperatorLoadOuts: ISaveLoadoutEntry; + KahlLoadOuts: ISaveLoadoutEntry; + CrewShips: ISaveLoadoutEntry; +} + +export interface ISaveLoadoutEntry { + [key: string]: Config; +} +export interface ISaveLoadoutLoadoutEntry { + [key: string]: LoadOut; } export interface Config {