1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.buildTree = undefined;
|
7 |
|
8 | var _asyncToGenerator2;
|
9 |
|
10 | function _load_asyncToGenerator() {
|
11 | return _asyncToGenerator2 = _interopRequireDefault(require('babel-runtime/helpers/asyncToGenerator'));
|
12 | }
|
13 |
|
14 | let buildTree = exports.buildTree = (() => {
|
15 | var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (resolver, linker, patterns, ignoreHoisted) {
|
16 | const treesByKey = {};
|
17 | const trees = [];
|
18 | const flatTree = yield linker.getFlatHoistedTree(patterns);
|
19 |
|
20 |
|
21 | const workspaceLayout = resolver.workspaceLayout;
|
22 |
|
23 | const hoisted = workspaceLayout && workspaceLayout.virtualManifestName ? flatTree.filter(function ([key]) {
|
24 | return key.indexOf(workspaceLayout.virtualManifestName) === -1;
|
25 | }) : flatTree;
|
26 |
|
27 | const hoistedByKey = {};
|
28 | for (var _iterator = hoisted, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
29 | var _ref3;
|
30 |
|
31 | if (_isArray) {
|
32 | if (_i >= _iterator.length) break;
|
33 | _ref3 = _iterator[_i++];
|
34 | } else {
|
35 | _i = _iterator.next();
|
36 | if (_i.done) break;
|
37 | _ref3 = _i.value;
|
38 | }
|
39 |
|
40 | const _ref2 = _ref3;
|
41 | const key = _ref2[0];
|
42 | const info = _ref2[1];
|
43 |
|
44 | hoistedByKey[key] = info;
|
45 | }
|
46 |
|
47 |
|
48 | for (var _iterator2 = hoisted, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
49 | var _ref5;
|
50 |
|
51 | if (_isArray2) {
|
52 | if (_i2 >= _iterator2.length) break;
|
53 | _ref5 = _iterator2[_i2++];
|
54 | } else {
|
55 | _i2 = _iterator2.next();
|
56 | if (_i2.done) break;
|
57 | _ref5 = _i2.value;
|
58 | }
|
59 |
|
60 | const _ref4 = _ref5;
|
61 | const info = _ref4[1];
|
62 |
|
63 | const ref = info.pkg._reference;
|
64 |
|
65 | const children = [];
|
66 |
|
67 | invariant(ref, 'expected reference');
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 | treesByKey[info.key] = {
|
77 | name: info.pkg.name,
|
78 | version: info.pkg.version,
|
79 | children,
|
80 | manifest: info
|
81 | };
|
82 | }
|
83 |
|
84 |
|
85 | for (var _iterator3 = hoisted, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
86 | var _ref7;
|
87 |
|
88 | if (_isArray3) {
|
89 | if (_i3 >= _iterator3.length) break;
|
90 | _ref7 = _iterator3[_i3++];
|
91 | } else {
|
92 | _i3 = _iterator3.next();
|
93 | if (_i3.done) break;
|
94 | _ref7 = _i3.value;
|
95 | }
|
96 |
|
97 | const _ref6 = _ref7;
|
98 | const info = _ref6[1];
|
99 |
|
100 | const tree = treesByKey[info.key];
|
101 | const parent = getParent(info.key, treesByKey);
|
102 | if (!tree) {
|
103 | continue;
|
104 | }
|
105 |
|
106 | if (info.key.split('#').length === 1) {
|
107 | trees.push(tree);
|
108 | continue;
|
109 | }
|
110 |
|
111 | if (parent) {
|
112 | parent.children.push(tree);
|
113 | }
|
114 | }
|
115 |
|
116 | return trees;
|
117 | });
|
118 |
|
119 | return function buildTree(_x, _x2, _x3, _x4) {
|
120 | return _ref.apply(this, arguments);
|
121 | };
|
122 | })();
|
123 |
|
124 | exports.getParent = getParent;
|
125 |
|
126 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
127 |
|
128 | const invariant = require('invariant');
|
129 |
|
130 | function getParent(key, treesByKey) {
|
131 | const parentKey = key.split('#').slice(0, -1).join('#');
|
132 | return treesByKey[parentKey];
|
133 | } |
\ | No newline at end of file |