@nxext/stencil
Version:
Nx plugin for stenciljs
68 lines • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeLibBuildableGenerator = makeLibBuildableGenerator;
const tslib_1 = require("tslib");
const devkit_1 = require("@nx/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 targets_1 = require("../../utils/targets");
const typings_1 = require("../../utils/typings");
const generator_1 = require("../storybook-configuration/generator");
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
function normalize(host, options) {
options.projectRoot = (0, devkit_1.readProjectConfiguration)(host, options.name).root;
options.importPath =
options.importPath || (0, generator_1.getProjectTsImportPath)(host, options.name);
return Object.assign({}, options);
}
function createFiles(host, options) {
(0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__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)(typings_1.AppType.library, options);
projectConfig.targets.serve = (0, targets_1.getServeTarget)(typings_1.AppType.library, options);
projectConfig.targets.e2e = (0, targets_1.getE2eTarget)(typings_1.AppType.library, options);
projectConfig.targets.lint = (0, targets_1.getLintTarget)(typings_1.AppType.library, options.projectRoot);
(0, devkit_1.updateProjectConfiguration)(host, options.name, projectConfig);
}
function makeLibBuildableGenerator(host, schema) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
(0, ts_solution_setup_1.assertNotUsingTsSolutionSetup)(host, '@nxext/stencil', 'make-lib-buildable');
const options = normalize(host, schema);
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'
}`,
`{
type: 'dist-custom-elements',
}`,
`{
type: 'docs-readme',
}`,
`{
type: 'www',
serviceWorker: null // disable service workers
}`,
`{
type: 'dist-hydrate-script',
dir: 'dist/hydrate',
}`,
`{
type: 'dist-custom-elements',
customElementsExportBehavior: 'auto-define-custom-elements',
includeGlobalScripts: false,
}`,
], (0, devkit_1.joinPathFragments)(options.projectRoot, 'stencil.config.ts'));
(0, update_tsconfig_1.updateTsConfig)(host, options);
yield (0, devkit_1.formatFiles)(host);
});
}
exports.default = makeLibBuildableGenerator;
//# sourceMappingURL=make-lib-buildable.js.map