ng-afelio
Version:
Extended Angular CLI
31 lines (30 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const schematics_1 = require("@angular-devkit/schematics");
const parse_name_1 = require("@schematics/angular/utility/parse-name");
const workspace_1 = require("@schematics/angular/utility/workspace");
const barrel_1 = require("../util/barrel");
const validation_1 = require("../util/validation");
function default_1(options) {
return async (host) => {
if (!options.project) {
throw new schematics_1.SchematicsException('Option (project) is required.');
}
const workspace = await (0, workspace_1.getWorkspace)(host);
const project = workspace.projects.get(options.project);
if (project && options.path === undefined) {
options.path = (0, workspace_1.buildDefaultPath)(project);
}
const parsedPath = (0, parse_name_1.parseName)(options.path, options.name);
options.name = parsedPath.name;
options.path = (0, barrel_1.relativeCwdFromRelativeProjectPath)(parsedPath.path);
(0, validation_1.validateName)(options.name);
const angularOptions = { ...options };
delete angularOptions.barrel;
return (0, schematics_1.chain)([
(0, schematics_1.externalSchematic)('@schematics/angular', 'pipe', angularOptions),
(0, barrel_1.addIntoIndex)(options.path, options, 'pipe'),
]);
};
}
exports.default = default_1;