@nxext/stencil
Version:
Nx plugin for stenciljs
55 lines • 2.92 kB
JavaScript
;
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