Complete prepared presentation build and runtime integration

This commit is contained in:
Timothy J. Aveni
2026-09-27 18:51:05 -07:00
parent fdb7cd3f6f
commit b499298299
13 changed files with 1013 additions and 38 deletions
+9
View File
@@ -23,6 +23,8 @@ import {
type PackageArtifacts,
} from "../src/execution-world/index.js";
import { validateWorkspaceRevision } from "../src/capability-model/index.js";
import { presentationDeclarations, preparationArtifact } from "../src/react-build/declarations.js";
import { compileQueryComposition } from "../src/query/composition.js";
const source = { repository: "https://example.test/components.git", commit: "a".repeat(40) };
const contract = (name: string) => {
@@ -58,6 +60,13 @@ const compilePackage = (body?: string) =>
const workspace = (presentation = 'presentation Card id "presentation:card" for Data using UI.Card;') => {
const pkg = compilePackage();
assert.ok(pkg.ok && pkg.resource.kind === "package", JSON.stringify(pkg.diagnostics));
const preparation = presentationDeclarations('{"modules":{"Card":{"inputs":[]}}}', pkg.resource.revision, [
...interfaces.values(),
]);
pkg.resource.revision.buildArtifacts = { [preparationArtifact]: preparation.artifact };
pkg.resource.revision.queryCompositions = preparation.compositions.map((entry) =>
compileQueryComposition(entry, new Map()),
);
return compileCapabilitySource(
`workspace Example id "workspace:example" revision "workspace:example@1" commit "${source.commit}" {
import interface Data; import interface Other; import interface View; import package UI;