stackpress
Version:
Incept is a content management framework.
29 lines (28 loc) • 1.2 kB
JavaScript
import Registry from '../../schema/Registry.js';
import enumGenerator from './enums.js';
import typeGenerator from './types.js';
export default function generate(props) {
const { schema, project } = props;
const registry = new Registry(schema);
enumGenerator(project, registry);
typeGenerator(project, registry);
for (const model of registry.model.values()) {
const filepath = `${model.name}/index.ts`;
const source = project.getSourceFile(filepath)
|| project.createSourceFile(filepath, '', { overwrite: true });
source.addExportDeclaration({ moduleSpecifier: './types.js' });
}
for (const fieldset of registry.fieldset.values()) {
const filepath = `${fieldset.name}/index.ts`;
const source = project.getSourceFile(filepath)
|| project.createSourceFile(filepath, '', { overwrite: true });
source.addExportDeclaration({ moduleSpecifier: './types.js' });
}
const source = project.getSourceFile('index.ts')
|| project.createSourceFile('index.ts', '', { overwrite: true });
source.addExportDeclaration({
isTypeOnly: true,
moduleSpecifier: './types.js'
});
}
;