JezK
Edit File: list.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.buildTree = buildTree; exports.filterTree = filterTree; exports.getDevDeps = getDevDeps; exports.getParent = getParent; exports.getReqDepth = getReqDepth; exports.hasWrapper = hasWrapper; exports.requireLockfile = void 0; exports.run = run; exports.setFlags = setFlags; function _regenerator() { var data = _interopRequireDefault(require("@babel/runtime/regenerator")); _regenerator = function _regenerator() { return data; }; return data; } function _slicedToArray2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); _slicedToArray2 = function _slicedToArray2() { return data; }; return data; } function _asyncToGenerator2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); _asyncToGenerator2 = function _asyncToGenerator2() { return data; }; return data; } function _install() { var data = require("./install.js"); _install = function _install() { return data; }; return data; } function _lockfile() { var data = _interopRequireDefault(require("../../lockfile")); _lockfile = function _lockfile() { return data; }; return data; } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var invariant = require('invariant'); var micromatch = require('micromatch'); var requireLockfile = true; exports.requireLockfile = requireLockfile; function buildCount(trees) { if (!trees || !trees.length) { return 0; } var count = 0; var _iterator = _createForOfIteratorHelper(trees), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var tree = _step.value; if (tree.shadow) { continue; } count++; count += buildCount(tree.children); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return count; } function buildTree(_x, _x2, _x3, _x4, _x5, _x6) { return _buildTree.apply(this, arguments); } function _buildTree() { _buildTree = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee(resolver, linker, patterns, opts, onlyFresh, ignoreHoisted) { var treesByKey, trees, flatTree, workspaceLayout, hoisted, hoistedByKey, _iterator2, _step2, _step2$value, key, info, _iterator3, _step3, _step3$value, _info, ref, hint, parent, children, depth, color, isFresh, _iterator5, _step5, pattern, topLevel, showAll, nextDepthIsValid, nextChildDepthIsValid, _iterator6, _step6, _pattern, pkg, _iterator4, _step4, _step4$value, _info2, tree, _parent; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: treesByKey = {}; trees = []; _context.next = 4; return linker.getFlatHoistedTree(patterns); case 4: flatTree = _context.sent; // If using workspaces, filter out the virtual manifest workspaceLayout = resolver.workspaceLayout; hoisted = workspaceLayout && workspaceLayout.virtualManifestName ? flatTree.filter(function (_ref) { var _ref2 = (0, _slicedToArray2()["default"])(_ref, 1), key = _ref2[0]; return key.indexOf(workspaceLayout.virtualManifestName) === -1; }) : flatTree; hoistedByKey = {}; _iterator2 = _createForOfIteratorHelper(hoisted); try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { _step2$value = (0, _slicedToArray2()["default"])(_step2.value, 2), key = _step2$value[0], info = _step2$value[1]; hoistedByKey[key] = info; } // build initial trees } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } _iterator3 = _createForOfIteratorHelper(hoisted); _context.prev = 11; _iterator3.s(); case 13: if ((_step3 = _iterator3.n()).done) { _context.next = 55; break; } _step3$value = (0, _slicedToArray2()["default"])(_step3.value, 2), _info = _step3$value[1]; ref = _info.pkg._reference; hint = null; parent = getParent(_info.key, treesByKey); children = []; depth = 0; color = 'bold'; invariant(ref, 'expected reference'); if (!onlyFresh) { _context.next = 44; break; } isFresh = false; _iterator5 = _createForOfIteratorHelper(ref.patterns); _context.prev = 25; _iterator5.s(); case 27: if ((_step5 = _iterator5.n()).done) { _context.next = 34; break; } pattern = _step5.value; if (!resolver.isNewPattern(pattern)) { _context.next = 32; break; } isFresh = true; return _context.abrupt("break", 34); case 32: _context.next = 27; break; case 34: _context.next = 39; break; case 36: _context.prev = 36; _context.t0 = _context["catch"](25); _iterator5.e(_context.t0); case 39: _context.prev = 39; _iterator5.f(); return _context.finish(39); case 42: if (isFresh) { _context.next = 44; break; } return _context.abrupt("continue", 53); case 44: if (_info.originalKey !== _info.key || opts.reqDepth === 0) { // was hoisted color = null; } // check parent to obtain next depth if (parent && parent.depth > 0) { depth = parent.depth + 1; } else { depth = 0; } topLevel = opts.reqDepth === 0 && !parent; showAll = opts.reqDepth === -1; nextDepthIsValid = depth + 1 <= Number(opts.reqDepth); if (topLevel || nextDepthIsValid || showAll) { treesByKey[_info.key] = { name: "".concat(_info.pkg.name, "@").concat(_info.pkg.version), children: children, hint: hint, color: color, depth: depth }; } // add in dummy children for hoisted dependencies nextChildDepthIsValid = depth + 1 < Number(opts.reqDepth); invariant(ref, 'expected reference'); if (!ignoreHoisted && nextDepthIsValid || showAll) { _iterator6 = _createForOfIteratorHelper(resolver.dedupePatterns(ref.dependencies)); try { for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { _pattern = _step6.value; pkg = resolver.getStrictResolvedPattern(_pattern); if (!hoistedByKey["".concat(_info.key, "#").concat(pkg.name)] && (nextChildDepthIsValid || showAll)) { children.push({ name: _pattern, color: 'dim', shadow: true }); } } } catch (err) { _iterator6.e(err); } finally { _iterator6.f(); } } case 53: _context.next = 13; break; case 55: _context.next = 60; break; case 57: _context.prev = 57; _context.t1 = _context["catch"](11); _iterator3.e(_context.t1); case 60: _context.prev = 60; _iterator3.f(); return _context.finish(60); case 63: // add children _iterator4 = _createForOfIteratorHelper(hoisted); _context.prev = 64; _iterator4.s(); case 66: if ((_step4 = _iterator4.n()).done) { _context.next = 78; break; } _step4$value = (0, _slicedToArray2()["default"])(_step4.value, 2), _info2 = _step4$value[1]; tree = treesByKey[_info2.key]; _parent = getParent(_info2.key, treesByKey); if (tree) { _context.next = 72; break; } return _context.abrupt("continue", 76); case 72: if (!(_info2.key.split('#').length === 1)) { _context.next = 75; break; } trees.push(tree); return _context.abrupt("continue", 76); case 75: if (_parent) { _parent.children.push(tree); } case 76: _context.next = 66; break; case 78: _context.next = 83; break; case 80: _context.prev = 80; _context.t2 = _context["catch"](64); _iterator4.e(_context.t2); case 83: _context.prev = 83; _iterator4.f(); return _context.finish(83); case 86: return _context.abrupt("return", { trees: trees, count: buildCount(trees) }); case 87: case "end": return _context.stop(); } }, _callee, null, [[11, 57, 60, 63], [25, 36, 39, 42], [64, 80, 83, 86]]); })); return _buildTree.apply(this, arguments); } function getParent(key, treesByKey) { var parentKey = key.slice(0, key.lastIndexOf('#')); return treesByKey[parentKey]; } function hasWrapper(commander, args) { return true; } function setFlags(commander) { commander.description('Lists installed packages.'); commander.option('--depth [depth]', 'Limit the depth of the shown dependencies'); commander.option('--pattern [pattern]', 'Filter dependencies by pattern'); } function getReqDepth(inputDepth) { return inputDepth && /^\d+$/.test(inputDepth) ? Number(inputDepth) : -1; } function filterTree(tree, filters) { var pattern = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if (tree.children) { tree.children = tree.children.filter(function (child) { return filterTree(child, filters, pattern); }); } var notDim = tree.color !== 'dim'; var hasChildren = tree.children == null ? false : tree.children.length > 0; var name = tree.name.slice(0, tree.name.lastIndexOf('@')); var found = micromatch.any(name, filters) || micromatch.contains(name, pattern); return notDim && (found || hasChildren); } function getDevDeps(manifest) { if (manifest.devDependencies) { return new Set(Object.keys(manifest.devDependencies).map(function (key) { return "".concat(key, "@").concat(manifest.devDependencies[key]); })); } else { return new Set(); } } function run(_x7, _x8, _x9, _x10, _x11) { return _run.apply(this, arguments); } function _run() { _run = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee2(config, reporter, commander, flags, args) { var lockfile, install, _yield$install$fetchR, depRequests, patterns, manifest, workspaceLayout, activePatterns, devDeps, opts, _yield$buildTree, trees; return _regenerator()["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return _lockfile()["default"].fromDirectory(config.lockfileFolder, reporter); case 2: lockfile = _context2.sent; install = new (_install().Install)(flags, config, reporter, lockfile); _context2.next = 6; return install.fetchRequestFromCwd(); case 6: _yield$install$fetchR = _context2.sent; depRequests = _yield$install$fetchR.requests; patterns = _yield$install$fetchR.patterns; manifest = _yield$install$fetchR.manifest; workspaceLayout = _yield$install$fetchR.workspaceLayout; _context2.next = 13; return install.resolver.init(depRequests, { isFlat: install.flags.flat, isFrozen: install.flags.frozenLockfile, workspaceLayout: workspaceLayout }); case 13: activePatterns = []; if (config.production) { devDeps = getDevDeps(manifest); activePatterns = patterns.filter(function (pattern) { return !devDeps.has(pattern); }); } else { activePatterns = patterns; } opts = { reqDepth: getReqDepth(flags.depth) }; _context2.next = 18; return buildTree(install.resolver, install.linker, activePatterns, opts); case 18: _yield$buildTree = _context2.sent; trees = _yield$buildTree.trees; if (args.length > 0) { reporter.warn(reporter.lang('deprecatedListArgs')); } if (args.length > 0 || flags.pattern) { trees = trees.filter(function (tree) { return filterTree(tree, args, flags.pattern); }); } reporter.tree('list', trees, { force: true }); case 23: case "end": return _context2.stop(); } }, _callee2); })); return _run.apply(this, arguments); } //# sourceMappingURL=list.js.map