Build checked component artifacts and shared React session SDK (WI-09)
This commit is contained in:
+13
-3
@@ -45,6 +45,11 @@ assert.ok(data.ok && data.resource.kind === "interface", JSON.stringify(data.dia
|
||||
assert.ok(constructors.ok && constructors.resource.kind === "interface", JSON.stringify(constructors.diagnostics));
|
||||
const dataInterface = data.resource.revision,
|
||||
factoriesInterface = constructors.resource.revision;
|
||||
const ui = compileCapabilityResourceSource(
|
||||
'import interface Data; package UI id "package:ui" revision "package:ui@1" { component Card id "component:card" subject Data runtime react; }',
|
||||
{ source, environment: { interfaces: new Map([["Data", dataInterface]]), interfaceClosure: [dataInterface] } },
|
||||
);
|
||||
assert.ok(ui.ok && ui.resource.kind === "package", JSON.stringify(ui.diagnostics));
|
||||
for (const variant of ["base", "added", "gateway", "gateway-next", "session"]) {
|
||||
const session = variant === "session",
|
||||
gateway = session || variant.startsWith("gateway"),
|
||||
@@ -57,7 +62,8 @@ package Owner id "package:owner" revision "package:owner@1" {
|
||||
${gateway ? 'function create id "create" : unit -> atom-ref<Entry> execution transaction targets [server] requires { creation entry id "entry:birth" : Entry input unit; };' : ""}
|
||||
${
|
||||
session
|
||||
? `function createOne id "create-one" : string -> atom-ref<Entry> execution transaction targets [browser, server] requires { creation entry id "one:birth" : Entry input unit; };
|
||||
? `component Editor id "component:owner-editor" subject Data runtime react;
|
||||
function createOne id "create-one" : string -> atom-ref<Entry> execution transaction targets [browser, server] requires { creation entry id "one:birth" : Entry input unit; };
|
||||
function createTwo id "create-two" : unit -> atom-ref<Independent> execution transaction targets [browser, server] requires { creation entry id "two:birth" : Independent input unit; };
|
||||
operation revise id "revise" : record {body:change<string>; notes:change<string>; reject:bool;} -> unit mode call execution transaction targets [browser, server] receiver any requires {
|
||||
state body id "revise:body" : string [edit]; state notes id "revise:notes" : string [edit];
|
||||
@@ -98,6 +104,7 @@ package Owner id "package:owner" revision "package:owner@1" {
|
||||
const result = compileCapabilitySource(
|
||||
`workspace Managed id "workspace:managed-process" revision "workspace:managed-process@${variant}" commit "${commit}" {
|
||||
import package Owner;
|
||||
${session ? "import package UI;" : ""}
|
||||
${
|
||||
session
|
||||
? `import interface Data; import interface Factories;
|
||||
@@ -118,8 +125,11 @@ package Owner id "package:owner" revision "package:owner@1" {
|
||||
}`,
|
||||
"workspace.qx",
|
||||
{
|
||||
packages: new Map([["Owner", pkg.resource.revision]]),
|
||||
packageClosure: [pkg.resource.revision],
|
||||
packages: new Map([
|
||||
["Owner", pkg.resource.revision],
|
||||
...(session ? [["UI", ui.resource.revision] as const] : []),
|
||||
]),
|
||||
packageClosure: [pkg.resource.revision, ...(session ? [ui.resource.revision] : [])],
|
||||
...(gateway
|
||||
? {
|
||||
interfaces: new Map([
|
||||
|
||||
Reference in New Issue
Block a user