verdaccio
Version:
A lightweight private npm proxy registry
51 lines (42 loc) • 4.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mergeVersions = mergeVersions;
var _semver = _interopRequireDefault(require("semver"));
var _lodash = _interopRequireDefault(require("lodash"));
var _constants = require("./constants");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @prettier
* @flow
*/
/**
* Function gets a local info and an info from uplinks and tries to merge it
exported for unit tests only.
* @param {*} local
* @param {*} up
* @param {*} config
* @static
*/
function mergeVersions(local, up) {
// copy new versions to a cache
// NOTE: if a certain version was updated, we can't refresh it reliably
for (const i in up.versions) {
if (_lodash.default.isNil(local.versions[i])) {
local.versions[i] = up.versions[i];
}
}
for (const i in up[_constants.DIST_TAGS]) {
if (local[_constants.DIST_TAGS][i] !== up[_constants.DIST_TAGS][i]) {
if (!local[_constants.DIST_TAGS][i] || _semver.default.lte(local[_constants.DIST_TAGS][i], up[_constants.DIST_TAGS][i])) {
local[_constants.DIST_TAGS][i] = up[_constants.DIST_TAGS][i];
}
if (i === 'latest' && local[_constants.DIST_TAGS][i] === up[_constants.DIST_TAGS][i]) {
// if remote has more fresh package, we should borrow its readme
local.readme = up.readme;
}
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbWV0YWRhdGEtdXRpbHMudHMiXSwibmFtZXMiOlsibWVyZ2VWZXJzaW9ucyIsImxvY2FsIiwidXAiLCJpIiwidmVyc2lvbnMiLCJfIiwiaXNOaWwiLCJESVNUX1RBR1MiLCJzZW12ZXIiLCJsdGUiLCJyZWFkbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFFQTs7OztBQVJBO0FBQ0E7QUFDQTtBQUNBOztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxhQUFULENBQXVCQyxLQUF2QixFQUF1Q0MsRUFBdkMsRUFBb0Q7QUFDekQ7QUFDQTtBQUNBLE9BQUssTUFBTUMsQ0FBWCxJQUFnQkQsRUFBRSxDQUFDRSxRQUFuQixFQUE2QjtBQUMzQixRQUFJQyxnQkFBRUMsS0FBRixDQUFRTCxLQUFLLENBQUNHLFFBQU4sQ0FBZUQsQ0FBZixDQUFSLENBQUosRUFBZ0M7QUFDOUJGLE1BQUFBLEtBQUssQ0FBQ0csUUFBTixDQUFlRCxDQUFmLElBQW9CRCxFQUFFLENBQUNFLFFBQUgsQ0FBWUQsQ0FBWixDQUFwQjtBQUNEO0FBQ0Y7O0FBRUQsT0FBSyxNQUFNQSxDQUFYLElBQWdCRCxFQUFFLENBQUNLLG9CQUFELENBQWxCLEVBQStCO0FBQzdCLFFBQUlOLEtBQUssQ0FBQ00sb0JBQUQsQ0FBTCxDQUFpQkosQ0FBakIsTUFBd0JELEVBQUUsQ0FBQ0ssb0JBQUQsQ0FBRixDQUFjSixDQUFkLENBQTVCLEVBQThDO0FBQzVDLFVBQUksQ0FBQ0YsS0FBSyxDQUFDTSxvQkFBRCxDQUFMLENBQWlCSixDQUFqQixDQUFELElBQXdCSyxnQkFBT0MsR0FBUCxDQUFXUixLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLENBQVgsRUFBZ0NELEVBQUUsQ0FBQ0ssb0JBQUQsQ0FBRixDQUFjSixDQUFkLENBQWhDLENBQTVCLEVBQStFO0FBQzdFRixRQUFBQSxLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLElBQXNCRCxFQUFFLENBQUNLLG9CQUFELENBQUYsQ0FBY0osQ0FBZCxDQUF0QjtBQUNEOztBQUNELFVBQUlBLENBQUMsS0FBSyxRQUFOLElBQWtCRixLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLE1BQXdCRCxFQUFFLENBQUNLLG9CQUFELENBQUYsQ0FBY0osQ0FBZCxDQUE5QyxFQUFnRTtBQUM5RDtBQUNBRixRQUFBQSxLQUFLLENBQUNTLE1BQU4sR0FBZVIsRUFBRSxDQUFDUSxNQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBmbG93XG4gKi9cblxuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IERJU1RfVEFHUyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBGdW5jdGlvbiBnZXRzIGEgbG9jYWwgaW5mbyBhbmQgYW4gaW5mbyBmcm9tIHVwbGlua3MgYW5kIHRyaWVzIHRvIG1lcmdlIGl0XG4gZXhwb3J0ZWQgZm9yIHVuaXQgdGVzdHMgb25seS5cbiAgKiBAcGFyYW0geyp9IGxvY2FsXG4gICogQHBhcmFtIHsqfSB1cFxuICAqIEBwYXJhbSB7Kn0gY29uZmlnXG4gICogQHN0YXRpY1xuICAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVmVyc2lvbnMobG9jYWw6IFBhY2thZ2UsIHVwOiBQYWNrYWdlKSB7XG4gIC8vIGNvcHkgbmV3IHZlcnNpb25zIHRvIGEgY2FjaGVcbiAgLy8gTk9URTogaWYgYSBjZXJ0YWluIHZlcnNpb24gd2FzIHVwZGF0ZWQsIHdlIGNhbid0IHJlZnJlc2ggaXQgcmVsaWFibHlcbiAgZm9yIChjb25zdCBpIGluIHVwLnZlcnNpb25zKSB7XG4gICAgaWYgKF8uaXNOaWwobG9jYWwudmVyc2lvbnNbaV0pKSB7XG4gICAgICBsb2NhbC52ZXJzaW9uc1tpXSA9IHVwLnZlcnNpb25zW2ldO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgaSBpbiB1cFtESVNUX1RBR1NdKSB7XG4gICAgaWYgKGxvY2FsW0RJU1RfVEFHU11baV0gIT09IHVwW0RJU1RfVEFHU11baV0pIHtcbiAgICAgIGlmICghbG9jYWxbRElTVF9UQUdTXVtpXSB8fCBzZW12ZXIubHRlKGxvY2FsW0RJU1RfVEFHU11baV0sIHVwW0RJU1RfVEFHU11baV0pKSB7XG4gICAgICAgIGxvY2FsW0RJU1RfVEFHU11baV0gPSB1cFtESVNUX1RBR1NdW2ldO1xuICAgICAgfVxuICAgICAgaWYgKGkgPT09ICdsYXRlc3QnICYmIGxvY2FsW0RJU1RfVEFHU11baV0gPT09IHVwW0RJU1RfVEFHU11baV0pIHtcbiAgICAgICAgLy8gaWYgcmVtb3RlIGhhcyBtb3JlIGZyZXNoIHBhY2thZ2UsIHdlIHNob3VsZCBib3Jyb3cgaXRzIHJlYWRtZVxuICAgICAgICBsb2NhbC5yZWFkbWUgPSB1cC5yZWFkbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
;