UNPKG

@nxext/stencil

Version:

Nx plugin for stenciljs

55 lines 2.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeLibBuildableSchematic = exports.makeLibBuildableGenerator = void 0; const tslib_1 = require("tslib"); const workspace_1 = require("@nrwl/workspace"); const devkit_1 = require("@nrwl/devkit"); const stencil_core_utils_1 = require("../../stencil-core-utils"); const stencil_core_utils_2 = require("../../stencil-core-utils"); const update_tsconfig_1 = require("./lib/update-tsconfig"); const path_1 = require("path"); const targets_1 = require("../../utils/targets"); const projectType = workspace_1.ProjectType.Library; function normalize(options, projectRoot) { return Object.assign(Object.assign({}, options), { projectRoot }); } function createFiles(host, options) { (0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, './files/lib'), options.projectRoot, options); } function updateProjectConfig(host, options) { const projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.name); projectConfig.targets = projectConfig.targets || {}; projectConfig.targets.build = (0, targets_1.getBuildTarget)(projectType, options); projectConfig.targets.serve = (0, targets_1.getServeTarget)(projectType, options); projectConfig.targets.e2e = (0, targets_1.getE2eTarget)(projectType, options); projectConfig.targets.lint = (0, targets_1.getLintTarget)(projectType, options.projectRoot); (0, devkit_1.updateProjectConfiguration)(host, options.name, projectConfig); } function makeLibBuildableGenerator(host, schema) { return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { const stencilProjectConfig = (0, devkit_1.readProjectConfiguration)(host, schema.name); const options = normalize(schema, stencilProjectConfig.root); const offset = (0, devkit_1.offsetFromRoot)(options.projectRoot); updateProjectConfig(host, options); createFiles(host, options); (0, stencil_core_utils_1.addStylePluginToConfig)(host, (0, devkit_1.joinPathFragments)(options.projectRoot, 'stencil.config.ts'), options.style); (0, stencil_core_utils_2.addToOutputTargets)(host, [ `{ type: 'dist', esmLoaderPath: '../loader', dir: '${offset}dist/${options.projectRoot}/dist', }`, `{ type: 'www', dir: '${offset}dist/${options.projectRoot}/www', serviceWorker: null // disable service workers }` ], (0, devkit_1.joinPathFragments)(options.projectRoot, 'stencil.config.ts')); (0, update_tsconfig_1.updateTsConfig)(host, options); yield (0, devkit_1.formatFiles)(host); }); } exports.makeLibBuildableGenerator = makeLibBuildableGenerator; exports.default = makeLibBuildableGenerator; exports.makeLibBuildableSchematic = (0, devkit_1.convertNxGenerator)(makeLibBuildableGenerator); //# sourceMappingURL=make-lib-buildable.js.map