@juit/check-updates
Version:
Small and fast utility to update package dependencies
32 lines (31 loc) • 1.12 kB
JavaScript
// versions.ts
import fetch from "npm-registry-fetch";
import semver from "semver";
import { X, Y, makeDebug } from "./debug.mjs";
var VersionsCache = class {
_cache;
_debug;
constructor(debug = false) {
this._debug = makeDebug(debug);
this._cache = {};
}
/** Return the available versions for a package, sorted */
getVersions(name, npmrc, includePrerelease) {
const key = includePrerelease ? name + "+prerelease" : name;
if (this._cache[key]) {
this._debug(`Returning cached versions for ${Y}${name}${X}`);
return this._cache[key];
}
this._debug(`Retrieving versions for package ${Y}${name}${X}`);
const range = new semver.Range(">=0.0.0", { includePrerelease });
const promise = fetch.json(name, Object.assign({}, npmrc, { spec: name })).then((data) => {
return Object.entries(data.versions).filter(([, info]) => !info.deprecated).map(([version]) => version).filter((version) => range.test(version)).sort(semver.rcompare);
});
this._cache[key] = promise;
return promise;
}
};
export {
VersionsCache
};
//# sourceMappingURL=versions.mjs.map