* Remove offline tarballs that are no longer required
(lockfile)
| 7196 | */ |
| 7197 | |
| 7198 | pruneOfflineMirror(lockfile) { |
| 7199 | var _this10 = this; |
| 7200 | |
| 7201 | return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () { |
| 7202 | const mirror = _this10.config.getOfflineMirrorPath(); |
| 7203 | if (!mirror) { |
| 7204 | return; |
| 7205 | } |
| 7206 | |
| 7207 | const requiredTarballs = new Set(); |
| 7208 | for (const dependency in lockfile) { |
| 7209 | const resolved = lockfile[dependency].resolved; |
| 7210 | if (resolved) { |
| 7211 | const basename = path.basename(resolved.split('#')[0]); |
| 7212 | if (dependency[0] === '@' && basename[0] !== '@') { |
| 7213 | requiredTarballs.add(`${dependency.split('/')[0]}-${basename}`); |
| 7214 | } |
| 7215 | requiredTarballs.add(basename); |
| 7216 | } |
| 7217 | } |
| 7218 | |
| 7219 | const mirrorFiles = yield (_fs || _load_fs()).walk(mirror); |
| 7220 | for (var _iterator14 = mirrorFiles, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) { |
| 7221 | var _ref27; |
| 7222 | |
| 7223 | if (_isArray14) { |
| 7224 | if (_i14 >= _iterator14.length) break; |
| 7225 | _ref27 = _iterator14[_i14++]; |
| 7226 | } else { |
| 7227 | _i14 = _iterator14.next(); |
| 7228 | if (_i14.done) break; |
| 7229 | _ref27 = _i14.value; |
| 7230 | } |
| 7231 | |
| 7232 | const file = _ref27; |
| 7233 | |
| 7234 | const isTarball = path.extname(file.basename) === '.tgz'; |
| 7235 | // if using experimental-pack-script-packages-in-mirror flag, don't unlink prebuilt packages |
| 7236 | const hasPrebuiltPackage = file.relative.startsWith('prebuilt/'); |
| 7237 | if (isTarball && !hasPrebuiltPackage && !requiredTarballs.has(file.basename)) { |
| 7238 | yield (_fs || _load_fs()).unlink(file.absolute); |
| 7239 | } |
| 7240 | } |
| 7241 | })(); |
| 7242 | } |
| 7243 | |
| 7244 | /** |
| 7245 | * Save updated integrity and lockfiles. |
no test coverage detected