@vmz/core 0.2.5 → 0.2.7
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/dist/browser/client-nav.d.ts +5 -55
- package/dist/browser/client-nav.js +5 -769
- package/dist/browser/diagnostics/precision-trace.d.ts +47 -0
- package/dist/browser/diagnostics/precision-trace.js +86 -0
- package/dist/browser/dom/attributes.d.ts +5 -0
- package/dist/browser/dom/attributes.js +102 -0
- package/dist/browser/dom/component.d.ts +11 -0
- package/dist/browser/dom/component.js +255 -0
- package/dist/browser/dom/direct-api.d.ts +66 -0
- package/dist/browser/dom/direct-api.js +446 -0
- package/dist/browser/dom/lifecycle.d.ts +9 -0
- package/dist/browser/dom/lifecycle.js +161 -0
- package/dist/browser/dom/registry.d.ts +5 -0
- package/dist/browser/dom/registry.js +16 -0
- package/dist/browser/dom-core.d.ts +51 -249
- package/dist/browser/dom-core.js +51 -2521
- package/dist/browser/navigation/client-navigation.d.ts +44 -0
- package/dist/browser/navigation/client-navigation.js +277 -0
- package/dist/browser/navigation/extract-html.d.ts +1 -0
- package/dist/browser/navigation/extract-html.js +5 -0
- package/dist/browser/navigation/layout-retain.d.ts +3 -0
- package/dist/browser/navigation/layout-retain.js +34 -0
- package/dist/browser/navigation/locale-transition.d.ts +24 -0
- package/dist/browser/navigation/locale-transition.js +323 -0
- package/dist/browser/navigation/scroll-focus.d.ts +14 -0
- package/dist/browser/navigation/scroll-focus.js +87 -0
- package/dist/browser/reactivity/patch-scheduler.d.ts +12 -0
- package/dist/browser/reactivity/patch-scheduler.js +720 -0
- package/dist/browser/reactivity/write-barrier.d.ts +16 -0
- package/dist/browser/reactivity/write-barrier.js +546 -0
- package/dist/browser/resume/adopt.d.ts +1 -0
- package/dist/browser/resume/adopt.js +168 -0
- package/dist/browser/resume/hydrate.d.ts +4 -0
- package/dist/browser/resume/hydrate.js +107 -0
- package/dist/browser/resume/resume.d.ts +3 -0
- package/dist/browser/resume/resume.js +102 -0
- package/dist/faces/dom.browser.d.ts +2 -1
- package/dist/faces/dom.browser.js +2 -1
- package/dist/host/{deployment-registry.d.ts → deployment/deployment-registry.d.ts} +1 -1
- package/dist/host/{deployment-registry.js → deployment/deployment-registry.js} +1 -1
- package/dist/host/list-client-components.d.ts +2 -2
- package/dist/host/list-client-components.js +4 -4
- package/dist/host/{render-host.d.ts → render/render-host.d.ts} +2 -2
- package/dist/host/{render-host.js → render/render-host.js} +1 -1
- package/dist/host/{route-layout-chain.js → render/route-layout-chain.js} +1 -1
- package/dist/host/serve/bootstrap.d.ts +1 -0
- package/dist/host/serve/bootstrap.js +25 -0
- package/dist/host/serve/constants.d.ts +6 -0
- package/dist/host/serve/constants.js +6 -0
- package/dist/host/serve/hmr-dev.d.ts +34 -0
- package/dist/host/serve/hmr-dev.js +294 -0
- package/dist/host/serve/http.d.ts +1 -0
- package/dist/host/serve/http.js +124 -0
- package/dist/host/serve/locale-theme.d.ts +19 -0
- package/dist/host/serve/locale-theme.js +169 -0
- package/dist/host/serve/page-catalog.d.ts +14 -0
- package/dist/host/serve/page-catalog.js +105 -0
- package/dist/host/serve/page-render.d.ts +17 -0
- package/dist/host/serve/page-render.js +419 -0
- package/dist/host/serve/paths.d.ts +3 -0
- package/dist/host/serve/paths.js +74 -0
- package/dist/host/serve/route-catalog.d.ts +6 -0
- package/dist/host/serve/route-catalog.js +108 -0
- package/dist/host/serve/state.d.ts +30 -0
- package/dist/host/serve/state.js +36 -0
- package/dist/host/serve-host.d.ts +0 -17
- package/dist/host/serve-host.mjs +4 -1420
- package/dist/ssr/document.d.ts +2 -0
- package/dist/ssr/document.js +71 -0
- package/dist/ssr/dom-ssr.d.ts +10 -47
- package/dist/ssr/dom-ssr.js +10 -1284
- package/dist/ssr/render.d.ts +2 -0
- package/dist/ssr/render.js +78 -0
- package/dist/ssr/serialize.d.ts +3 -0
- package/dist/ssr/serialize.js +678 -0
- package/package.json +11 -11
- /package/dist/host/{route-layout-chain.d.ts → render/route-layout-chain.d.ts} +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { createInstance, destroy, } from '../browser/dom-core.js';
|
|
2
|
+
import { ensureSsrDocument } from './document.js';
|
|
3
|
+
import { flattenSerializeNode, runDirectSerializeTreeWithMounts, streamSerializeChunks } from './serialize.js';
|
|
4
|
+
export async function renderToString(Component, props = {}, opts = {}) {
|
|
5
|
+
ensureSsrDocument();
|
|
6
|
+
const signal = opts && opts.signal;
|
|
7
|
+
if (signal && signal.aborted)
|
|
8
|
+
return '';
|
|
9
|
+
const inst = createInstance(Component, props);
|
|
10
|
+
if (typeof inst.onMount === 'function') {
|
|
11
|
+
await inst.onMount();
|
|
12
|
+
}
|
|
13
|
+
if (signal && signal.aborted)
|
|
14
|
+
return '';
|
|
15
|
+
// production Direct emit: SSR only via Direct serialize schedule ??never `render`.
|
|
16
|
+
if (!(Component && Component.__vmzDirect && typeof Component.__vmzCreate === 'function')) {
|
|
17
|
+
throw new Error(`vmz:dom renderToString() requires __vmzCreate (Direct); blueprint render() removed (production Direct emit)`);
|
|
18
|
+
}
|
|
19
|
+
const root = await runDirectSerializeTreeWithMounts(Component, inst);
|
|
20
|
+
if (opts && opts.slotHtml != null)
|
|
21
|
+
injectDefaultSlotHtml(root, opts.slotHtml);
|
|
22
|
+
return flattenSerializeNode(root);
|
|
23
|
+
}
|
|
24
|
+
export async function* renderToStream(Component, props = {}, opts = {}) {
|
|
25
|
+
ensureSsrDocument();
|
|
26
|
+
const signal = opts && opts.signal;
|
|
27
|
+
const aborted = () => Boolean(signal && signal.aborted);
|
|
28
|
+
if (aborted())
|
|
29
|
+
return;
|
|
30
|
+
const inst = createInstance(Component, props);
|
|
31
|
+
try {
|
|
32
|
+
if (typeof inst.onMount === 'function') {
|
|
33
|
+
await inst.onMount();
|
|
34
|
+
}
|
|
35
|
+
if (aborted())
|
|
36
|
+
return;
|
|
37
|
+
if (!(Component && Component.__vmzDirect && typeof Component.__vmzCreate === 'function')) {
|
|
38
|
+
throw new Error(`vmz:dom renderToStream() requires __vmzCreate (Direct); blueprint render() removed (production Direct emit)`);
|
|
39
|
+
}
|
|
40
|
+
const root = await runDirectSerializeTreeWithMounts(Component, inst);
|
|
41
|
+
if (opts && opts.slotHtml != null)
|
|
42
|
+
injectDefaultSlotHtml(root, opts.slotHtml);
|
|
43
|
+
if (aborted())
|
|
44
|
+
return;
|
|
45
|
+
for (const chunk of streamSerializeChunks(root)) {
|
|
46
|
+
if (aborted())
|
|
47
|
+
return;
|
|
48
|
+
yield chunk;
|
|
49
|
+
// Allow consumers / HTTP hosts to flush between chunks (backpressure point).
|
|
50
|
+
await Promise.resolve();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
// Abort and normal completion both dispose the SSR instance (lifetime).
|
|
55
|
+
destroy(inst);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function injectDefaultSlotHtml(node, html) {
|
|
59
|
+
if (!node || typeof node !== 'object')
|
|
60
|
+
return false;
|
|
61
|
+
if (node.__kind === 'el' && node.tag === 'slot' && !(node.attrs && node.attrs.name)) {
|
|
62
|
+
node.__rawHtml = String(html ?? '');
|
|
63
|
+
node.children = [];
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
// Nested Direct component wrapper from serializeApi.component ??do not search inside.
|
|
67
|
+
if (node.__kind === 'el' && node.attrs && node.attrs['data-vmz'] != null) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
const kids = node.children;
|
|
71
|
+
if (Array.isArray(kids)) {
|
|
72
|
+
for (const c of kids) {
|
|
73
|
+
if (injectDefaultSlotHtml(c, html))
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|