pnpm
Version:
Fast, disk space efficient package manager
36 lines • 1.6 kB
JavaScript
;
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 = async (pkgs, args, cmd, opts) => {
const outdatedPkgs = [];
const getOutdated = args.length ? outdated_1.forPackages.bind(null, args) : outdated_1.default;
for (const pkg of pkgs) {
let outdatedPackagesOfProject;
try {
outdatedPackagesOfProject = await 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