@nxext/stencil
Version:
Nx plugin for stenciljs
56 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.applicationSchematic = exports.applicationGenerator = void 0;
const tslib_1 = require("tslib");
const typings_1 = require("./../../utils/typings");
const devkit_1 = require("@nrwl/devkit");
const utillities_1 = require("../../utils/utillities");
const init_1 = require("../init/init");
const path_1 = require("path");
const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
const add_project_1 = require("./lib/add-project");
const add_linting_1 = require("./lib/add-linting");
function normalizeOptions(host, options) {
const { appsDir } = (0, devkit_1.getWorkspaceLayout)(host);
const projectName = (0, devkit_1.names)(options.name).fileName;
const projectDirectory = options.directory
? `${(0, devkit_1.names)(options.directory).fileName}/${projectName}`
: projectName;
const projectRoot = `${appsDir}/${projectDirectory}`;
const parsedTags = options.tags
? options.tags.split(',').map((s) => s.trim())
: [];
const style = (0, utillities_1.calculateStyle)(options.style);
const appType = typings_1.AppType.application;
return Object.assign(Object.assign({}, options), { projectName,
projectRoot,
projectDirectory,
parsedTags,
style,
appType });
}
function createFiles(host, options) {
(0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, './files/app'), options.projectRoot, Object.assign(Object.assign(Object.assign({}, options), (0, devkit_1.names)(options.name)), { offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot) }));
if (options.unitTestRunner === 'none') {
host.delete(`${options.projectRoot}/src/components/app-home/app-home.spec.ts`);
host.delete(`${options.projectRoot}/src/components/app-root/app-root.spec.ts`);
host.delete(`${options.projectRoot}/src/components/app-profile/app-profile.spec.ts`);
}
}
function applicationGenerator(host, schema) {
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
const options = normalizeOptions(host, schema);
const initTask = yield (0, init_1.initGenerator)(host, Object.assign(Object.assign({}, options), { skipFormat: true }));
createFiles(host, options);
(0, add_project_1.addProject)(host, options);
const lintTask = yield (0, add_linting_1.addLinting)(host, options);
if (!options.skipFormat) {
yield (0, devkit_1.formatFiles)(host);
}
return (0, run_tasks_in_serial_1.runTasksInSerial)(initTask, lintTask);
});
}
exports.applicationGenerator = applicationGenerator;
exports.default = applicationGenerator;
exports.applicationSchematic = (0, devkit_1.convertNxGenerator)(applicationGenerator);
//# sourceMappingURL=generator.js.map