(patterns)
| 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; |
no test coverage detected