UNPKG

@nxext/stencil

Version:

Nx plugin for stenciljs

62 lines 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ionicPwaSchematic = exports.ionicPwaGenerator = void 0; const tslib_1 = require("tslib"); const devkit_1 = require("@nrwl/devkit"); const typings_1 = require("../../utils/typings"); const utillities_1 = require("../../utils/utillities"); const init_1 = require("../init/init"); const path_1 = require("path"); const stencil_core_utils_1 = require("../../stencil-core-utils"); 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("../application/lib/add-linting"); function normalizeOptions(options, host) { const { appsDir } = (0, devkit_1.getWorkspaceLayout)(host); const name = (0, devkit_1.names)(options.name).fileName; const projectDirectory = options.directory ? `${(0, devkit_1.names)(options.directory).fileName}/${name}` : name; const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-'); 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.pwa; 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/pwa'), options.projectRoot, Object.assign(Object.assign(Object.assign({}, options), (0, devkit_1.names)(options.name)), { projectRoot: options.projectRoot, 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 addStylePlugin(tree, normalizedOptions) { (0, stencil_core_utils_1.addStylePluginToConfig)(tree, (0, path_1.join)(normalizedOptions.projectRoot, 'stencil.config.ts'), normalizedOptions.style); } function ionicPwaGenerator(host, schema) { return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { const options = normalizeOptions(schema, host); const initTask = yield (0, init_1.initGenerator)(host, options); createFiles(host, options); addStylePlugin(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.ionicPwaGenerator = ionicPwaGenerator; exports.default = ionicPwaGenerator; exports.ionicPwaSchematic = (0, devkit_1.convertNxGenerator)(ionicPwaGenerator); //# sourceMappingURL=generator.js.map