packages-update
Version:
📦 A flexible and lightweight updater for packages
98 lines (97 loc) • 5.84 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.checker = void 0;
const log_js_1 = require("../helpers/log.js");
const operator_js_1 = require("../services/operator.js");
const packages_js_1 = require("../services/packages.js");
const versions_js_1 = require("../services/versions.js");
const index_js_1 = require("../configs/index.js");
const useUpdater = {
latest: versions_js_1.getLatest,
major: versions_js_1.getLatestMajor,
minor: versions_js_1.getLatestMinor,
patch: versions_js_1.getLatestPatch,
'>': versions_js_1.getLatest,
'>=': versions_js_1.getLatest,
'^': versions_js_1.getLatestMinor,
'~': versions_js_1.getLatestPatch,
'<': (currentVersion) => currentVersion,
'<=': (currentVersion) => currentVersion,
};
const checker = (configs) => __awaiter(void 0, void 0, void 0, function* () {
!(configs === null || configs === void 0 ? void 0 : configs.quiet) &&
console.log(`📦 Looking for ${(configs === null || configs === void 0 ? void 0 : configs.target) || 'latest'} versions`);
const packages = yield (0, packages_js_1.getPackages)(configs);
const packageEntries = [
...Object.entries(packages.dependencies),
...Object.entries(packages.devDependencies),
...((configs === null || configs === void 0 ? void 0 : configs.peer) ? Object.entries(packages.peerDependencies) : []),
];
const total = packageEntries.length;
let count = 0;
yield Promise.all([
...packageEntries.map((entry) => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h;
const name = entry[0];
const version = entry[1];
if ((_a = configs === null || configs === void 0 ? void 0 : configs.exclude) === null || _a === void 0 ? void 0 : _a.includes(name)) {
!(configs === null || configs === void 0 ? void 0 : configs.quiet) && (0, log_js_1.logProgress)(++count, total);
return;
}
if (Array.isArray(configs === null || configs === void 0 ? void 0 : configs.filter) &&
configs.filter.length > 0 &&
!((_b = configs === null || configs === void 0 ? void 0 : configs.filter) === null || _b === void 0 ? void 0 : _b.includes(name))) {
!(configs === null || configs === void 0 ? void 0 : configs.quiet) && (0, log_js_1.logProgress)(++count, total);
return;
}
const versions = yield (0, versions_js_1.getVersions)(name, ((_d = (_c = configs === null || configs === void 0 ? void 0 : configs.overrides) === null || _c === void 0 ? void 0 : _c[name]) === null || _d === void 0 ? void 0 : _d.registry)
? ((_f = (_e = configs === null || configs === void 0 ? void 0 : configs.overrides) === null || _e === void 0 ? void 0 : _e[name]) === null || _f === void 0 ? void 0 : _f.registry) || 'registry.npmjs.org'
: (configs === null || configs === void 0 ? void 0 : configs.registry) || 'registry.npmjs.org');
if (!versions || /\.\//.test(version) || /[a-z]/i.test(version)) {
!(configs === null || configs === void 0 ? void 0 : configs.quiet) && (0, log_js_1.logProgress)(++count, total);
return;
}
const operator = (0, operator_js_1.getOperator)(version);
const target = typeof ((_h = (_g = configs === null || configs === void 0 ? void 0 : configs.overrides) === null || _g === void 0 ? void 0 : _g[name]) === null || _h === void 0 ? void 0 : _h.target) === 'string'
? configs.overrides[name]
.target ||
(configs === null || configs === void 0 ? void 0 : configs.target) ||
'latest'
: configs.followPrefix
? operator
: (configs === null || configs === void 0 ? void 0 : configs.target) || 'latest';
if (!target) {
!(configs === null || configs === void 0 ? void 0 : configs.quiet) && (0, log_js_1.logProgress)(++count, total);
return;
}
if (!(target in useUpdater)) {
throw new Error(`${target} is not a valid target\nCurrent dependency: ${name}`);
}
const currentVersion = (0, operator_js_1.removeOperator)(version);
const newVersion = target === 'latest' || target === '>' || target === '>='
? useUpdater[target](versions)
: useUpdater[target](currentVersion, versions);
if (newVersion === currentVersion) {
!(configs === null || configs === void 0 ? void 0 : configs.quiet) && (0, log_js_1.logProgress)(++count, total);
return;
}
index_js_1.results.push({
name,
currentVersion,
newVersion,
operator,
});
!(configs === null || configs === void 0 ? void 0 : configs.quiet) && (0, log_js_1.logProgress)(++count, total);
})),
]);
});
exports.checker = checker;
;