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

Method pruneOfflineMirror

bin/yarn-standalone.js:7198–7242  ·  view source on GitHub ↗

* Remove offline tarballs that are no longer required

(lockfile)

Source from the content-addressed store, hash-verified

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.

Callers 1

Calls 7

_load_asyncToGeneratorFunction · 0.85
_load_fsFunction · 0.85
getOfflineMirrorPathMethod · 0.80
walkMethod · 0.80
hasMethod · 0.80
addMethod · 0.45
nextMethod · 0.45

Tested by

no test coverage detected