Add interface-oriented client sessions and headless capability access (WI-07)
This commit is contained in:
@@ -112,7 +112,7 @@ export function generateInterfaceClientBindings(
|
||||
.filter((op) => op.mode === "call")
|
||||
.map(
|
||||
(op) =>
|
||||
`${JSON.stringify(op.displayName)}: defineInterfaceOperation<${tsType(op.inputType)}, ${tsType(op.outputType)}>(${JSON.stringify(publicOperationContract(iface, op))})`,
|
||||
`${JSON.stringify(op.displayName)}: defineInterfaceOperation<${tsType(op.inputType)}, ${tsType(op.outputType)}, ${JSON.stringify(publicOperationContract(iface, op).execution)}>(${JSON.stringify(publicOperationContract(iface, op))})`,
|
||||
);
|
||||
return `${JSON.stringify(member.displayName)}: {${operations.join(",\n")}}`;
|
||||
});
|
||||
@@ -120,3 +120,14 @@ export function generateInterfaceClientBindings(
|
||||
});
|
||||
return `// Generated from imported interface contracts. Regenerate; do not edit.\nimport { defineInterfaceOperation, type PreparedChange, type ManagedReference } from ${JSON.stringify(runtimeModule)};\nexport const interfaces = {${entries.join(",\n")}} as const;\n`;
|
||||
}
|
||||
|
||||
export function generatePackageQueryClientBindings(
|
||||
pkg: PackageRevision,
|
||||
runtimeModule = "@quixos/camino-replica-core",
|
||||
): string {
|
||||
const queries = (pkg.checkedQueries ?? []).map(
|
||||
(query) =>
|
||||
`${JSON.stringify(query.declaration.displayName)}: definePackageQuery<${tsType(query.variables)}, ${tsType(query.output)}>(${JSON.stringify(publicQueryContract(pkg, query.declaration.id))})`,
|
||||
);
|
||||
return `// Generated from checked package query contracts. Regenerate; do not edit.\nimport { definePackageQuery, type ManagedReference } from ${JSON.stringify(runtimeModule)};\nexport const queries = {${queries.join(",\n")}} as const;\n`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user