@rushstack/heft
Version:
Build all your JavaScript projects the same way: A way that works.
37 lines • 1.71 kB
JavaScript
;
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.PhaseAction = void 0;
const ts_command_line_1 = require("@rushstack/ts-command-line");
const HeftActionRunner_1 = require("../HeftActionRunner");
const Selection_1 = require("../../utilities/Selection");
class PhaseAction extends ts_command_line_1.CommandLineAction {
constructor(options) {
const { phase, watch = false } = options;
const { phaseName, phaseDescription } = phase;
super({
actionName: `${phaseName}${watch ? '-watch' : ''}`,
documentation: `Runs to the ${phaseName} phase, including all transitive dependencies` +
(watch ? ', in watch mode.' : '.') +
(phaseDescription ? ` ${phaseDescription}` : ''),
summary: `Runs to the ${phaseName} phase, including all transitive dependencies` +
(watch ? ', in watch mode.' : '.')
});
this.watch = watch;
this._phase = phase;
this._actionRunner = new HeftActionRunner_1.HeftActionRunner({ action: this, ...options });
this._actionRunner.defineParameters();
}
get selectedPhases() {
if (!this._selectedPhases) {
this._selectedPhases = Selection_1.Selection.recursiveExpand([this._phase], (phase) => phase.dependencyPhases);
}
return this._selectedPhases;
}
async onExecuteAsync() {
await this._actionRunner.executeAsync();
}
}
exports.PhaseAction = PhaseAction;
//# sourceMappingURL=PhaseAction.js.map