@emkodev/emroute 1.7.2 → 1.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/core/component/abstract.component.ts +74 -0
- package/{src → core}/component/page.component.ts +3 -61
- package/core/component/widget.component.ts +54 -0
- package/core/pipeline/pipeline.ts +224 -0
- package/{src/renderer/ssr → core/renderer}/html.renderer.ts +19 -45
- package/{src/renderer/ssr → core/renderer}/md.renderer.ts +21 -40
- package/{src/renderer/ssr → core/renderer}/ssr.renderer.ts +42 -53
- package/{src/route → core/router}/route.resolver.ts +1 -10
- package/core/router/route.trie.ts +175 -0
- package/core/runtime/abstract.runtime.ts +47 -0
- package/core/server/emroute.server.ts +346 -0
- package/core/type/component.type.ts +39 -0
- package/core/type/element.type.ts +10 -0
- package/core/type/logger.type.ts +20 -0
- package/core/type/markdown.type.ts +8 -0
- package/core/type/route-tree.type.ts +28 -0
- package/core/type/route.type.ts +75 -0
- package/core/type/widget.type.ts +27 -0
- package/core/util/html.util.ts +50 -0
- package/{src → core}/util/md.util.ts +0 -2
- package/{src/route → core/util}/route-tree.util.ts +0 -2
- package/{src → core}/util/widget-resolve.util.ts +15 -45
- package/{src → core}/widget/widget.parser.ts +0 -21
- package/core/widget/widget.registry.ts +24 -0
- package/dist/core/component/abstract.component.d.ts +48 -0
- package/dist/core/component/abstract.component.js +42 -0
- package/dist/core/component/abstract.component.js.map +1 -0
- package/dist/core/component/page.component.d.ts +23 -0
- package/dist/core/component/page.component.js +49 -0
- package/dist/core/component/page.component.js.map +1 -0
- package/dist/core/component/widget.component.d.ts +17 -0
- package/dist/core/component/widget.component.js +37 -0
- package/dist/core/component/widget.component.js.map +1 -0
- package/dist/core/pipeline/pipeline.d.ts +61 -0
- package/dist/core/pipeline/pipeline.js +189 -0
- package/dist/core/pipeline/pipeline.js.map +1 -0
- package/dist/{src/renderer/ssr → core/renderer}/html.renderer.d.ts +8 -24
- package/dist/{src/renderer/ssr → core/renderer}/html.renderer.js +12 -33
- package/dist/core/renderer/html.renderer.js.map +1 -0
- package/dist/{src/renderer/ssr → core/renderer}/md.renderer.d.ts +6 -21
- package/dist/{src/renderer/ssr → core/renderer}/md.renderer.js +14 -31
- package/dist/core/renderer/md.renderer.js.map +1 -0
- package/dist/{src/renderer/ssr → core/renderer}/ssr.renderer.d.ts +11 -17
- package/dist/{src/renderer/ssr → core/renderer}/ssr.renderer.js +34 -36
- package/dist/core/renderer/ssr.renderer.js.map +1 -0
- package/dist/{src/route → core/router}/route.resolver.d.ts +1 -8
- package/dist/{src/route → core/router}/route.resolver.js +0 -1
- package/dist/core/router/route.resolver.js.map +1 -0
- package/dist/core/router/route.trie.d.ts +32 -0
- package/dist/core/router/route.trie.js +152 -0
- package/dist/core/router/route.trie.js.map +1 -0
- package/dist/core/runtime/abstract.runtime.d.ts +32 -0
- package/dist/core/runtime/abstract.runtime.js +26 -0
- package/dist/core/runtime/abstract.runtime.js.map +1 -0
- package/dist/core/server/emroute.server.d.ts +48 -0
- package/dist/core/server/emroute.server.js +261 -0
- package/dist/core/server/emroute.server.js.map +1 -0
- package/dist/core/server/server.type.d.ts +45 -0
- package/dist/core/server/server.type.js +11 -0
- package/dist/core/server/server.type.js.map +1 -0
- package/dist/core/type/component.type.d.ts +37 -0
- package/dist/core/type/component.type.js +7 -0
- package/dist/core/type/component.type.js.map +1 -0
- package/dist/core/type/element.type.d.ts +9 -0
- package/dist/core/type/element.type.js +5 -0
- package/dist/core/type/element.type.js.map +1 -0
- package/dist/core/type/logger.type.d.ts +14 -0
- package/dist/core/type/logger.type.js +8 -0
- package/dist/core/type/logger.type.js.map +1 -0
- package/dist/core/type/markdown.type.d.ts +7 -0
- package/dist/core/type/markdown.type.js +5 -0
- package/dist/core/type/markdown.type.js.map +1 -0
- package/dist/{src → core}/type/route-tree.type.d.ts +0 -12
- package/dist/{src → core}/type/route-tree.type.js +0 -1
- package/dist/core/type/route-tree.type.js.map +1 -0
- package/dist/core/type/route.type.d.ts +62 -0
- package/dist/core/type/route.type.js +7 -0
- package/dist/core/type/route.type.js.map +1 -0
- package/dist/core/type/widget.type.d.ts +27 -0
- package/dist/core/type/widget.type.js +5 -0
- package/dist/core/type/widget.type.js.map +1 -0
- package/dist/core/util/html.util.d.ts +14 -0
- package/dist/core/util/html.util.js +43 -0
- package/dist/core/util/html.util.js.map +1 -0
- package/dist/{src → core}/util/md.util.d.ts +0 -1
- package/dist/{src → core}/util/md.util.js +0 -2
- package/dist/core/util/md.util.js.map +1 -0
- package/dist/{src/route → core/util}/route-tree.util.js +0 -2
- package/dist/core/util/route-tree.util.js.map +1 -0
- package/dist/core/util/widget-resolve.util.d.ts +32 -0
- package/dist/{src → core}/util/widget-resolve.util.js +11 -41
- package/dist/core/util/widget-resolve.util.js.map +1 -0
- package/dist/{src → core}/widget/widget.parser.d.ts +0 -13
- package/dist/{src → core}/widget/widget.parser.js +0 -21
- package/dist/core/widget/widget.parser.js.map +1 -0
- package/dist/core/widget/widget.registry.d.ts +13 -0
- package/dist/core/widget/widget.registry.js +19 -0
- package/dist/core/widget/widget.registry.js.map +1 -0
- package/dist/emroute.js +1137 -1151
- package/dist/emroute.js.map +36 -5
- package/dist/runtime/abstract.runtime.d.ts +50 -5
- package/dist/runtime/abstract.runtime.js +446 -6
- package/dist/runtime/abstract.runtime.js.map +1 -1
- package/dist/runtime/bun/fs/bun-fs.runtime.d.ts +1 -0
- package/dist/runtime/bun/fs/bun-fs.runtime.js +18 -2
- package/dist/runtime/bun/fs/bun-fs.runtime.js.map +1 -1
- package/dist/runtime/bun/sqlite/bun-sqlite.runtime.d.ts +2 -0
- package/dist/runtime/bun/sqlite/bun-sqlite.runtime.js +11 -1
- package/dist/runtime/bun/sqlite/bun-sqlite.runtime.js.map +1 -1
- package/dist/runtime/fetch.runtime.d.ts +3 -3
- package/dist/runtime/fetch.runtime.js +3 -3
- package/dist/runtime/sitemap.generator.d.ts +1 -1
- package/dist/runtime/sitemap.generator.js +1 -1
- package/dist/runtime/sitemap.generator.js.map +1 -1
- package/dist/runtime/universal/fs/universal-fs.runtime.d.ts +1 -0
- package/dist/runtime/universal/fs/universal-fs.runtime.js +18 -2
- package/dist/runtime/universal/fs/universal-fs.runtime.js.map +1 -1
- package/dist/server/build.util.d.ts +9 -10
- package/dist/server/build.util.js +45 -36
- package/dist/server/build.util.js.map +1 -1
- package/dist/server/codegen.util.d.ts +1 -1
- package/dist/server/emroute.server.d.ts +8 -35
- package/dist/server/emroute.server.js +7 -341
- package/dist/server/emroute.server.js.map +1 -1
- package/dist/server/esbuild-manifest.plugin.js +1 -1
- package/dist/server/esbuild-manifest.plugin.js.map +1 -1
- package/dist/server/server-api.type.d.ts +3 -68
- package/dist/server/server-api.type.js +1 -8
- package/dist/server/server-api.type.js.map +1 -1
- package/dist/src/element/component.element.d.ts +4 -7
- package/dist/src/element/component.element.js +23 -22
- package/dist/src/element/component.element.js.map +1 -1
- package/dist/src/element/markdown.element.d.ts +2 -2
- package/dist/src/element/markdown.element.js +4 -3
- package/dist/src/element/markdown.element.js.map +1 -1
- package/dist/src/index.d.ts +15 -13
- package/dist/src/index.js +8 -8
- package/dist/src/index.js.map +1 -1
- package/dist/src/renderer/spa/emroute.app.d.ts +50 -0
- package/dist/src/renderer/spa/emroute.app.js +246 -0
- package/dist/src/renderer/spa/emroute.app.js.map +1 -0
- package/dist/src/renderer/spa/mod.d.ts +17 -16
- package/dist/src/renderer/spa/mod.js +9 -9
- package/dist/src/renderer/spa/mod.js.map +1 -1
- package/dist/src/renderer/spa/thin-client.d.ts +3 -3
- package/dist/src/renderer/spa/thin-client.js +34 -12
- package/dist/src/renderer/spa/thin-client.js.map +1 -1
- package/dist/src/route/route.core.d.ts +3 -3
- package/dist/src/route/route.core.js +21 -7
- package/dist/src/route/route.core.js.map +1 -1
- package/dist/src/util/html.util.d.ts +5 -22
- package/dist/src/util/html.util.js +8 -56
- package/dist/src/util/html.util.js.map +1 -1
- package/dist/src/widget/breadcrumb.widget.d.ts +2 -2
- package/dist/src/widget/breadcrumb.widget.js +2 -2
- package/dist/src/widget/breadcrumb.widget.js.map +1 -1
- package/dist/src/widget/page-title.widget.d.ts +1 -1
- package/dist/src/widget/page-title.widget.js +1 -1
- package/dist/src/widget/page-title.widget.js.map +1 -1
- package/package.json +8 -8
- package/runtime/abstract.runtime.ts +483 -8
- package/runtime/bun/fs/bun-fs.runtime.ts +17 -1
- package/runtime/bun/sqlite/bun-sqlite.runtime.ts +11 -0
- package/runtime/fetch.runtime.ts +3 -3
- package/runtime/sitemap.generator.ts +2 -2
- package/runtime/universal/fs/universal-fs.runtime.ts +17 -1
- package/server/build.util.ts +53 -47
- package/server/codegen.util.ts +1 -1
- package/server/emroute.server.ts +12 -412
- package/src/element/component.element.ts +24 -31
- package/src/element/markdown.element.ts +5 -4
- package/src/index.ts +22 -18
- package/src/renderer/spa/{thin-client.ts → emroute.app.ts} +46 -22
- package/src/renderer/spa/mod.ts +22 -22
- package/src/util/html.util.ts +16 -61
- package/src/widget/breadcrumb.widget.ts +3 -3
- package/src/widget/page-title.widget.ts +1 -1
- package/dist/src/component/abstract.component.d.ts +0 -199
- package/dist/src/component/abstract.component.js +0 -84
- package/dist/src/component/abstract.component.js.map +0 -1
- package/dist/src/component/page.component.d.ts +0 -74
- package/dist/src/component/page.component.js +0 -107
- package/dist/src/component/page.component.js.map +0 -1
- package/dist/src/component/widget.component.d.ts +0 -47
- package/dist/src/component/widget.component.js +0 -69
- package/dist/src/component/widget.component.js.map +0 -1
- package/dist/src/renderer/ssr/html.renderer.js.map +0 -1
- package/dist/src/renderer/ssr/md.renderer.js.map +0 -1
- package/dist/src/renderer/ssr/ssr.renderer.js.map +0 -1
- package/dist/src/route/route-tree.util.js.map +0 -1
- package/dist/src/route/route.matcher.d.ts +0 -86
- package/dist/src/route/route.matcher.js +0 -214
- package/dist/src/route/route.matcher.js.map +0 -1
- package/dist/src/route/route.resolver.js.map +0 -1
- package/dist/src/route/route.trie.d.ts +0 -38
- package/dist/src/route/route.trie.js +0 -206
- package/dist/src/route/route.trie.js.map +0 -1
- package/dist/src/type/logger.type.d.ts +0 -17
- package/dist/src/type/logger.type.js +0 -9
- package/dist/src/type/logger.type.js.map +0 -1
- package/dist/src/type/markdown.type.d.ts +0 -20
- package/dist/src/type/markdown.type.js +0 -2
- package/dist/src/type/markdown.type.js.map +0 -1
- package/dist/src/type/route-tree.type.js.map +0 -1
- package/dist/src/type/route.type.d.ts +0 -94
- package/dist/src/type/route.type.js +0 -8
- package/dist/src/type/route.type.js.map +0 -1
- package/dist/src/type/widget.type.d.ts +0 -55
- package/dist/src/type/widget.type.js +0 -10
- package/dist/src/type/widget.type.js.map +0 -1
- package/dist/src/util/logger.util.d.ts +0 -26
- package/dist/src/util/logger.util.js +0 -80
- package/dist/src/util/logger.util.js.map +0 -1
- package/dist/src/util/md.util.js.map +0 -1
- package/dist/src/util/widget-resolve.util.d.ts +0 -52
- package/dist/src/util/widget-resolve.util.js.map +0 -1
- package/dist/src/widget/widget.parser.js.map +0 -1
- package/dist/src/widget/widget.registry.d.ts +0 -23
- package/dist/src/widget/widget.registry.js +0 -42
- package/dist/src/widget/widget.registry.js.map +0 -1
- package/runtime/bun/esbuild-runtime-loader.plugin.ts +0 -112
- package/server/esbuild-manifest.plugin.ts +0 -209
- package/server/server-api.type.ts +0 -97
- package/src/component/abstract.component.ts +0 -231
- package/src/component/widget.component.ts +0 -85
- package/src/route/route.core.ts +0 -362
- package/src/route/route.trie.ts +0 -265
- package/src/type/logger.type.ts +0 -24
- package/src/type/markdown.type.ts +0 -21
- package/src/type/route-tree.type.ts +0 -51
- package/src/type/route.type.ts +0 -124
- package/src/type/widget.type.ts +0 -65
- package/src/util/logger.util.ts +0 -83
- package/src/widget/widget.registry.ts +0 -51
- /package/dist/{src/route → core/util}/route-tree.util.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.util.js","sourceRoot":"","sources":["../../server/build.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"build.util.js","sourceRoot":"","sources":["../../server/build.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* The generated code simply calls `bootEmrouteApp()` which handles
|
|
6
6
|
* fetching manifests, creating the runtime, and wiring navigation.
|
|
7
7
|
*/
|
|
8
|
-
import type { SpaMode } from '../
|
|
8
|
+
import type { SpaMode } from '../core/type/widget.type.ts';
|
|
9
9
|
/**
|
|
10
10
|
* Generate a minimal main.ts entry point.
|
|
11
11
|
*
|
|
@@ -1,37 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Emroute
|
|
3
|
-
*
|
|
4
|
-
* Runtime-agnostic server that handles SSR rendering, manifest resolution,
|
|
5
|
-
* static file serving, and route matching. Works with any Runtime implementation.
|
|
6
|
-
*
|
|
7
|
-
* Usage (standalone):
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { createEmrouteServer } from '@emkodev/emroute/server';
|
|
10
|
-
* import { BunFsRuntime } from '@emkodev/emroute/runtime/bun/fs';
|
|
11
|
-
*
|
|
12
|
-
* const runtime = new BunFsRuntime('.', { routesDir: '/routes' });
|
|
13
|
-
* const emroute = await createEmrouteServer({ spa: 'root' }, runtime);
|
|
14
|
-
*
|
|
15
|
-
* Bun.serve({ fetch: (req) => emroute.handleRequest(req) ?? new Response('Not Found', { status: 404 }) });
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* Usage (composable):
|
|
19
|
-
* ```ts
|
|
20
|
-
* const emroute = await createEmrouteServer(config, runtime);
|
|
21
|
-
*
|
|
22
|
-
* Bun.serve({ async fetch(req) {
|
|
23
|
-
* if (isApiRoute(req)) return handleApi(req);
|
|
24
|
-
* const response = await emroute.handleRequest(req);
|
|
25
|
-
* if (response) return response;
|
|
26
|
-
* return new Response('Not Found', { status: 404 });
|
|
27
|
-
* }});
|
|
28
|
-
* ```
|
|
2
|
+
* Emroute — re-exports from core/server.
|
|
29
3
|
*/
|
|
30
|
-
|
|
31
|
-
import
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export declare function createEmrouteServer(config: EmrouteServerConfig, runtime: Runtime): Promise<EmrouteServer>;
|
|
4
|
+
export { Emroute } from '../core/server/emroute.server.ts';
|
|
5
|
+
import { Emroute as _Emroute } from '../core/server/emroute.server.ts';
|
|
6
|
+
import type { Runtime } from '../core/runtime/abstract.runtime.ts';
|
|
7
|
+
/** @deprecated Use `Emroute` class directly. */
|
|
8
|
+
export type EmrouteServer = _Emroute;
|
|
9
|
+
/** @deprecated Use `Emroute.create(config, runtime)`. */
|
|
10
|
+
export declare function createEmrouteServer(config: Parameters<typeof _Emroute.create>[0], runtime: Runtime): Promise<_Emroute>;
|
|
@@ -1,345 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Emroute
|
|
3
|
-
*
|
|
4
|
-
* Runtime-agnostic server that handles SSR rendering, manifest resolution,
|
|
5
|
-
* static file serving, and route matching. Works with any Runtime implementation.
|
|
6
|
-
*
|
|
7
|
-
* Usage (standalone):
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { createEmrouteServer } from '@emkodev/emroute/server';
|
|
10
|
-
* import { BunFsRuntime } from '@emkodev/emroute/runtime/bun/fs';
|
|
11
|
-
*
|
|
12
|
-
* const runtime = new BunFsRuntime('.', { routesDir: '/routes' });
|
|
13
|
-
* const emroute = await createEmrouteServer({ spa: 'root' }, runtime);
|
|
14
|
-
*
|
|
15
|
-
* Bun.serve({ fetch: (req) => emroute.handleRequest(req) ?? new Response('Not Found', { status: 404 }) });
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* Usage (composable):
|
|
19
|
-
* ```ts
|
|
20
|
-
* const emroute = await createEmrouteServer(config, runtime);
|
|
21
|
-
*
|
|
22
|
-
* Bun.serve({ async fetch(req) {
|
|
23
|
-
* if (isApiRoute(req)) return handleApi(req);
|
|
24
|
-
* const response = await emroute.handleRequest(req);
|
|
25
|
-
* if (response) return response;
|
|
26
|
-
* return new Response('Not Found', { status: 404 });
|
|
27
|
-
* }});
|
|
28
|
-
* ```
|
|
2
|
+
* Emroute — re-exports from core/server.
|
|
29
3
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
import { rewriteMdLinks } from "../src/util/md.util.js";
|
|
37
|
-
import { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH, } from "../runtime/abstract.runtime.js";
|
|
38
|
-
// ── Module loaders ─────────────────────────────────────────────────────
|
|
39
|
-
/**
|
|
40
|
-
* Collect all .ts module paths from a RouteNode tree and create loaders.
|
|
41
|
-
* Uses `runtime.loadModule()` — each runtime decides how to load modules
|
|
42
|
-
* (filesystem import, SQLite transpile + blob URL, etc.).
|
|
43
|
-
*/
|
|
44
|
-
function createModuleLoaders(tree, runtime) {
|
|
45
|
-
const paths = new Set();
|
|
46
|
-
function walk(node) {
|
|
47
|
-
const modulePath = node.files?.ts ?? node.files?.js;
|
|
48
|
-
if (modulePath)
|
|
49
|
-
paths.add(modulePath);
|
|
50
|
-
if (node.redirect)
|
|
51
|
-
paths.add(node.redirect);
|
|
52
|
-
if (node.errorBoundary)
|
|
53
|
-
paths.add(node.errorBoundary);
|
|
54
|
-
if (node.children) {
|
|
55
|
-
for (const child of Object.values(node.children))
|
|
56
|
-
walk(child);
|
|
57
|
-
}
|
|
58
|
-
if (node.dynamic)
|
|
59
|
-
walk(node.dynamic.child);
|
|
60
|
-
if (node.wildcard)
|
|
61
|
-
walk(node.wildcard.child);
|
|
62
|
-
}
|
|
63
|
-
walk(tree);
|
|
64
|
-
const loaders = {};
|
|
65
|
-
for (const path of paths) {
|
|
66
|
-
loaders[path] = () => runtime.loadModule(path);
|
|
67
|
-
}
|
|
68
|
-
return loaders;
|
|
69
|
-
}
|
|
70
|
-
// ── Widget helpers ─────────────────────────────────────────────────────
|
|
71
|
-
/** Find a WidgetComponent export from a module. */
|
|
72
|
-
function extractWidgetExport(mod) {
|
|
73
|
-
for (const value of Object.values(mod)) {
|
|
74
|
-
if (!value)
|
|
75
|
-
continue;
|
|
76
|
-
if (typeof value === 'object' && 'getData' in value) {
|
|
77
|
-
return value;
|
|
78
|
-
}
|
|
79
|
-
if (typeof value === 'function' && value.prototype?.getData) {
|
|
80
|
-
return new value();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
/** Import widget modules for SSR via runtime.loadModule(). */
|
|
86
|
-
async function importWidgets(entries, runtime, manual) {
|
|
87
|
-
const registry = new WidgetRegistry();
|
|
88
|
-
const widgetFiles = {};
|
|
89
|
-
for (const entry of entries) {
|
|
90
|
-
try {
|
|
91
|
-
const runtimePath = entry.modulePath.startsWith('/')
|
|
92
|
-
? entry.modulePath
|
|
93
|
-
: `/${entry.modulePath}`;
|
|
94
|
-
const mod = await runtime.loadModule(runtimePath);
|
|
95
|
-
const instance = extractWidgetExport(mod);
|
|
96
|
-
if (!instance)
|
|
97
|
-
continue;
|
|
98
|
-
registry.add(instance);
|
|
99
|
-
// Prefer inlined __files from merged module over manifest paths
|
|
100
|
-
const inlined = mod.__files;
|
|
101
|
-
if (inlined && typeof inlined === 'object') {
|
|
102
|
-
widgetFiles[entry.name] = inlined;
|
|
103
|
-
}
|
|
104
|
-
else if (entry.files) {
|
|
105
|
-
widgetFiles[entry.name] = entry.files;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
catch (e) {
|
|
109
|
-
console.error(`[emroute] Failed to load widget ${entry.modulePath}:`, e);
|
|
110
|
-
if (entry.files)
|
|
111
|
-
widgetFiles[entry.name] = entry.files;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (manual) {
|
|
115
|
-
for (const widget of manual) {
|
|
116
|
-
registry.add(widget);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return { registry, widgetFiles };
|
|
120
|
-
}
|
|
121
|
-
// ── HTML shell ─────────────────────────────────────────────────────────
|
|
122
|
-
/** Build a default HTML shell. */
|
|
123
|
-
function buildHtmlShell(title, htmlBase) {
|
|
124
|
-
const baseTag = htmlBase ? `\n <base href="${escapeHtml(htmlBase)}/">` : '';
|
|
125
|
-
return `<!DOCTYPE html>
|
|
126
|
-
<html>
|
|
127
|
-
<head>${baseTag}
|
|
128
|
-
<meta charset="utf-8">
|
|
129
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
130
|
-
<title>${escapeHtml(title)}</title>
|
|
131
|
-
<style>@view-transition { navigation: auto; } router-slot { display: contents; }</style>
|
|
132
|
-
</head>
|
|
133
|
-
<body>
|
|
134
|
-
<router-slot></router-slot>
|
|
135
|
-
</body>
|
|
136
|
-
</html>`;
|
|
137
|
-
}
|
|
138
|
-
/** Inject SSR-rendered content into an HTML shell. */
|
|
139
|
-
function injectSsrContent(html, content, title, ssrRoute) {
|
|
140
|
-
const slotPattern = /<router-slot\b[^>]*>.*?<\/router-slot>/s;
|
|
141
|
-
if (!slotPattern.test(html))
|
|
142
|
-
return html;
|
|
143
|
-
const ssrAttr = ssrRoute ? ` data-ssr-route="${ssrRoute}"` : '';
|
|
144
|
-
html = html.replace(slotPattern, `<router-slot${ssrAttr}>${content}</router-slot>`);
|
|
145
|
-
if (title) {
|
|
146
|
-
html = html.replace(/<title>[^<]*<\/title>/, `<title>${escapeHtml(title)}</title>`);
|
|
147
|
-
}
|
|
148
|
-
return html;
|
|
149
|
-
}
|
|
150
|
-
/** Read the HTML shell from runtime, with fallback to a default shell. */
|
|
151
|
-
async function resolveShell(runtime, title, htmlBase) {
|
|
152
|
-
const response = await runtime.query('/index.html');
|
|
153
|
-
if (response.status !== 404)
|
|
154
|
-
return await response.text();
|
|
155
|
-
return buildHtmlShell(title, htmlBase);
|
|
156
|
-
}
|
|
157
|
-
// ── More path helpers ─────────────────────────────────────────────────
|
|
158
|
-
// ── createEmrouteServer ────────────────────────────────────────────────
|
|
159
|
-
/**
|
|
160
|
-
* Create an emroute server.
|
|
161
|
-
*
|
|
162
|
-
* All paths are Runtime-relative (starting with `/`). Runtime root = appRoot.
|
|
163
|
-
*/
|
|
164
|
-
export async function createEmrouteServer(config, runtime) {
|
|
165
|
-
const { spa = 'root', } = config;
|
|
166
|
-
const { html: htmlBase, md: mdBase, app: appBase } = config.basePath ?? DEFAULT_BASE_PATH;
|
|
167
|
-
// ── Route tree (read from runtime) ──────────────────────────────────
|
|
168
|
-
let routeTree;
|
|
169
|
-
if (config.routeTree) {
|
|
170
|
-
routeTree = config.routeTree;
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
const manifestResponse = await runtime.query(ROUTES_MANIFEST_PATH);
|
|
174
|
-
if (manifestResponse.status === 404) {
|
|
175
|
-
throw new Error(`[emroute] ${ROUTES_MANIFEST_PATH} not found in runtime. ` +
|
|
176
|
-
'Provide routeTree in config or ensure the runtime produces it.');
|
|
177
|
-
}
|
|
178
|
-
routeTree = await manifestResponse.json();
|
|
179
|
-
}
|
|
180
|
-
const moduleLoaders = config.moduleLoaders ?? createModuleLoaders(routeTree, runtime);
|
|
181
|
-
const resolver = new RouteTrie(routeTree);
|
|
182
|
-
// ── Widgets (read from runtime) ────────────────────────────────────
|
|
183
|
-
let widgets = config.widgets;
|
|
184
|
-
let widgetFiles = {};
|
|
185
|
-
let discoveredWidgetEntries = [];
|
|
186
|
-
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
187
|
-
if (widgetsResponse.status !== 404) {
|
|
188
|
-
discoveredWidgetEntries = await widgetsResponse.json();
|
|
189
|
-
if (config.widgets) {
|
|
190
|
-
// Widgets pre-provided (e.g. browser bundle) — just collect file paths
|
|
191
|
-
widgets = config.widgets;
|
|
192
|
-
for (const entry of discoveredWidgetEntries) {
|
|
193
|
-
if (entry.files)
|
|
194
|
-
widgetFiles[entry.name] = entry.files;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
const imported = await importWidgets(discoveredWidgetEntries, runtime);
|
|
199
|
-
widgets = imported.registry;
|
|
200
|
-
widgetFiles = imported.widgetFiles;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
// ── SSR routers ──────────────────────────────────────────────────────
|
|
204
|
-
let ssrHtmlRouter = null;
|
|
205
|
-
let ssrMdRouter = null;
|
|
206
|
-
function buildSsrRouters() {
|
|
207
|
-
if (spa === 'only') {
|
|
208
|
-
ssrHtmlRouter = null;
|
|
209
|
-
ssrMdRouter = null;
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
ssrHtmlRouter = new SsrHtmlRouter(resolver, {
|
|
213
|
-
fileReader: (path) => runtime.query(path, { as: 'text' }),
|
|
214
|
-
moduleLoaders,
|
|
215
|
-
markdownRenderer: config.markdownRenderer,
|
|
216
|
-
extendContext: config.extendContext,
|
|
217
|
-
widgets,
|
|
218
|
-
widgetFiles,
|
|
219
|
-
});
|
|
220
|
-
ssrMdRouter = new SsrMdRouter(resolver, {
|
|
221
|
-
fileReader: (path) => runtime.query(path, { as: 'text' }),
|
|
222
|
-
moduleLoaders,
|
|
223
|
-
extendContext: config.extendContext,
|
|
224
|
-
widgets,
|
|
225
|
-
widgetFiles,
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
buildSsrRouters();
|
|
229
|
-
// ── HTML shell ───────────────────────────────────────────────────────
|
|
230
|
-
const title = config.title ?? 'emroute';
|
|
231
|
-
let shell = await resolveShell(runtime, title, htmlBase);
|
|
232
|
-
// Auto-discover main.css and inject <link> into <head>
|
|
233
|
-
if ((await runtime.query('/main.css')).status !== 404) {
|
|
234
|
-
shell = shell.replace('</head>', ' <link rel="stylesheet" href="/main.css">\n</head>');
|
|
235
|
-
}
|
|
236
|
-
// ── handleRequest ────────────────────────────────────────────────────
|
|
237
|
-
async function handleRequest(req) {
|
|
238
|
-
const url = new URL(req.url);
|
|
239
|
-
const pathname = url.pathname;
|
|
240
|
-
const mdPrefix = mdBase + '/';
|
|
241
|
-
const htmlPrefix = htmlBase + '/';
|
|
242
|
-
const appPrefix = appBase + '/';
|
|
243
|
-
// SSR Markdown: /md/*
|
|
244
|
-
if (ssrMdRouter &&
|
|
245
|
-
(pathname.startsWith(mdPrefix) || pathname === mdBase)) {
|
|
246
|
-
// Normalize trailing slash: /md/about/ → 301 /md/about
|
|
247
|
-
const routePath = pathname === mdBase ? '/' : pathname.slice(mdBase.length);
|
|
248
|
-
if (routePath.length > 1 && routePath.endsWith('/')) {
|
|
249
|
-
const canonical = mdBase + routePath.slice(0, -1) + (url.search || '');
|
|
250
|
-
return Response.redirect(new URL(canonical, url.origin), 301);
|
|
251
|
-
}
|
|
252
|
-
try {
|
|
253
|
-
const routeUrl = new URL(routePath + url.search, url.origin);
|
|
254
|
-
const { content, status, redirect } = await ssrMdRouter.render(routeUrl, req.signal);
|
|
255
|
-
if (redirect) {
|
|
256
|
-
const target = redirect.startsWith('/') ? mdBase + redirect : redirect;
|
|
257
|
-
return Response.redirect(new URL(target, url.origin), status);
|
|
258
|
-
}
|
|
259
|
-
return new Response(rewriteMdLinks(content, mdBase, [mdBase, htmlBase]), {
|
|
260
|
-
status,
|
|
261
|
-
headers: { 'Content-Type': 'text/markdown; charset=utf-8; variant=CommonMark' },
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
catch (e) {
|
|
265
|
-
console.error(`[emroute] Error rendering ${pathname}:`, e);
|
|
266
|
-
return new Response('Internal Server Error', { status: 500 });
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
// SSR HTML: /html/*
|
|
270
|
-
if (ssrHtmlRouter &&
|
|
271
|
-
(pathname.startsWith(htmlPrefix) || pathname === htmlBase)) {
|
|
272
|
-
// Normalize trailing slash: /html/about/ → 301 /html/about
|
|
273
|
-
const routePath = pathname === htmlBase ? '/' : pathname.slice(htmlBase.length);
|
|
274
|
-
if (routePath.length > 1 && routePath.endsWith('/')) {
|
|
275
|
-
const canonical = htmlBase + routePath.slice(0, -1) + (url.search || '');
|
|
276
|
-
return Response.redirect(new URL(canonical, url.origin), 301);
|
|
277
|
-
}
|
|
278
|
-
try {
|
|
279
|
-
const routeUrl = new URL(routePath + url.search, url.origin);
|
|
280
|
-
const result = await ssrHtmlRouter.render(routeUrl, req.signal);
|
|
281
|
-
if (result.redirect) {
|
|
282
|
-
const target = result.redirect.startsWith('/') ? htmlBase + result.redirect : result.redirect;
|
|
283
|
-
return Response.redirect(new URL(target, url.origin), result.status);
|
|
284
|
-
}
|
|
285
|
-
const ssrTitle = result.title ?? title;
|
|
286
|
-
const html = injectSsrContent(shell, result.content, ssrTitle, pathname);
|
|
287
|
-
return new Response(html, {
|
|
288
|
-
status: result.status,
|
|
289
|
-
headers: { 'Content-Type': 'text/html; charset=utf-8' },
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
catch (e) {
|
|
293
|
-
console.error(`[emroute] Error rendering ${pathname}:`, e);
|
|
294
|
-
return new Response('Internal Server Error', { status: 500 });
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
// /app/* — serve shell (browser JS takes over via createEmrouteApp)
|
|
298
|
-
if (pathname.startsWith(appPrefix) || pathname === appBase) {
|
|
299
|
-
return new Response(shell, {
|
|
300
|
-
status: 200,
|
|
301
|
-
headers: { 'Content-Type': 'text/html; charset=utf-8' },
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
// /html/* or /md/* that wasn't handled by SSR (e.g. 'only' mode) — serve shell
|
|
305
|
-
if (pathname.startsWith(htmlPrefix) || pathname === htmlBase ||
|
|
306
|
-
pathname.startsWith(mdPrefix) || pathname === mdBase) {
|
|
307
|
-
return new Response(shell, {
|
|
308
|
-
status: 200,
|
|
309
|
-
headers: { 'Content-Type': 'text/html; charset=utf-8' },
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
// Static files — only try runtime for paths with a file extension
|
|
313
|
-
const lastSegment = pathname.split('/').pop() ?? '';
|
|
314
|
-
if (lastSegment.includes('.')) {
|
|
315
|
-
const fileResponse = await runtime.handle(pathname);
|
|
316
|
-
if (fileResponse.status === 200)
|
|
317
|
-
return fileResponse;
|
|
318
|
-
return null;
|
|
319
|
-
}
|
|
320
|
-
// Bare paths — redirect to /app/* in root/only modes, /html/* otherwise.
|
|
321
|
-
const base = (spa === 'root' || spa === 'only') ? appBase : htmlBase;
|
|
322
|
-
const bare = pathname === '/' ? '' : pathname.slice(1).replace(/\/$/, '');
|
|
323
|
-
return Response.redirect(new URL(`${base}/${bare}`, url.origin), 302);
|
|
324
|
-
}
|
|
325
|
-
// ── Return ───────────────────────────────────────────────────────────
|
|
326
|
-
return {
|
|
327
|
-
handleRequest,
|
|
328
|
-
get htmlRouter() {
|
|
329
|
-
return ssrHtmlRouter;
|
|
330
|
-
},
|
|
331
|
-
get mdRouter() {
|
|
332
|
-
return ssrMdRouter;
|
|
333
|
-
},
|
|
334
|
-
get routeTree() {
|
|
335
|
-
return routeTree;
|
|
336
|
-
},
|
|
337
|
-
get widgetEntries() {
|
|
338
|
-
return discoveredWidgetEntries;
|
|
339
|
-
},
|
|
340
|
-
get shell() {
|
|
341
|
-
return shell;
|
|
342
|
-
},
|
|
343
|
-
};
|
|
4
|
+
export { Emroute } from "../core/server/emroute.server.js";
|
|
5
|
+
// ── Deprecated aliases ───────────────────────────────────────────────
|
|
6
|
+
import { Emroute as _Emroute } from "../core/server/emroute.server.js";
|
|
7
|
+
/** @deprecated Use `Emroute.create(config, runtime)`. */
|
|
8
|
+
export function createEmrouteServer(config, runtime) {
|
|
9
|
+
return _Emroute.create(config, runtime);
|
|
344
10
|
}
|
|
345
11
|
//# sourceMappingURL=emroute.server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emroute.server.js","sourceRoot":"","sources":["../../server/emroute.server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emroute.server.js","sourceRoot":"","sources":["../../server/emroute.server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,wEAAwE;AAExE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAMvE,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CACjC,MAA6C,EAC7C,OAAgB;IAEhB,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* This is the single source of truth: JSON manifest → esbuild bundle.
|
|
10
10
|
*/
|
|
11
|
-
import { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH } from "../
|
|
11
|
+
import { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH } from "../core/server/server.type.js";
|
|
12
12
|
import { EMROUTE_VIRTUAL_NS } from "./build.util.js";
|
|
13
13
|
/** Escape a string for use inside a single-quoted JS/TS string literal. */
|
|
14
14
|
function esc(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-manifest.plugin.js","sourceRoot":"","sources":["../../server/esbuild-manifest.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"esbuild-manifest.plugin.js","sourceRoot":"","sources":["../../server/esbuild-manifest.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Server API Types
|
|
3
|
-
*
|
|
4
|
-
* Interfaces for the emroute server.
|
|
5
|
-
* Consumers use `createEmrouteServer()` to get a server that handles
|
|
6
|
-
* SSR rendering, static file serving, and route matching.
|
|
2
|
+
* Server API Types — re-exports from core/server.
|
|
7
3
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import type { SpaMode, WidgetManifestEntry } from '../src/type/widget.type.ts';
|
|
11
|
-
import type { ContextProvider } from '../src/component/abstract.component.ts';
|
|
12
|
-
import type { BasePath } from '../src/route/route.core.ts';
|
|
13
|
-
import type { WidgetRegistry } from '../src/widget/widget.registry.ts';
|
|
14
|
-
import type { SsrHtmlRouter } from '../src/renderer/ssr/html.renderer.ts';
|
|
15
|
-
import type { SsrMdRouter } from '../src/renderer/ssr/md.renderer.ts';
|
|
4
|
+
export type { BasePath, EmrouteServer, EmrouteServerConfig, } from '../core/server/server.type.ts';
|
|
5
|
+
export { DEFAULT_BASE_PATH, ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH, ELEMENTS_MANIFEST_PATH, } from '../core/server/server.type.ts';
|
|
16
6
|
/** Result of rendering a URL through an SSR renderer. */
|
|
17
7
|
export interface SsrRenderResult {
|
|
18
|
-
/** Rendered content (HTML or Markdown) */
|
|
19
8
|
content: string;
|
|
20
|
-
/** HTTP status code */
|
|
21
9
|
status: number;
|
|
22
|
-
/** Page title (from the leaf route's getTitle) */
|
|
23
10
|
title?: string;
|
|
24
|
-
/** Redirect target URL (for 301/302 responses) */
|
|
25
11
|
redirect?: string;
|
|
26
12
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Config for `createEmrouteServer()`.
|
|
29
|
-
*
|
|
30
|
-
* The server reads manifests from the Runtime and handles SSR rendering,
|
|
31
|
-
* static file serving, and route matching.
|
|
32
|
-
*/
|
|
33
|
-
export interface EmrouteServerConfig {
|
|
34
|
-
/** Pre-built route tree (alternative to reading from runtime) */
|
|
35
|
-
routeTree?: RouteNode;
|
|
36
|
-
/** Pre-built widget registry (alternative to reading from runtime) */
|
|
37
|
-
widgets?: WidgetRegistry;
|
|
38
|
-
/** SPA mode — controls which routers are constructed and what gets served */
|
|
39
|
-
spa?: SpaMode;
|
|
40
|
-
/** Base paths for SSR endpoints (default: { html: '/html', md: '/md' }) */
|
|
41
|
-
basePath?: BasePath;
|
|
42
|
-
/** Page title (fallback when no route provides one) */
|
|
43
|
-
title?: string;
|
|
44
|
-
/** Markdown renderer for server-side <mark-down> expansion */
|
|
45
|
-
markdownRenderer?: MarkdownRenderer;
|
|
46
|
-
/** Enrich every ComponentContext with app-level services. */
|
|
47
|
-
extendContext?: ContextProvider;
|
|
48
|
-
/**
|
|
49
|
-
* Pre-bundled module loaders (route + widget modules).
|
|
50
|
-
* When provided, skips `runtime.loadModule()` — used in the browser
|
|
51
|
-
* where modules are already bundled into app.js.
|
|
52
|
-
*/
|
|
53
|
-
moduleLoaders?: Record<string, () => Promise<unknown>>;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* An emroute server instance.
|
|
57
|
-
*
|
|
58
|
-
* Handles SSR rendering, static file serving, and route matching.
|
|
59
|
-
* Use `handleRequest(req)` to compose with your own request handling.
|
|
60
|
-
*/
|
|
61
|
-
export interface EmrouteServer {
|
|
62
|
-
/**
|
|
63
|
-
* Handle an HTTP request for SSR routes and bare paths.
|
|
64
|
-
* Returns `null` for unmatched file requests — consumer handles 404.
|
|
65
|
-
*/
|
|
66
|
-
handleRequest(req: Request): Promise<Response | null>;
|
|
67
|
-
/** The SSR HTML router (null in 'only' mode — no server rendering). */
|
|
68
|
-
readonly htmlRouter: SsrHtmlRouter | null;
|
|
69
|
-
/** The SSR Markdown router (null in 'only' mode). */
|
|
70
|
-
readonly mdRouter: SsrMdRouter | null;
|
|
71
|
-
/** The resolved route tree. */
|
|
72
|
-
readonly routeTree: RouteNode;
|
|
73
|
-
/** Discovered widget entries. */
|
|
74
|
-
readonly widgetEntries: WidgetManifestEntry[];
|
|
75
|
-
/** The resolved HTML shell. */
|
|
76
|
-
readonly shell: string;
|
|
77
|
-
}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Server API Types
|
|
3
|
-
*
|
|
4
|
-
* Interfaces for the emroute server.
|
|
5
|
-
* Consumers use `createEmrouteServer()` to get a server that handles
|
|
6
|
-
* SSR rendering, static file serving, and route matching.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
1
|
+
export { DEFAULT_BASE_PATH, ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH, ELEMENTS_MANIFEST_PATH, } from "../core/server/server.type.js";
|
|
9
2
|
//# sourceMappingURL=server-api.type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-api.type.js","sourceRoot":"","sources":["../../server/server-api.type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-api.type.js","sourceRoot":"","sources":["../../server/server-api.type.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC"}
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* Handles:
|
|
6
6
|
* - SSR hydration (ssr attribute)
|
|
7
7
|
* - Client-side data fetching with AbortSignal
|
|
8
|
-
* - Companion file loading (html, md, css)
|
|
8
|
+
* - Companion file loading (html, md, css)
|
|
9
9
|
* - Loading/error states
|
|
10
10
|
*/
|
|
11
|
-
import type { Component
|
|
11
|
+
import type { Component } from '../../core/component/abstract.component.ts';
|
|
12
|
+
import type { ContextProvider } from '../../core/type/component.type.ts';
|
|
12
13
|
import { HTMLElementBase } from '../util/html.util.ts';
|
|
13
14
|
type WidgetFiles = {
|
|
14
15
|
html?: string;
|
|
@@ -19,12 +20,8 @@ type WidgetFiles = {
|
|
|
19
20
|
* Custom element that renders a Component in the browser.
|
|
20
21
|
*/
|
|
21
22
|
export declare class ComponentElement<TParams, TData> extends HTMLElementBase {
|
|
22
|
-
/** Shared file content cache — deduplicates fetches across all widget instances. */
|
|
23
|
-
private static fileCache;
|
|
24
23
|
/** Lazy module loaders keyed by tag name — set by registerLazy(). */
|
|
25
24
|
private static lazyLoaders;
|
|
26
|
-
/** Cached module promises for lazy-loaded widgets — avoids re-fetching. */
|
|
27
|
-
private static lazyModules;
|
|
28
25
|
/** App-level context provider set once during router initialization. */
|
|
29
26
|
private static extendContext;
|
|
30
27
|
/** Register (or clear) the context provider that enriches every widget's ComponentContext. */
|
|
@@ -73,7 +70,7 @@ export declare class ComponentElement<TParams, TData> extends HTMLElementBase {
|
|
|
73
70
|
*/
|
|
74
71
|
reload(): Promise<void>;
|
|
75
72
|
/**
|
|
76
|
-
* Fetch a single file by path
|
|
73
|
+
* Fetch a single file by path.
|
|
77
74
|
* Absolute URLs (http/https) pass through; relative paths get '/' prefix.
|
|
78
75
|
*/
|
|
79
76
|
private static loadFile;
|