UNPKG

@ngserveio/ws

Version:

This library was generated with [Nx](https://nx.dev).

62 lines 3.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const devkit_1 = require("@nx/devkit"); const path_1 = require("path"); const utilities_1 = require("../utilities"); function createBarrelFile(tree, projectPath) { const barrelPath = (0, path_1.join)(projectPath, 'index.ts'); if (!tree.exists(barrelPath)) { tree.write(barrelPath, ''); } return barrelPath; } function commonModelGenerator(tree, schema) { var _a, _b; return tslib_1.__awaiter(this, void 0, void 0, function* () { const modelNames = (0, devkit_1.names)(schema.name); const commonProject = (0, utilities_1.getCommonProjectByDomain)(tree, schema.domain); const commonProjectSrcPath = (0, path_1.join)(commonProject.sourceRoot, 'lib'); // Model file already exists in common const filesExist = tree.exists(`${commonProjectSrcPath}/models/${modelNames.fileName}.model.ts`) && tree.exists(`${commonProjectSrcPath}/validators/${modelNames.fileName}.validator.ts`); if (filesExist) { return; } const commonProjectModelsBarrelPath = createBarrelFile(tree, (0, path_1.join)(commonProjectSrcPath, 'models')); const commonProjectValidatorPath = createBarrelFile(tree, (0, path_1.join)(commonProjectSrcPath, 'validators')); const commonProjectBarrelPath = createBarrelFile(tree, commonProjectSrcPath); // Add the model to the common project yield (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, './files'), commonProjectSrcPath, Object.assign(Object.assign({}, modelNames), { template: '', formControls: ((_b = (_a = schema.inputs) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (0, utilities_1.parseControls)(schema.inputs) : [] })); const fileUpdates = { [commonProjectModelsBarrelPath]: (sourceFile) => { const moduleSpecifier = `./${modelNames.fileName}.model`; if ((0, utilities_1.containsExport)(sourceFile, moduleSpecifier)) { return; } sourceFile.addExportDeclaration({ moduleSpecifier }); }, [commonProjectValidatorPath]: (sourceFile) => { const moduleSpecifier = `./${modelNames.fileName}.validator`; if ((0, utilities_1.containsExport)(sourceFile, moduleSpecifier)) { return; } sourceFile.addExportDeclaration({ moduleSpecifier }); }, [commonProjectBarrelPath]: (sourceFile) => { const moduleSpecifiers = [`./models`, `./validators`]; const hasSpecifiers = moduleSpecifiers.some((p) => (0, utilities_1.containsExport)(sourceFile, p)); if (!hasSpecifiers) { sourceFile.addExportDeclarations([ { moduleSpecifier: moduleSpecifiers[0] }, { moduleSpecifier: moduleSpecifiers[1] }, ]); } }, }; (0, utilities_1.updateSourceFiles)(tree, fileUpdates); yield (0, devkit_1.formatFiles)(tree); }); } exports.default = commonModelGenerator; //# sourceMappingURL=index.js.map