UNPKG

@rxap/schematics-ts-morph

Version:

This package provides utilities for manipulating TypeScript code using ts-morph, particularly for Angular and NestJS projects. It offers functions to add, coerce, and modify code elements like classes, methods, decorators, and imports. The package also in

33 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CoerceProjectFeature = CoerceProjectFeature; const coerce_variable_declaration_1 = require("../coerce-variable-declaration"); const ts_morph_transform_1 = require("../ts-morph-transform"); const coerce_imports_1 = require("../ts-morph/coerce-imports"); const has_project_feature_1 = require("./has-project-feature"); function CoerceProjectFeature(options) { const { project, feature, } = options; return tree => { if (!(0, has_project_feature_1.HasProjectFeature)(tree, { project, feature })) { console.log(`The project '${project}' does not have the feature '${feature}'. The feature will new be created ...`); return (0, ts_morph_transform_1.TsMorphAngularProjectTransformRule)({ project, feature, }, (project, [sourceFile]) => { (0, coerce_variable_declaration_1.CoerceVariableDeclaration)(sourceFile, 'ROUTES', { initializer: `[]`, type: 'Route[]', }); (0, coerce_variable_declaration_1.CoerceVariableDeclaration)(sourceFile, 'ROUTES', {}, { isDefaultExport: true, }); (0, coerce_imports_1.CoerceImports)(sourceFile, { moduleSpecifier: '@angular/router', namedImports: ['Route'], }); }, [`feature/${feature}/routes.ts`]); } return undefined; }; } //# sourceMappingURL=coerce-project-feature.js.map