|
|
@ -497,16 +497,18 @@ export const ShexJTypingTransformerCompact = ShexJTraverser.createTransformer< |
|
|
|
// If anonymous object or union of object-like types, ensure id: IRI is present (mandatory)
|
|
|
|
// If anonymous object or union of object-like types, ensure id: IRI is present (mandatory)
|
|
|
|
if (objLike) { |
|
|
|
if (objLike) { |
|
|
|
if ((valueType as dom.ObjectType).kind === "object") { |
|
|
|
if ((valueType as dom.ObjectType).kind === "object") { |
|
|
|
const members = (valueType as unknown as { |
|
|
|
const members = ( |
|
|
|
members?: dom.PropertyDeclaration[]; |
|
|
|
valueType as unknown as { |
|
|
|
}).members; |
|
|
|
members?: dom.PropertyDeclaration[]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
).members; |
|
|
|
const hasId = (members || []).some((m) => m.name === "id"); |
|
|
|
const hasId = (members || []).some((m) => m.name === "id"); |
|
|
|
if (!hasId && members) { |
|
|
|
if (!hasId && members) { |
|
|
|
members.unshift( |
|
|
|
members.unshift( |
|
|
|
dom.create.property( |
|
|
|
dom.create.property( |
|
|
|
"id", |
|
|
|
"id", |
|
|
|
dom.create.namedTypeReference("IRI"), |
|
|
|
dom.create.namedTypeReference("IRI"), |
|
|
|
dom.DeclarationFlags.None, |
|
|
|
dom.DeclarationFlags.None |
|
|
|
) |
|
|
|
) |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
@ -516,15 +518,16 @@ export const ShexJTypingTransformerCompact = ShexJTraverser.createTransformer< |
|
|
|
valueType as dom.UnionType |
|
|
|
valueType as dom.UnionType |
|
|
|
).members.map((m) => { |
|
|
|
).members.map((m) => { |
|
|
|
if ((m as dom.ObjectType).kind === "object") { |
|
|
|
if ((m as dom.ObjectType).kind === "object") { |
|
|
|
const mems = (m as unknown as { members?: dom.PropertyDeclaration[] }) |
|
|
|
const mems = ( |
|
|
|
.members; |
|
|
|
m as unknown as { members?: dom.PropertyDeclaration[] } |
|
|
|
|
|
|
|
).members; |
|
|
|
const hasId = (mems || []).some((mm) => mm.name === "id"); |
|
|
|
const hasId = (mems || []).some((mm) => mm.name === "id"); |
|
|
|
if (!hasId && mems) { |
|
|
|
if (!hasId && mems) { |
|
|
|
mems.unshift( |
|
|
|
mems.unshift( |
|
|
|
dom.create.property( |
|
|
|
dom.create.property( |
|
|
|
"id", |
|
|
|
"id", |
|
|
|
dom.create.namedTypeReference("IRI"), |
|
|
|
dom.create.namedTypeReference("IRI"), |
|
|
|
dom.DeclarationFlags.None, |
|
|
|
dom.DeclarationFlags.None |
|
|
|
) |
|
|
|
) |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|