@hozu/runtime-server 0.21.1 → 0.23.0
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/app.d.ts +5 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/forms.d.ts +2 -0
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +4 -4
- package/dist/forms.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +5 -0
- package/dist/generate.js.map +1 -1
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +20 -3
- package/dist/handler.js.map +1 -1
- package/dist/lower.js +1 -1
- package/dist/lower.js.map +1 -1
- package/dist/render.d.ts +3 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +39 -8
- package/dist/render.js.map +1 -1
- package/dist/rendered.d.ts +6 -0
- package/dist/rendered.d.ts.map +1 -1
- package/dist/rendered.js +2 -1
- package/dist/rendered.js.map +1 -1
- package/dist/routing.d.ts.map +1 -1
- package/dist/routing.js +2 -1
- package/dist/routing.js.map +1 -1
- package/dist/seal.d.ts +13 -0
- package/dist/seal.d.ts.map +1 -0
- package/dist/seal.js +70 -0
- package/dist/seal.js.map +1 -0
- package/dist/seed.d.ts +4 -1
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +20 -4
- package/dist/seed.js.map +1 -1
- package/package.json +6 -6
package/dist/seed.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { FeatureIR, Json, ProjectIR } from '@hozu/core/ir';
|
|
2
2
|
/** The context fields the page's address sets for this feature: they win over a kept snapshot (ADR 0067 C4). */
|
|
3
3
|
export declare function seedKeys(ir: ProjectIR, route: string, feature: FeatureIR): string[];
|
|
4
|
-
|
|
4
|
+
/** The initial context of a feature on this page: its view's seed from the address and seed queries (ADR 0069 B2). */
|
|
5
|
+
export declare function seededContext(ir: ProjectIR, route: string, feature: FeatureIR, fns: Record<string, (x: never) => unknown>, params: Json, search: Json, data?: {
|
|
6
|
+
run(ref: string, input: Json): Promise<unknown>;
|
|
7
|
+
}): Promise<Json | null>;
|
|
5
8
|
//# sourceMappingURL=seed.d.ts.map
|
package/dist/seed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG/D,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,CAQnF;
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG/D,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,CAQnF;AAQD,sHAAsH;AACtH,wBAAsB,aAAa,CACjC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,EAClB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,EAC1C,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,EACZ,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,GACzD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CA0BtB"}
|
package/dist/seed.js
CHANGED
|
@@ -11,7 +11,14 @@ export function seedKeys(ir, route, feature) {
|
|
|
11
11
|
}
|
|
12
12
|
return [];
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
const reads = (v, depth) => {
|
|
15
|
+
if (typeof v !== 'object' || v === null)
|
|
16
|
+
return false;
|
|
17
|
+
const x = v;
|
|
18
|
+
return x.ref === 'binding' ? x.depth === depth : Object.values(v).some((y) => reads(y, depth));
|
|
19
|
+
};
|
|
20
|
+
/** The initial context of a feature on this page: its view's seed from the address and seed queries (ADR 0069 B2). */
|
|
21
|
+
export async function seededContext(ir, route, feature, fns, params, search, data) {
|
|
15
22
|
const machine = feature.machine;
|
|
16
23
|
const page = ir.pages[route];
|
|
17
24
|
if (!machine || !page)
|
|
@@ -20,13 +27,22 @@ export function seededContext(ir, route, feature, fns, params, search) {
|
|
|
20
27
|
const dot = ref.indexOf('.');
|
|
21
28
|
if (ref.slice(0, dot) !== feature.id)
|
|
22
29
|
continue;
|
|
23
|
-
const
|
|
30
|
+
const view = feature.views[ref.slice(dot + 1)];
|
|
31
|
+
const seed = view?.seed;
|
|
24
32
|
if (!seed)
|
|
25
33
|
continue;
|
|
26
|
-
const
|
|
34
|
+
const base = { context: machine.initialContext, state: null, bindings: [], params, search };
|
|
35
|
+
const results = await Promise.all((view.seedQueries ?? []).map(async (q) => {
|
|
36
|
+
const r = data
|
|
37
|
+
? (await data.run(q.ref, compileValue(q.input, fns)(base)))
|
|
38
|
+
: null;
|
|
39
|
+
return r?.ok ? (r.value ?? null) : undefined;
|
|
40
|
+
}));
|
|
41
|
+
const env = { ...base, bindings: results.map((r) => r ?? null) };
|
|
27
42
|
const context = { ...machine.initialContext };
|
|
28
43
|
for (const [key, v] of Object.entries(seed))
|
|
29
|
-
|
|
44
|
+
if (!results.some((r, i) => r === undefined && reads(v, i)))
|
|
45
|
+
context[key] = compileValue(v, fns)(env);
|
|
30
46
|
return context;
|
|
31
47
|
}
|
|
32
48
|
return null;
|
package/dist/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,gHAAgH;AAChH,MAAM,UAAU,QAAQ,CAAC,EAAa,EAAE,KAAa,EAAE,OAAkB;IACvE,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,EAAE;YAAE,SAAQ;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;QACpD,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hozu/runtime-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Hozu server runtime: generated render functions, in-order streaming SSR and a web-standard handler",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hozu",
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@hozu/
|
|
44
|
-
"@hozu/
|
|
45
|
-
"@hozu/
|
|
46
|
-
"@hozu/runtime-client": "0.
|
|
47
|
-
"@hozu/
|
|
43
|
+
"@hozu/compiler": "0.23.0",
|
|
44
|
+
"@hozu/core": "0.23.0",
|
|
45
|
+
"@hozu/data": "0.23.0",
|
|
46
|
+
"@hozu/runtime-client": "0.23.0",
|
|
47
|
+
"@hozu/machine": "0.23.0"
|
|
48
48
|
},
|
|
49
49
|
"sideEffects": false
|
|
50
50
|
}
|