MCPcopy
hub / github.com/vercel/hyper / getLockfile

Method getLockfile

bin/yarn-standalone.js:2924–2989  ·  view source on GitHub ↗
(patterns)

Source from the content-addressed store, hash-verified

2922 }
2923
2924 getLockfile(patterns) {
2925 const lockfile = {};
2926 const seen = new Map();
2927
2928 // order by name so that lockfile manifest is assigned to the first dependency with this manifest
2929 // the others that have the same remoteKey will just refer to the first
2930 // ordering allows for consistency in lockfile when it is serialized
2931 const sortedPatternsKeys = Object.keys(patterns).sort((_misc || _load_misc()).sortAlpha);
2932
2933 for (var _iterator = sortedPatternsKeys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
2934 var _ref;
2935
2936 if (_isArray) {
2937 if (_i >= _iterator.length) break;
2938 _ref = _iterator[_i++];
2939 } else {
2940 _i = _iterator.next();
2941 if (_i.done) break;
2942 _ref = _i.value;
2943 }
2944
2945 const pattern = _ref;
2946
2947 const pkg = patterns[pattern];
2948 const remote = pkg._remote,
2949 ref = pkg._reference;
2950
2951 invariant(ref, 'Package is missing a reference');
2952 invariant(remote, 'Package is missing a remote');
2953
2954 const remoteKey = keyForRemote(remote);
2955 const seenPattern = remoteKey && seen.get(remoteKey);
2956 if (seenPattern) {
2957 // no point in duplicating it
2958 lockfile[pattern] = seenPattern;
2959
2960 // if we're relying on our name being inferred and two of the patterns have
2961 // different inferred names then we need to set it
2962 if (!seenPattern.name && getName(pattern) !== pkg.name) {
2963 seenPattern.name = pkg.name;
2964 }
2965 continue;
2966 }
2967 const obj = implodeEntry(pattern, {
2968 name: pkg.name,
2969 version: pkg.version,
2970 uid: pkg._uid,
2971 resolved: remote.resolved,
2972 integrity: remote.integrity,
2973 registry: remote.registry,
2974 dependencies: pkg.dependencies,
2975 peerDependencies: pkg.peerDependencies,
2976 optionalDependencies: pkg.optionalDependencies,
2977 permissions: ref.permissions,
2978 prebuiltVariants: pkg.prebuiltVariants
2979 });
2980
2981 lockfile[pattern] = obj;

Callers 1

Calls 8

_load_miscFunction · 0.85
invariantFunction · 0.85
keyForRemoteFunction · 0.85
getNameFunction · 0.85
implodeEntryFunction · 0.85
getMethod · 0.80
setMethod · 0.80
nextMethod · 0.45

Tested by

no test coverage detected