@zkochan/pnpm
Version:
Fast, disk space efficient package manager
44 lines • 2.24 kB
JavaScript
;
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 outdated_1 = require("@pnpm/outdated");
const chalk_1 = require("chalk");
const path = require("path");
const stripColor = require("strip-color");
const table = require("text-table");
exports.default = (pkgs, args, cmd, opts) => __awaiter(this, void 0, void 0, function* () {
const outdatedPkgs = [];
const getOutdated = args.length ? outdated_1.forPackages.bind(null, args) : outdated_1.default;
for (const pkg of pkgs) {
let outdatedPackagesOfProject;
try {
outdatedPackagesOfProject = yield getOutdated(pkg.path, opts);
}
catch (err) {
logger_1.default.info(err);
err['prefix'] = pkg.path; // tslint:disable-line:no-string-literal
throw err;
}
const prefix = path.relative(opts.prefix, pkg.path);
outdatedPackagesOfProject.forEach((outdatedPkg) => outdatedPkgs.push(Object.assign({}, outdatedPkg, { prefix }))); // tslint:disable-line:no-any
}
const columnNames = ['', 'Package', 'Current', 'Wanted', 'Latest'].map((txt) => chalk_1.default.underline(txt));
console.log(table([columnNames].concat(outdatedPkgs.map((outdatedPkg) => [
outdatedPkg.prefix,
chalk_1.default.yellow(outdatedPkg.packageName),
outdatedPkg.current || 'missing',
chalk_1.default.green(outdatedPkg.wanted),
chalk_1.default.magenta(outdatedPkg.latest || ''),
])), {
stringLength: (s) => stripColor(s).length,
}));
});
//# sourceMappingURL=outdated.js.map