stackpress
Version:
Incept is a content management framework.
35 lines (34 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = generate;
const Registry_js_1 = __importDefault(require("../../schema/Registry.js"));
const enums_js_1 = __importDefault(require("./enums.js"));
const types_js_1 = __importDefault(require("./types.js"));
function generate(props) {
const { schema, project } = props;
const registry = new Registry_js_1.default(schema);
(0, enums_js_1.default)(project, registry);
(0, types_js_1.default)(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'
});
}
;