@o3r/schematics
Version:
Schematics module of the Otter framework
46 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ngAdd = void 0;
const path = require("node:path");
const dependencies_1 = require("@schematics/angular/utility/dependencies");
const public_api_1 = require("../../src/public_api");
/**
* Add Otter schematics to an Angular Project
* @param options schematics options
*/
function ngAddFn(options) {
const schematicsDependencies = ['@angular-devkit/architect', '@angular-devkit/schematics', '@angular-devkit/core', '@schematics/angular', 'globby'];
return (_, context) => {
const packageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
const dependencies = Object.entries((0, public_api_1.getExternalDependenciesVersionRange)(schematicsDependencies, packageJsonPath, context.logger)).reduce((acc, [dep, range]) => {
acc[dep] = {
inManifest: [{
range,
types: [dependencies_1.NodeDependencyType.Dev]
}]
};
return acc;
}, {});
Object.entries((0, public_api_1.getExternalDependenciesVersionRange)(schematicsDependencies, packageJsonPath, context.logger))
.forEach(([dep, range]) => {
dependencies[dep] = {
inManifest: [{
range,
types: [dependencies_1.NodeDependencyType.Dev]
}]
};
});
return (0, public_api_1.setupDependencies)({
projectName: options.projectName,
dependencies,
skipInstall: false
});
};
}
/**
* Add Otter schematics to an Angular Project
* @param options
*/
const ngAdd = (options) => (0, public_api_1.createOtterSchematic)(ngAddFn)(options);
exports.ngAdd = ngAdd;
//# sourceMappingURL=index.js.map