@nxext/stencil
Version:
Nx plugin for stenciljs
53 lines • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = runExecutor;
const tslib_1 = require("tslib");
const cli_1 = require("@stencil/core/cli");
const stencil_runtime_1 = require("../stencil-runtime");
const project_graph_1 = require("@nx/workspace/src/core/project-graph");
const stencil_parameters_1 = require("../stencil-runtime/stencil-parameters");
const devkit_1 = require("@nx/devkit");
const e2e_testing_1 = require("../stencil-runtime/e2e-testing");
const buildable_libs_utils_1 = require("@nx/js/src/utils/buildable-libs-utils");
function createStencilCompilerOptions(taskCommand, options) {
let runOptions = [taskCommand];
runOptions = (0, stencil_parameters_1.parseRunParameters)(runOptions, options);
if (options.port) {
runOptions.push(`--port ${options.port}`);
}
if (options.docsReadme) {
runOptions.push(`--docs-readme`);
}
if (options.noOpen) {
runOptions.push(`--no-open`);
}
if (options.maxWorkers) {
runOptions.push(`--max-workers ${options.maxWorkers}`);
}
runOptions.push('--serve');
runOptions.push('--watch');
return (0, cli_1.parseFlags)(runOptions);
}
function runExecutor(options, context) {
return tslib_1.__asyncGenerator(this, arguments, function* runExecutor_1() {
const taskCommand = 'build';
const projGraph = yield tslib_1.__await((0, project_graph_1.createProjectGraphAsync)());
const { target, dependencies } = (0, buildable_libs_utils_1.calculateProjectDependencies)(projGraph, context.root, context.projectName, context.targetName, context.configurationName);
const flags = createStencilCompilerOptions(taskCommand, options);
const { strictConfig, pathCollection } = yield tslib_1.__await((0, stencil_runtime_1.initializeStencilConfig)(taskCommand, options, context, flags));
const config = yield tslib_1.__await((0, stencil_runtime_1.prepareConfigAndOutputargetPaths)(strictConfig, pathCollection));
(0, buildable_libs_utils_1.updateBuildableProjectPackageJsonDependencies)(context.root, context.projectName, context.targetName, context.configurationName, target, dependencies);
try {
yield tslib_1.__await((0, stencil_runtime_1.createStencilProcess)(config));
if (config.flags.e2e) {
(0, e2e_testing_1.cleanupE2eTesting)(pathCollection);
}
return yield tslib_1.__await({ success: true });
}
catch (err) {
devkit_1.logger.error(err.message);
return yield tslib_1.__await({ success: false, error: err.message });
}
});
}
//# sourceMappingURL=executor.js.map