UNPKG

@zkochan/pnpm

Version:

Fast, disk space efficient package manager

46 lines 1.97 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const logger_1 = require("@pnpm/logger"); const execa = require("execa"); const pLimit = require("p-limit"); exports.default = (packageChunks, args, cmd, opts) => __awaiter(this, void 0, void 0, function* () { const limitRun = pLimit(opts.workspaceConcurrency); const result = { fails: [], passes: 0, }; for (const chunk of packageChunks) { yield Promise.all(chunk.map((prefix) => limitRun(() => __awaiter(this, void 0, void 0, function* () { try { yield execa(args[0], args.slice(1), { cwd: prefix, stdio: 'inherit' }); result.passes++; } catch (err) { logger_1.default.info(err); if (!opts.bail) { result.fails.push({ error: err, message: err.message, prefix, }); return; } // tslint:disable:no-string-literal err['code'] = 'ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL'; err['prefix'] = prefix; // tslint:enable:no-string-literal throw err; } })))); } return result; }); //# sourceMappingURL=exec.js.map