diff --git a/apps/client/src/services/bundle.ts b/apps/client/src/services/bundle.ts index 58446e316..9dd11b684 100644 --- a/apps/client/src/services/bundle.ts +++ b/apps/client/src/services/bundle.ts @@ -23,9 +23,10 @@ export interface Bundle { type LegacyWidget = (BasicWidget | RightPanelWidget) & { parentWidget?: string; }; -export type Widget = (LegacyWidget | WidgetDefinitionWithType) & { +type WithNoteId = T & { _noteId: string; }; +export type Widget = WithNoteId<(LegacyWidget | WidgetDefinitionWithType)>; async function getAndExecuteBundle(noteId: string, originEntity = null, script = null, params = null) { const bundle = await server.post(`script/bundle/${noteId}`, { @@ -71,8 +72,8 @@ async function executeStartupBundles() { } export class WidgetsByParent { - private legacyWidgets: Record; - private preactWidgets: Record; + private legacyWidgets: Record[]>; + private preactWidgets: Record[]>; constructor() { this.legacyWidgets = {}; @@ -84,7 +85,7 @@ export class WidgetsByParent { let isPreact = false; if ("type" in widget && widget.type === "preact-widget") { // React-based script. - const reactWidget = widget as WidgetDefinitionWithType; + const reactWidget = widget as WithNoteId; this.preactWidgets[reactWidget.parent] = this.preactWidgets[reactWidget.parent] || []; this.preactWidgets[reactWidget.parent].push(reactWidget); isPreact = true; diff --git a/apps/server/src/services/script.spec.ts b/apps/server/src/services/script.spec.ts index df07f4282..eaa116a7b 100644 --- a/apps/server/src/services/script.spec.ts +++ b/apps/server/src/services/script.spec.ts @@ -175,7 +175,6 @@ describe("JSX building", () => { "use strict";const _triliumapi = api; _triliumapi.log.call(void 0, "Hi"); `; - console.log(buildJsx(script).code); expect(buildJsx(script).code).toStrictEqual(expected); }); }); diff --git a/apps/server/src/services/script.ts b/apps/server/src/services/script.ts index 04c27f79a..e6d88d4b6 100644 --- a/apps/server/src/services/script.ts +++ b/apps/server/src/services/script.ts @@ -237,13 +237,13 @@ export function buildJsx(contentRaw: string | Buffer) { // Rewrite ESM-like imports to Preact, to `const { foo } = api.preact` code = code.replaceAll( - /var\s+(\w+)\s*=\s*require\(['"]trilium:preact['"]\);?/g, + /(?:var|let|const)\s+(\w+)\s*=\s*require\(['"]trilium:preact['"]\);?/g, 'const $1 = api.preact;' ); // Rewrite ESM-like imports to internal API, to `const { foo } = api.preact` code = code.replaceAll( - /var\s+(\w+)\s*=\s*require\(['"]trilium:api['"]\);?/g, + /(?:var|let|const)\s+(\w+)\s*=\s*require\(['"]trilium:api['"]\);?/g, 'const $1 = api;' );