in projenrc/type-package.ts [261:292]
public preSynthesize(): void {
const outdir = this.subproject.outdir;
const typeInfo = this.type;
const schemaJson = this.type.Schema;
const typeName = typeInfo.TypeName;
const sourceUrl = typeInfo.SourceUrl ?? 'http://unknown-url';
if (!schemaJson) {
throw new Error(`Type ${typeInfo.TypeName} has no schema`);
}
if (!typeName) {
throw new Error(`Type has no name: ${JSON.stringify(typeInfo)}`);
}
const originalWarn = console.warn;
try {
console.warn = (...args: string[]) => console.error(' >', ...args);
const schema = JSON.parse(schemaJson);
const gen = new CfnResourceGenerator(typeName, {
Schema: schema,
SourceUrl: sourceUrl,
TypeName: typeName,
}, schema);
const code = gen.render();
const outpath = join(outdir, 'src', 'index.ts');
mkdirSync(dirname(outpath), { recursive: true });
writeFileSync(outpath, code);
} finally {
console.warn = originalWarn;
}
}