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