From 06fcf783a13d76a575e51e4630779d7067c367ff Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 30 Jan 2025 10:57:18 +0000 Subject: [PATCH] Fix isModule check not working for new class modules --- packages/element-web-module-api/src/api.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/element-web-module-api/src/api.ts b/packages/element-web-module-api/src/api.ts index 1ab56aadd4..5534411375 100644 --- a/packages/element-web-module-api/src/api.ts +++ b/packages/element-web-module-api/src/api.ts @@ -40,13 +40,13 @@ export interface ModuleExport { } const moduleExportSignature: Record = { - default: "object", + default: "function", }; type Type = "function" | "string" | "number" | "boolean" | "object"; -function isInterface(obj: unknown, keys: Record): obj is T { - if (obj === null || typeof obj !== "object") return false; +function isInterface(obj: unknown, type: "object" | "function", keys: Record): obj is T { + if (obj === null || typeof obj !== type) return false; for (const key in keys) { if (typeof (obj as Record)[key] !== keys[key]) return false; } @@ -55,9 +55,9 @@ function isInterface(obj: unknown, keys: Record): obj is T { export function isModule(module: unknown): module is ModuleExport { return ( - isInterface(module, moduleExportSignature) && - isInterface(module.default, moduleFactorySignature) && - isInterface(module.default.prototype, moduleSignature) + isInterface(module, "object", moduleExportSignature) && + isInterface(module.default, "function", moduleFactorySignature) && + isInterface(module.default.prototype, "object", moduleSignature) ); }