Add factory creation ports and owner initialization contracts

This commit is contained in:
Timothy J. Aveni
2026-09-19 22:20:55 -07:00
parent 03ac7f8557
commit 0555c929b1
25 changed files with 3899 additions and 3012 deletions
+3 -1
View File
@@ -39,6 +39,7 @@ export type GenericDependencyPort = Omit<DependencyPort, "requirement"> & {
application: InterfaceApplicationExpression;
operations?: import("./types.js").OperationId[];
}
| { kind: "creation"; target: ObjectTypeExpression; inputType: ValueTypeExpression }
| { kind: "constructor"; target: ObjectTypeExpression; inputType: ValueTypeExpression };
};
@@ -101,6 +102,7 @@ export const specializePackageExport = (
...(requirement.operations ? { operations: requirement.operations } : {}),
},
};
case "creation":
case "constructor": {
const target = substitution.object(requirement.target);
if (target.kind !== "atom")
@@ -112,7 +114,7 @@ export const specializePackageExport = (
return {
...port,
requirement: {
kind: "constructor",
kind: requirement.kind,
atomId: target.atomId,
inputType: substitution.value(requirement.inputType),
},