UNPKG

@juit/check-updates

Version:

Small and fast utility to update package dependencies

32 lines (31 loc) 1.12 kB
// 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