@dependabot/yarn-lib
Version:
📦🐈 Fast, reliable, and secure dependency management.
129 lines (103 loc) • 3.01 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _misc;
function _load_misc() {
return _misc = require('./util/misc.js');
}
class PackageReference {
constructor(request, info, remote) {
this.resolver = request.resolver;
this.lockfile = request.lockfile;
this.requests = [];
this.config = request.config;
this.registry = remote.registry;
this.version = info.version;
this.name = info.name;
this.uid = info._uid;
this.remote = remote;
this.dependencies = [];
this.permissions = {};
this.patterns = [];
this.optional = null;
this.level = Infinity;
this.ignore = false;
this.incompatible = false;
this.fresh = false;
this.location = null;
this.addRequest(request);
}
setFresh(fresh) {
this.fresh = fresh;
}
setLocation(loc) {
return this.location = loc;
}
addRequest(request) {
this.requests.push(request);
this.level = Math.min(this.level, request.parentNames.length);
}
prune() {
for (var _iterator = this.patterns, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
const selfPattern = _ref;
// remove ourselves from the resolver
this.resolver.removePattern(selfPattern);
}
}
addDependencies(deps) {
this.dependencies = this.dependencies.concat(deps);
}
setPermission(key, val) {
this.permissions[key] = val;
}
hasPermission(key) {
if (key in this.permissions) {
return this.permissions[key];
} else {
return false;
}
}
addPattern(pattern, manifest) {
this.resolver.addPattern(pattern, manifest);
this.patterns.push(pattern);
const shrunk = this.lockfile.getLocked(pattern);
if (shrunk && shrunk.permissions) {
for (var _iterator2 = (0, (_misc || _load_misc()).entries)(shrunk.permissions), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}
const _ref2 = _ref3;
const key = _ref2[0];
const perm = _ref2[1];
this.setPermission(key, perm);
}
}
}
addOptional(optional) {
if (this.optional == null) {
// optional is uninitialised
this.optional = optional;
} else if (!optional) {
// otherwise, ignore all subsequent optional assignments and only accept ones making
// this not optional
this.optional = false;
}
}
}
exports.default = PackageReference;