From c93c3c7bd503c728f63bcb5fc964aa2ce7d5146e Mon Sep 17 00:00:00 2001 From: KoloMl Date: Wed, 19 Feb 2025 03:19:01 +0400 Subject: [PATCH] Swapped validator arguments to meet the order on exporter function, fixing types --- src/lib/extension/EntitiesTransporter.ts | 12 +++++++++--- src/lib/extension/transporting/validators.ts | 9 ++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib/extension/EntitiesTransporter.ts b/src/lib/extension/EntitiesTransporter.ts index ccbbd74..8faf18b 100644 --- a/src/lib/extension/EntitiesTransporter.ts +++ b/src/lib/extension/EntitiesTransporter.ts @@ -12,7 +12,13 @@ export default class EntitiesTransporter { */ get #entityName() { // How the hell should I even do this? - return ((this.#targetEntityConstructor as any) as typeof StorageEntity)._entityName; + const entityName = ((this.#targetEntityConstructor as any) as typeof StorageEntity)._entityName; + + if (entityName === "entity") { + throw new Error("Generic entity name encountered!"); + } + + return entityName; } /** @@ -34,8 +40,8 @@ export default class EntitiesTransporter { } validateImportedEntity( + this.#entityName, importedObject, - this.#entityName ); return new this.#targetEntityConstructor( @@ -60,7 +66,7 @@ export default class EntitiesTransporter { } const exportableObject = exportEntityToObject( - this.#entityName as keyof App.EntityNamesMap, + this.#entityName, entityObject ); diff --git a/src/lib/extension/transporting/validators.ts b/src/lib/extension/transporting/validators.ts index db2ea05..7b8283a 100644 --- a/src/lib/extension/transporting/validators.ts +++ b/src/lib/extension/transporting/validators.ts @@ -40,15 +40,18 @@ const entitiesValidators: EntitiesValidationMap = { /** * Validate the structure of the entity. - * @param importedObject Object imported from JSON. * @param entityName Name of the entity to validate. Should be loaded from the entity class. + * @param importedObject Object imported from JSON. * @throws {Error} Error in case validation failed with the reason stored in the message. */ -export function validateImportedEntity(importedObject: any, entityName: string) { +export function validateImportedEntity( + entityName: EntityName, + importedObject: any +) { if (!entitiesValidators.hasOwnProperty(entityName)) { console.error(`Trying to validate entity without the validator present! Entity name: ${entityName}`); return; } - entitiesValidators[entityName as keyof EntitiesValidationMap]!.call(null, importedObject); + entitiesValidators[entityName]!.call(null, importedObject); }