stackpress
Version:
Incept is a content management framework.
35 lines (34 loc) • 1.26 kB
JavaScript
import Registry from '../../schema/Registry.js';
import generateSchema from './schema.js';
import generateActions from './actions.js';
import generateEvents from './events.js';
import generateTests from './tests/index.js';
export default async function generate(props) {
const { schema, project } = props;
const registry = new Registry(schema);
generateActions(project, registry);
generateEvents(project, registry);
generateSchema(project, registry);
generateTests(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.addImportDeclaration({
moduleSpecifier: './actions/index.js',
defaultImport: 'actions'
});
source.addImportDeclaration({
moduleSpecifier: './events/index.js',
defaultImport: 'events'
});
source.addImportDeclaration({
moduleSpecifier: './schema.js',
defaultImport: 'schema'
});
source.addExportDeclaration({
namedExports: ['actions', 'schema', 'events']
});
}
}
;