Make local graph execution optional across composed packages

This commit is contained in:
Timothy J. Aveni
2026-09-28 21:05:42 -07:00
parent 1e72713ae2
commit e9c15fe40f
87 changed files with 3703 additions and 3400 deletions
+13 -5
View File
@@ -7,17 +7,21 @@ import { compileExecutionPlan } from "../src/execution-world/plan.js";
import { generatePortableTypeScriptBindings } from "../src/bindings/portable.js";
import { generatePortableClientBindings } from "../src/bindings/portable-client.js";
import { loadCompositeWorkspace } from "./composite-fixture.js";
import { javascriptTarget } from "../src/execution-world/native-backends.js";
const executionTarget = (lane: string) => (lane === "browser" ? javascriptTarget : lane);
const plan = compileExecutionPlan(await loadReaderWorkspace());
await mkdir("dist/portable-reader", { recursive: true });
for (const target of ["browser", "server"])
await writeFile(
`dist/portable-reader/${target}.ts`,
generatePortableTypeScriptBindings(plan.definition.bindingSchema, "package:reader-runtime@1", { target }),
generatePortableTypeScriptBindings(plan.definition.bindingSchema, "package:reader-runtime@1", {
target: executionTarget(target),
}),
);
await writeFile("dist/portable-reader/plan.json", JSON.stringify(plan));
await writeFile("dist/portable-reader/kernel.json", JSON.stringify(compileKernelProgram(plan)));
await writeFile("dist/portable-reader/queries.json", JSON.stringify(compileQueryProgram(plan)));
await writeFile("dist/portable-reader/client.ts", generatePortableClientBindings(plan, { target: "browser" }));
await writeFile("dist/portable-reader/client.ts", generatePortableClientBindings(plan, { target: javascriptTarget }));
const serviceWorkspace = structuredClone(plan.definition.workspace);
serviceWorkspace.atoms = [];
serviceWorkspace.conformances = [];
@@ -49,7 +53,9 @@ for (const target of ["browser", "server"])
] as const)
await writeFile(
`dist/portable-reader/composite/${name}-${target}.ts`,
generatePortableTypeScriptBindings(composite.definition.bindingSchema, revision, { target }),
generatePortableTypeScriptBindings(composite.definition.bindingSchema, revision, {
target: executionTarget(target),
}),
);
const { portableGenericPlan } = await import("./portable-generic-fixture.js");
@@ -59,7 +65,9 @@ await mkdir("dist/portable-reader/generic", { recursive: true });
for (const target of ["browser", "server"]) {
await writeFile(
`dist/portable-reader/generic/${target}.ts`,
generatePortableTypeScriptBindings(generic.definition.bindingSchema, genericPackage.revisionId, { target }),
generatePortableTypeScriptBindings(generic.definition.bindingSchema, genericPackage.revisionId, {
target: executionTarget(target),
}),
);
}
const stringEntry = genericPackage.exports.find((e) => e.inputType.kind === "scalar")!;
@@ -141,7 +149,7 @@ await writeFile(
await writeFile(
"dist/portable-reader/presentation-mount/browser.ts",
generatePortableTypeScriptBindings(presentationMount.definition.bindingSchema, "presentation-runtime@1", {
target: "browser",
target: javascriptTarget,
}),
);