UNPKG

msync

Version:

Easily manage building and syncing multiple node-modules in a flexibly defined workspace.

233 lines 17.9 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()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t; return { next: verb(0), "throw": verb(1), "return": verb(2) }; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [0, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); var common_1 = require("../common"); var listCommand = require("./ls.cmd"); exports.name = 'bump'; exports.alias = 'b'; exports.description = 'Bumps a module version along with it\'s entire dependency graph.'; exports.args = { '-i': 'Include ignored modules.', '-d': 'Dry run where no files are saved.', '-l': 'Local versions only. Does not retrieve NPM details.', }; function cmd(args) { return __awaiter(this, void 0, void 0, function () { var options; return __generator(this, function (_a) { switch (_a.label) { case 0: options = (args && args.options) || {}; return [4 /*yield*/, bump({ includeIgnored: options.i || false, local: options.l || false, dryRun: options.d || false, })]; case 1: _a.sent(); return [2 /*return*/]; } }); }); } exports.cmd = cmd; function bump(options) { if (options === void 0) { options = {}; } return __awaiter(this, void 0, void 0, function () { var _a, includeIgnored, _b, local, _c, dryRun, save, npm, settings, modules, module, dependants, release, tableBuilder; return __generator(this, function (_d) { switch (_d.label) { case 0: _a = options.includeIgnored, includeIgnored = _a === void 0 ? false : _a, _b = options.local, local = _b === void 0 ? false : _b, _c = options.dryRun, dryRun = _c === void 0 ? false : _c; save = !dryRun; npm = !local; return [4 /*yield*/, common_1.loadSettings({ npm: npm, spinner: npm })]; case 1: settings = _d.sent(); if (!settings) { common_1.log.warn.yellow(common_1.constants.CONFIG_NOT_FOUND_ERROR); return [2 /*return*/]; } modules = settings .modules .filter(function (pkg) { return common_1.filter.includeIgnored(pkg, includeIgnored); }); return [4 /*yield*/, promptForModule(modules)]; case 2: module = _d.sent(); if (!module) { return [2 /*return*/]; } dependants = common_1.dependsOn(module, modules); listCommand.printTable([module], { includeIgnored: true, dependants: dependants }); if (dryRun) { common_1.log.info.gray("Dry run...no files will be saved.\n"); } return [4 /*yield*/, promptForReleaseType(module.version)]; case 3: release = _d.sent(); if (!release) { return [2 /*return*/]; } common_1.log.info(); return [4 /*yield*/, bumpModule({ release: release, pkg: module, allModules: modules, save: save, })]; case 4: tableBuilder = _d.sent(); tableBuilder.log(); if (dryRun) { common_1.log.info.gray("\nNo files were saved."); } else { common_1.log.info(); } return [2 /*return*/]; } }); }); } exports.bump = bump; function bumpModule(options) { return __awaiter(this, void 0, void 0, function () { var release, pkg, allModules, save, _a, level, ref, dependants, version, isRoot, head, tableBuilder, msg, json, _i, dependants_1, dependentPkg; return __generator(this, function (_b) { switch (_b.label) { case 0: release = options.release, pkg = options.pkg, allModules = options.allModules, save = options.save, _a = options.level, level = _a === void 0 ? 0 : _a, ref = options.ref; dependants = common_1.dependsOn(pkg, allModules); version = common_1.semver.inc(pkg.latest, release); isRoot = ref === undefined; head = ['update', 'module', 'version', 'ref updated'].map(function (title) { return common_1.log.gray(title); }); tableBuilder = options.table || common_1.table({ head: head }); if (!ref) { msg = ''; msg += " " + common_1.log.yellow(release.toUpperCase()) + " "; msg += "update " + common_1.log.cyan(pkg.name) + " from " + common_1.log.gray(pkg.latest) + " " + common_1.log.gray('=>') + " " + common_1.log.magenta(version) + " "; common_1.log.info.gray(msg); } else { tableBuilder .add([ common_1.log.yellow(release.toUpperCase()), common_1.log.cyan(pkg.name), common_1.log.gray(pkg.latest + " => " + common_1.log.magenta(version)), common_1.log.gray(common_1.log.cyan(ref.name) + " " + ref.fromVersion + " => " + common_1.log.magenta(ref.toVersion)), ]); } json = common_1.R.clone(pkg.json); json.version = version; if (!save) return [3 /*break*/, 2]; return [4 /*yield*/, common_1.savePackage(pkg.dir, json)]; case 1: _b.sent(); _b.label = 2; case 2: if (isRoot && dependants.length > 0) { common_1.log.info.gray('\nDependant modules:'); } _i = 0, dependants_1 = dependants; _b.label = 3; case 3: if (!(_i < dependants_1.length)) return [3 /*break*/, 7]; dependentPkg = dependants_1[_i]; return [4 /*yield*/, common_1.updatePackageRef(dependentPkg, pkg.name, version, { save: save })]; case 4: _b.sent(); return [4 /*yield*/, bumpModule({ release: 'patch', pkg: dependentPkg, allModules: allModules, level: level + 1, ref: { name: pkg.name, fromVersion: pkg.latest, toVersion: version }, save: save, table: tableBuilder, })]; case 5: _b.sent(); _b.label = 6; case 6: _i++; return [3 /*break*/, 3]; case 7: return [2 /*return*/, tableBuilder]; } }); }); } function promptForModule(modules) { return __awaiter(this, void 0, void 0, function () { var choices, confirm, name; return __generator(this, function (_a) { switch (_a.label) { case 0: choices = modules.map(function (pkg) { return ({ name: pkg.name, value: pkg.name }); }); confirm = { type: 'list', name: 'name', message: 'Select a module', choices: choices, }; return [4 /*yield*/, common_1.inquirer.prompt(confirm)]; case 1: name = (_a.sent()).name; return [2 /*return*/, modules.find(function (pkg) { return pkg.name === name; })]; } }); }); } function promptForReleaseType(version) { return __awaiter(this, void 0, void 0, function () { var choices, confirm; return __generator(this, function (_a) { switch (_a.label) { case 0: choices = ['patch', 'minor', 'major']; confirm = { type: 'list', name: 'name', message: 'Release', choices: choices, }; return [4 /*yield*/, common_1.inquirer.prompt(confirm)]; case 1: return [2 /*return*/, (_a.sent()).name]; } }); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC5jbWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9idW1wLmNtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBY21CO0FBQ25CLHNDQUF3QztBQUUzQixRQUFBLElBQUksR0FBRyxNQUFNLENBQUM7QUFDZCxRQUFBLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDWixRQUFBLFdBQVcsR0FBRyxrRUFBa0UsQ0FBQztBQUNqRixRQUFBLElBQUksR0FBRztJQUNsQixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLElBQUksRUFBRSxtQ0FBbUM7SUFDekMsSUFBSSxFQUFFLHFEQUFxRDtDQUM1RCxDQUFDO0FBUUYsYUFDRSxJQU9DOztZQUVLLE9BQU87Ozs7OEJBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQzVDLHFCQUFNLElBQUksQ0FBQzs0QkFDVCxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLOzRCQUNsQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLOzRCQUN6QixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLO3lCQUMzQixDQUFDLEVBQUE7O29CQUpGLFNBSUUsQ0FBQzs7Ozs7Q0FDSjtBQWhCRCxrQkFnQkM7QUFlRCxjQUEyQixPQUFzQjtJQUF0Qix3QkFBQSxFQUFBLFlBQXNCOztnQkFDdkMsY0FBYyxNQUFVLEtBQUssTUFBVSxNQUFNLEVBQy9DLElBQUksRUFDSixHQUFHLFlBTUgsT0FBTyxVQVNQLFVBQVU7Ozs7eUJBakJrRCxPQUFPLGtEQUFoRCxLQUFLLFlBQW9DLE9BQU8sZ0NBQWpDLEtBQUssWUFBcUIsT0FBTyxrQ0FBakIsS0FBSzsyQkFDaEQsQ0FBQyxNQUFNOzBCQUNSLENBQUMsS0FBSztvQkFDRCxxQkFBTSxxQkFBWSxDQUFDLEVB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