diff --git a/integration-tests/lts/dbschema/default.esdl b/integration-tests/lts/dbschema/default.esdl index 7d2f031ee..d43931aa0 100644 --- a/integration-tests/lts/dbschema/default.esdl +++ b/integration-tests/lts/dbschema/default.esdl @@ -149,7 +149,7 @@ module default { property c -> bool; } type Z { - link xy -> W | X | Y; + multi link xy -> W | X | Y; } # Unicode handling diff --git a/integration-tests/lts/interfaces.test.ts b/integration-tests/lts/interfaces.test.ts index 4894671f0..e0a74f6f3 100644 --- a/integration-tests/lts/interfaces.test.ts +++ b/integration-tests/lts/interfaces.test.ts @@ -43,7 +43,7 @@ export interface test_Profile extends BaseObject { c?: string | null; } interface test_Z extends BaseObject { - xy?: W | X | Y | null; + xy?: (W | X | Y)[]; } interface test_User extends BaseObject { username: string; diff --git a/packages/generate/src/edgeql-js/generateInterfaces.ts b/packages/generate/src/edgeql-js/generateInterfaces.ts index 6fe793d0b..d42c0f740 100644 --- a/packages/generate/src/edgeql-js/generateInterfaces.ts +++ b/packages/generate/src/edgeql-js/generateInterfaces.ts @@ -121,10 +121,10 @@ export const generateInterfaces = (params: GenerateInterfacesParams) => { Boolean(targetType.union_of?.length); if (isUnion) { - return targetType.union_of + return `(${targetType.union_of .map(({ id }) => types.get(id)) .map((member) => getTypeName(member.name)) - .join(" | "); + .join(" | ")})`; } else if (isLink) { return getTypeName(targetType.name); } else {