@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
JavaScript
;
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