@nxext/stencil
Version:
Nx plugin for stenciljs
50 lines • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const cli_1 = require("@stencil/core/cli");
const stencil_runtime_1 = require("../stencil-runtime");
const project_graph_1 = require("@nrwl/workspace/src/core/project-graph");
const stencil_parameters_1 = require("../stencil-runtime/stencil-parameters");
const devkit_1 = require("@nrwl/devkit");
const buildable_libs_utils_1 = require("@nrwl/workspace/src/utilities/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 (0, 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);
if (!(0, buildable_libs_utils_1.checkDependentProjectsHaveBeenBuilt)(context.root, context.projectName, context.targetName, dependencies)) {
return { success: false };
}
const flags = createStencilCompilerOptions(taskCommand, options);
const { config, pathCollection } = yield (0, stencil_runtime_1.initializeStencilConfig)(taskCommand, options, context, flags, dependencies);
const stencilConfig = yield (0, stencil_runtime_1.prepareConfigAndOutputargetPaths)(config, 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, pathCollection);
return { success: true };
}
catch (err) {
devkit_1.logger.error(err.message);
return { success: false, error: err.message };
}
});
}
exports.default = runExecutor;
//# sourceMappingURL=executor.js.map