Make local graph execution optional across composed packages
This commit is contained in:
@@ -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,
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user