UNPKG

@o3r/core

Version:
33 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const architect_1 = require("@angular-devkit/architect"); const utils_1 = require("../utils"); exports.default = (0, architect_1.createBuilder)((0, utils_1.createBuilderWithMetricsIfInstalled)(async (options, context) => { context.reportRunning(); /** List of parallel build references */ const processes = options.targets .map((targetStr) => targetStr.split(':')) .map(([project, target, configuration]) => ({ project, target, configuration })) .map(async (target) => { const baseOptions = await context.getTargetOptions(target); const builderName = await context.getBuilderNameForTarget(target); const buildOptions = await context.validateOptions({ ...baseOptions, watch: true }, builderName) .catch(() => context.validateOptions(baseOptions, builderName)); if (buildOptions && typeof buildOptions.watch !== 'undefined') { buildOptions.watch = true; } return context.scheduleTarget(target, buildOptions, { logger: context.logger.createChild(target.target) }); }); const builds = await Promise.all(processes); /** First build that stopped / crashed */ const firstStopped = Promise.race(builds.map((build) => new Promise((_resolve, reject) => { // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- forwarding catch error build.result.catch((e) => reject(e)); }))); // Stop all builds if the multi-watcher stops context.addTeardown(async () => { await Promise.all(builds.map((build) => build.stop())); }); return firstStopped; })); //# sourceMappingURL=index.js.map