in src/jsii2schema.ts [58:86]
public define(fqn: string, schema: () => any) {
const originalFqn = fqn;
fqn = fqn.replace('/', '.');
if (!(fqn in this.definitions)) {
if (this.definitionStack.includes(fqn)) {
this.error(`cyclic definition of ${fqn}`);
return undefined;
}
this.definitionStack.push(fqn);
try {
const s = schema();
if (!s) {
this.error('cannot schematize');
return undefined;
}
s.comment = originalFqn;
this.definitions[fqn] = s;
} finally {
this.definitionStack.pop();
}
}
return { $ref: `#/definitions/${fqn}` };
}