@nxext/stencil
Version:
Nx plugin for stenciljs
51 lines • 2.53 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}`);
}
return (0, cli_1.parseFlags)(runOptions);
}
function runExecutor(options, context) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const taskCommand = 'build';
const projGraph = yield (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 (0, stencil_runtime_1.initializeStencilConfig)(taskCommand, options, context, flags);
const stencilConfig = yield (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 (0, stencil_runtime_1.createStencilProcess)(stencilConfig);
if (stencilConfig.flags.e2e) {
(0, e2e_testing_1.cleanupE2eTesting)(pathCollection);
}
return { success: true };
}
catch (err) {
devkit_1.logger.error(err.message);
return { success: false, error: err.message };
}
});
}
//# sourceMappingURL=executor.js.map