@teambit/install 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__snapshots__/pick-outdated-pkgs.spec.ts.snap +171 -0
- package/dist/__snapshots__/pick-outdated-pkgs.spec.js.snap +171 -0
- package/dist/__snapshots__/pick-outdated-pkgs.spec.ts.snap +171 -0
- package/dist/exceptions/dependency-type-not-supported-in-policy.d.ts +4 -0
- package/dist/exceptions/dependency-type-not-supported-in-policy.js +27 -0
- package/dist/exceptions/dependency-type-not-supported-in-policy.js.map +1 -0
- package/dist/exceptions/index.d.ts +1 -0
- package/dist/exceptions/index.js +23 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/install.aspect.d.ts +2 -0
- package/dist/install.aspect.js +24 -0
- package/dist/install.aspect.js.map +1 -0
- package/dist/install.cmd.d.ts +46 -0
- package/dist/install.cmd.js +86 -0
- package/dist/install.cmd.js.map +1 -0
- package/dist/install.main.runtime.d.ts +76 -0
- package/dist/install.main.runtime.js +580 -0
- package/dist/install.main.runtime.js.map +1 -0
- package/dist/link/component-list-links.d.ts +7 -0
- package/dist/link/component-list-links.js +98 -0
- package/dist/link/component-list-links.js.map +1 -0
- package/dist/link/core-aspects-links.d.ts +7 -0
- package/dist/link/core-aspects-links.js +95 -0
- package/dist/link/core-aspects-links.js.map +1 -0
- package/dist/link/get-package-name-from-target.d.ts +1 -0
- package/dist/link/get-package-name-from-target.js +16 -0
- package/dist/link/get-package-name-from-target.js.map +1 -0
- package/dist/link/index.d.ts +1 -0
- package/dist/link/index.js +23 -0
- package/dist/link/index.js.map +1 -0
- package/dist/link/link-row.d.ts +12 -0
- package/dist/link/link-row.js +38 -0
- package/dist/link/link-row.js.map +1 -0
- package/dist/link/link-to-dir.d.ts +2 -0
- package/dist/link/link-to-dir.js +45 -0
- package/dist/link/link-to-dir.js.map +1 -0
- package/dist/link/link.cmd.d.ts +46 -0
- package/dist/link/link.cmd.js +177 -0
- package/dist/link/link.cmd.js.map +1 -0
- package/dist/link/nested-deps-in-nm-links.d.ts +7 -0
- package/dist/link/nested-deps-in-nm-links.js +74 -0
- package/dist/link/nested-deps-in-nm-links.js.map +1 -0
- package/dist/link/rewire-row.d.ts +6 -0
- package/dist/link/rewire-row.js +31 -0
- package/dist/link/rewire-row.js.map +1 -0
- package/dist/pick-outdated-pkgs.d.ts +16 -0
- package/dist/pick-outdated-pkgs.js +308 -0
- package/dist/pick-outdated-pkgs.js.map +1 -0
- package/dist/pick-outdated-pkgs.spec.d.ts +1 -0
- package/dist/pick-outdated-pkgs.spec.js +121 -0
- package/dist/pick-outdated-pkgs.spec.js.map +1 -0
- package/dist/uninstall.cmd.d.ts +12 -0
- package/dist/uninstall.cmd.js +43 -0
- package/dist/uninstall.cmd.js.map +1 -0
- package/dist/update.cmd.d.ts +16 -0
- package/dist/update.cmd.js +43 -0
- package/dist/update.cmd.js.map +1 -0
- package/exceptions/dependency-type-not-supported-in-policy.ts +7 -0
- package/exceptions/index.ts +1 -0
- package/install.cmd.tsx +74 -0
- package/link/component-list-links.ts +50 -0
- package/link/core-aspects-links.ts +50 -0
- package/link/get-package-name-from-target.ts +5 -0
- package/link/index.ts +1 -0
- package/link/link-row.ts +20 -0
- package/link/link-to-dir.ts +13 -0
- package/link/link.cmd.ts +102 -0
- package/link/nested-deps-in-nm-links.ts +47 -0
- package/link/rewire-row.ts +17 -0
- package/package-tar/teambit-install-0.0.1.tgz +0 -0
- package/package.json +59 -0
- package/preview-1662608124038.js +5 -0
- package/tsconfig.json +40 -0
- package/types/asset.d.ts +29 -0
- package/types/style.d.ts +42 -0
- package/uninstall.cmd.tsx +18 -0
- package/update.cmd.tsx +24 -0
@@ -0,0 +1,580 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
require("core-js/modules/es.array.iterator.js");
|
6
|
+
|
7
|
+
require("core-js/modules/es.promise.js");
|
8
|
+
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
10
|
+
value: true
|
11
|
+
});
|
12
|
+
exports.default = exports.InstallMain = void 0;
|
13
|
+
|
14
|
+
function _defineProperty2() {
|
15
|
+
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
16
|
+
|
17
|
+
_defineProperty2 = function () {
|
18
|
+
return data;
|
19
|
+
};
|
20
|
+
|
21
|
+
return data;
|
22
|
+
}
|
23
|
+
|
24
|
+
function _community() {
|
25
|
+
const data = require("@teambit/community");
|
26
|
+
|
27
|
+
_community = function () {
|
28
|
+
return data;
|
29
|
+
};
|
30
|
+
|
31
|
+
return data;
|
32
|
+
}
|
33
|
+
|
34
|
+
function _manyComponentsWriter() {
|
35
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component-ops/many-components-writer"));
|
36
|
+
|
37
|
+
_manyComponentsWriter = function () {
|
38
|
+
return data;
|
39
|
+
};
|
40
|
+
|
41
|
+
return data;
|
42
|
+
}
|
43
|
+
|
44
|
+
function _cli() {
|
45
|
+
const data = require("@teambit/cli");
|
46
|
+
|
47
|
+
_cli = function () {
|
48
|
+
return data;
|
49
|
+
};
|
50
|
+
|
51
|
+
return data;
|
52
|
+
}
|
53
|
+
|
54
|
+
function _chalk() {
|
55
|
+
const data = _interopRequireDefault(require("chalk"));
|
56
|
+
|
57
|
+
_chalk = function () {
|
58
|
+
return data;
|
59
|
+
};
|
60
|
+
|
61
|
+
return data;
|
62
|
+
}
|
63
|
+
|
64
|
+
function _workspace() {
|
65
|
+
const data = require("@teambit/workspace");
|
66
|
+
|
67
|
+
_workspace = function () {
|
68
|
+
return data;
|
69
|
+
};
|
70
|
+
|
71
|
+
return data;
|
72
|
+
}
|
73
|
+
|
74
|
+
function _lodash() {
|
75
|
+
const data = require("lodash");
|
76
|
+
|
77
|
+
_lodash = function () {
|
78
|
+
return data;
|
79
|
+
};
|
80
|
+
|
81
|
+
return data;
|
82
|
+
}
|
83
|
+
|
84
|
+
function _exceptions() {
|
85
|
+
const data = require("@teambit/legacy/dist/consumer/exceptions");
|
86
|
+
|
87
|
+
_exceptions = function () {
|
88
|
+
return data;
|
89
|
+
};
|
90
|
+
|
91
|
+
return data;
|
92
|
+
}
|
93
|
+
|
94
|
+
function _variants() {
|
95
|
+
const data = require("@teambit/variants");
|
96
|
+
|
97
|
+
_variants = function () {
|
98
|
+
return data;
|
99
|
+
};
|
100
|
+
|
101
|
+
return data;
|
102
|
+
}
|
103
|
+
|
104
|
+
function _component() {
|
105
|
+
const data = require("@teambit/component");
|
106
|
+
|
107
|
+
_component = function () {
|
108
|
+
return data;
|
109
|
+
};
|
110
|
+
|
111
|
+
return data;
|
112
|
+
}
|
113
|
+
|
114
|
+
function _dependencyResolver() {
|
115
|
+
const data = require("@teambit/dependency-resolver");
|
116
|
+
|
117
|
+
_dependencyResolver = function () {
|
118
|
+
return data;
|
119
|
+
};
|
120
|
+
|
121
|
+
return data;
|
122
|
+
}
|
123
|
+
|
124
|
+
function _importer() {
|
125
|
+
const data = require("@teambit/importer");
|
126
|
+
|
127
|
+
_importer = function () {
|
128
|
+
return data;
|
129
|
+
};
|
130
|
+
|
131
|
+
return data;
|
132
|
+
}
|
133
|
+
|
134
|
+
function _logger() {
|
135
|
+
const data = require("@teambit/logger");
|
136
|
+
|
137
|
+
_logger = function () {
|
138
|
+
return data;
|
139
|
+
};
|
140
|
+
|
141
|
+
return data;
|
142
|
+
}
|
143
|
+
|
144
|
+
function _exceptions2() {
|
145
|
+
const data = require("./exceptions");
|
146
|
+
|
147
|
+
_exceptions2 = function () {
|
148
|
+
return data;
|
149
|
+
};
|
150
|
+
|
151
|
+
return data;
|
152
|
+
}
|
153
|
+
|
154
|
+
function _install() {
|
155
|
+
const data = require("./install.aspect");
|
156
|
+
|
157
|
+
_install = function () {
|
158
|
+
return data;
|
159
|
+
};
|
160
|
+
|
161
|
+
return data;
|
162
|
+
}
|
163
|
+
|
164
|
+
function _pickOutdatedPkgs() {
|
165
|
+
const data = require("./pick-outdated-pkgs");
|
166
|
+
|
167
|
+
_pickOutdatedPkgs = function () {
|
168
|
+
return data;
|
169
|
+
};
|
170
|
+
|
171
|
+
return data;
|
172
|
+
}
|
173
|
+
|
174
|
+
function _link() {
|
175
|
+
const data = require("./link");
|
176
|
+
|
177
|
+
_link = function () {
|
178
|
+
return data;
|
179
|
+
};
|
180
|
+
|
181
|
+
return data;
|
182
|
+
}
|
183
|
+
|
184
|
+
function _install2() {
|
185
|
+
const data = _interopRequireDefault(require("./install.cmd"));
|
186
|
+
|
187
|
+
_install2 = function () {
|
188
|
+
return data;
|
189
|
+
};
|
190
|
+
|
191
|
+
return data;
|
192
|
+
}
|
193
|
+
|
194
|
+
function _uninstall() {
|
195
|
+
const data = _interopRequireDefault(require("./uninstall.cmd"));
|
196
|
+
|
197
|
+
_uninstall = function () {
|
198
|
+
return data;
|
199
|
+
};
|
200
|
+
|
201
|
+
return data;
|
202
|
+
}
|
203
|
+
|
204
|
+
function _update() {
|
205
|
+
const data = _interopRequireDefault(require("./update.cmd"));
|
206
|
+
|
207
|
+
_update = function () {
|
208
|
+
return data;
|
209
|
+
};
|
210
|
+
|
211
|
+
return data;
|
212
|
+
}
|
213
|
+
|
214
|
+
class InstallMain {
|
215
|
+
constructor(dependencyResolver, logger, workspace, variants) {
|
216
|
+
this.dependencyResolver = dependencyResolver;
|
217
|
+
this.logger = logger;
|
218
|
+
this.workspace = workspace;
|
219
|
+
this.variants = variants;
|
220
|
+
}
|
221
|
+
/**
|
222
|
+
* Install dependencies for all components in the workspace
|
223
|
+
*
|
224
|
+
* @returns
|
225
|
+
* @memberof Workspace
|
226
|
+
*/
|
227
|
+
|
228
|
+
|
229
|
+
async install(packages, options) {
|
230
|
+
if (packages && packages.length) {
|
231
|
+
await this._addPackages(packages, options);
|
232
|
+
}
|
233
|
+
|
234
|
+
if (options !== null && options !== void 0 && options.addMissingPeers) {
|
235
|
+
var _options$copyPeerToRu, _options$copyPeerToRu2;
|
236
|
+
|
237
|
+
const compDirMap = await this.getComponentsDirectory([]);
|
238
|
+
const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
|
239
|
+
const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();
|
240
|
+
const pmInstallOptions = {
|
241
|
+
dedupe: options === null || options === void 0 ? void 0 : options.dedupe,
|
242
|
+
copyPeerToRuntimeOnRoot: (_options$copyPeerToRu = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnRoot) !== null && _options$copyPeerToRu !== void 0 ? _options$copyPeerToRu : true,
|
243
|
+
copyPeerToRuntimeOnComponents: (_options$copyPeerToRu2 = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnComponents) !== null && _options$copyPeerToRu2 !== void 0 ? _options$copyPeerToRu2 : false,
|
244
|
+
dependencyFilterFn: depsFilterFn,
|
245
|
+
overrides: this.dependencyResolver.config.overrides,
|
246
|
+
packageImportMethod: this.dependencyResolver.config.packageImportMethod
|
247
|
+
};
|
248
|
+
const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(this.workspace.path, mergedRootPolicy, compDirMap, pmInstallOptions);
|
249
|
+
|
250
|
+
if (missingPeers) {
|
251
|
+
const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);
|
252
|
+
await this._addPackages(missingPeerPackages, options);
|
253
|
+
} else {
|
254
|
+
this.logger.console('No missing peer dependencies found.');
|
255
|
+
}
|
256
|
+
}
|
257
|
+
|
258
|
+
if (options !== null && options !== void 0 && options.import) {
|
259
|
+
this.logger.setStatusLine('importing missing objects');
|
260
|
+
await this.importObjects();
|
261
|
+
this.logger.consoleSuccess();
|
262
|
+
}
|
263
|
+
|
264
|
+
return this._installModules(options);
|
265
|
+
}
|
266
|
+
|
267
|
+
async _addPackages(packages, options) {
|
268
|
+
if (!(options !== null && options !== void 0 && options.variants) && (options === null || options === void 0 ? void 0 : options.lifecycleType) === 'dev') {
|
269
|
+
throw new (_exceptions2().DependencyTypeNotSupportedInPolicy)(options === null || options === void 0 ? void 0 : options.lifecycleType);
|
270
|
+
}
|
271
|
+
|
272
|
+
this.logger.debug(`installing the following packages: ${packages.join()}`);
|
273
|
+
const resolver = await this.dependencyResolver.getVersionResolver();
|
274
|
+
const resolvedPackagesP = packages.map(packageName => resolver.resolveRemoteVersion(packageName, {
|
275
|
+
rootDir: this.workspace.path
|
276
|
+
}));
|
277
|
+
const resolvedPackages = await Promise.all(resolvedPackagesP);
|
278
|
+
const newWorkspacePolicyEntries = [];
|
279
|
+
resolvedPackages.forEach(resolvedPackage => {
|
280
|
+
if (resolvedPackage.version) {
|
281
|
+
const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix(resolvedPackage.version, options === null || options === void 0 ? void 0 : options.savePrefix);
|
282
|
+
newWorkspacePolicyEntries.push({
|
283
|
+
dependencyId: resolvedPackage.packageName,
|
284
|
+
value: {
|
285
|
+
version: versionWithPrefix
|
286
|
+
},
|
287
|
+
lifecycleType: (options === null || options === void 0 ? void 0 : options.lifecycleType) || 'runtime'
|
288
|
+
});
|
289
|
+
}
|
290
|
+
});
|
291
|
+
|
292
|
+
if (!(options !== null && options !== void 0 && options.variants)) {
|
293
|
+
var _options$updateExisti;
|
294
|
+
|
295
|
+
this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {
|
296
|
+
updateExisting: (_options$updateExisti = options === null || options === void 0 ? void 0 : options.updateExisting) !== null && _options$updateExisti !== void 0 ? _options$updateExisti : false
|
297
|
+
});
|
298
|
+
} else {// TODO: implement
|
299
|
+
}
|
300
|
+
|
301
|
+
await this.dependencyResolver.persistConfig(this.workspace.path);
|
302
|
+
}
|
303
|
+
|
304
|
+
async _installModules(options) {
|
305
|
+
var _options$copyPeerToRu3, _options$copyPeerToRu4;
|
306
|
+
|
307
|
+
this.logger.console(`installing dependencies in workspace using ${_chalk().default.cyan(this.dependencyResolver.getPackageManagerName())}`);
|
308
|
+
this.logger.debug(`installing dependencies in workspace with options`, options);
|
309
|
+
const hasRootComponents = this.dependencyResolver.hasRootComponents(); // TODO: this make duplicate
|
310
|
+
// this.logger.consoleSuccess();
|
311
|
+
// TODO: add the links results to the output
|
312
|
+
|
313
|
+
await this.link({
|
314
|
+
linkTeambitBit: true,
|
315
|
+
legacyLink: true,
|
316
|
+
linkCoreAspects: false,
|
317
|
+
linkDepsResolvedFromEnv: !hasRootComponents,
|
318
|
+
linkNestedDepsInNM: false
|
319
|
+
});
|
320
|
+
this.workspace.consumer.componentLoader.clearComponentsCache();
|
321
|
+
this.workspace.clearCache(); // TODO: pass get install options
|
322
|
+
|
323
|
+
const installer = this.dependencyResolver.getInstaller({});
|
324
|
+
const compDirMap = await this.getComponentsDirectory([]);
|
325
|
+
const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
|
326
|
+
const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();
|
327
|
+
const pmInstallOptions = {
|
328
|
+
dedupe: !hasRootComponents && (options === null || options === void 0 ? void 0 : options.dedupe),
|
329
|
+
copyPeerToRuntimeOnRoot: (_options$copyPeerToRu3 = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnRoot) !== null && _options$copyPeerToRu3 !== void 0 ? _options$copyPeerToRu3 : true,
|
330
|
+
copyPeerToRuntimeOnComponents: (_options$copyPeerToRu4 = options === null || options === void 0 ? void 0 : options.copyPeerToRuntimeOnComponents) !== null && _options$copyPeerToRu4 !== void 0 ? _options$copyPeerToRu4 : false,
|
331
|
+
dependencyFilterFn: depsFilterFn,
|
332
|
+
overrides: this.dependencyResolver.config.overrides,
|
333
|
+
packageImportMethod: this.dependencyResolver.config.packageImportMethod,
|
334
|
+
rootComponents: hasRootComponents
|
335
|
+
};
|
336
|
+
await installer.install(this.workspace.path, mergedRootPolicy, compDirMap, {
|
337
|
+
installTeambitBit: false
|
338
|
+
}, pmInstallOptions);
|
339
|
+
await this.link({
|
340
|
+
linkTeambitBit: false,
|
341
|
+
legacyLink: true,
|
342
|
+
linkCoreAspects: this.dependencyResolver.linkCoreAspects(),
|
343
|
+
linkDepsResolvedFromEnv: !hasRootComponents,
|
344
|
+
linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents
|
345
|
+
});
|
346
|
+
await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();
|
347
|
+
return compDirMap;
|
348
|
+
}
|
349
|
+
/**
|
350
|
+
* Updates out-of-date dependencies in the workspace.
|
351
|
+
*
|
352
|
+
* @param options.all {Boolean} updates all outdated dependencies without showing a prompt.
|
353
|
+
*/
|
354
|
+
|
355
|
+
|
356
|
+
async updateDependencies(options) {
|
357
|
+
const {
|
358
|
+
componentConfigFiles,
|
359
|
+
componentPoliciesById
|
360
|
+
} = await this._getComponentsWithDependencyPolicies();
|
361
|
+
const variantPatterns = this.variants.raw();
|
362
|
+
|
363
|
+
const variantPoliciesByPatterns = this._variantPatternsToDepPolicesDict(variantPatterns);
|
364
|
+
|
365
|
+
const components = await this.workspace.list();
|
366
|
+
const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({
|
367
|
+
rootDir: this.workspace.path,
|
368
|
+
variantPoliciesByPatterns,
|
369
|
+
componentPoliciesById,
|
370
|
+
components
|
371
|
+
});
|
372
|
+
let outdatedPkgsToUpdate;
|
373
|
+
|
374
|
+
if (options.all) {
|
375
|
+
outdatedPkgsToUpdate = outdatedPkgs;
|
376
|
+
} else {
|
377
|
+
this.logger.off();
|
378
|
+
outdatedPkgsToUpdate = await (0, _pickOutdatedPkgs().pickOutdatedPkgs)(outdatedPkgs);
|
379
|
+
this.logger.on();
|
380
|
+
}
|
381
|
+
|
382
|
+
const {
|
383
|
+
updatedVariants,
|
384
|
+
updatedComponents
|
385
|
+
} = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {
|
386
|
+
variantPoliciesByPatterns,
|
387
|
+
componentPoliciesById
|
388
|
+
});
|
389
|
+
await this._updateVariantsPolicies(variantPatterns, updatedVariants);
|
390
|
+
const updatedComponentConfigFiles = Object.values((0, _lodash().pick)(componentConfigFiles, updatedComponents));
|
391
|
+
await this._saveManyComponentConfigFiles(updatedComponentConfigFiles);
|
392
|
+
await this.workspace._reloadConsumer();
|
393
|
+
return this._installModules({
|
394
|
+
dedupe: true
|
395
|
+
});
|
396
|
+
}
|
397
|
+
|
398
|
+
async _getComponentsWithDependencyPolicies() {
|
399
|
+
const allComponentIds = await this.workspace.listIds();
|
400
|
+
const componentConfigFiles = {};
|
401
|
+
const componentPoliciesById = {};
|
402
|
+
(await Promise.all(allComponentIds.map(componentId => this.workspace.componentConfigFile(componentId)))).forEach((componentConfigFile, index) => {
|
403
|
+
if (!componentConfigFile) return;
|
404
|
+
const depResolverConfig = componentConfigFile.aspects.get(_dependencyResolver().DependencyResolverAspect.id);
|
405
|
+
if (!depResolverConfig) return;
|
406
|
+
const componentId = allComponentIds[index].toString();
|
407
|
+
componentConfigFiles[componentId] = componentConfigFile;
|
408
|
+
componentPoliciesById[componentId] = depResolverConfig.config.policy;
|
409
|
+
});
|
410
|
+
return {
|
411
|
+
componentConfigFiles,
|
412
|
+
componentPoliciesById
|
413
|
+
};
|
414
|
+
}
|
415
|
+
|
416
|
+
_variantPatternsToDepPolicesDict(variantPatterns) {
|
417
|
+
const variantPoliciesByPatterns = {};
|
418
|
+
|
419
|
+
for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {
|
420
|
+
var _extensions$Dependenc;
|
421
|
+
|
422
|
+
if ((_extensions$Dependenc = extensions[_dependencyResolver().DependencyResolverAspect.id]) !== null && _extensions$Dependenc !== void 0 && _extensions$Dependenc.policy) {
|
423
|
+
var _extensions$Dependenc2;
|
424
|
+
|
425
|
+
variantPoliciesByPatterns[variantPattern] = (_extensions$Dependenc2 = extensions[_dependencyResolver().DependencyResolverAspect.id]) === null || _extensions$Dependenc2 === void 0 ? void 0 : _extensions$Dependenc2.policy;
|
426
|
+
}
|
427
|
+
}
|
428
|
+
|
429
|
+
return variantPoliciesByPatterns;
|
430
|
+
}
|
431
|
+
|
432
|
+
_updateVariantsPolicies(variantPatterns, updateVariantPolicies) {
|
433
|
+
for (const variantPattern of updateVariantPolicies) {
|
434
|
+
this.variants.setExtension(variantPattern, _dependencyResolver().DependencyResolverAspect.id, variantPatterns[variantPattern][_dependencyResolver().DependencyResolverAspect.id], {
|
435
|
+
overrideExisting: true
|
436
|
+
});
|
437
|
+
}
|
438
|
+
|
439
|
+
return this.dependencyResolver.persistConfig(this.workspace.path);
|
440
|
+
}
|
441
|
+
|
442
|
+
async _saveManyComponentConfigFiles(componentConfigFiles) {
|
443
|
+
await Promise.all(Array.from(componentConfigFiles).map(async componentConfigFile => {
|
444
|
+
await componentConfigFile.write({
|
445
|
+
override: true
|
446
|
+
});
|
447
|
+
}));
|
448
|
+
}
|
449
|
+
/**
|
450
|
+
* Uninstall the specified packages from dependencies.
|
451
|
+
*
|
452
|
+
* @param {string[]} the list of packages that should be removed from dependencies.
|
453
|
+
*/
|
454
|
+
|
455
|
+
|
456
|
+
async uninstallDependencies(packages) {
|
457
|
+
this.dependencyResolver.removeFromRootPolicy(packages);
|
458
|
+
await this.dependencyResolver.persistConfig(this.workspace.path);
|
459
|
+
return this._installModules({
|
460
|
+
dedupe: true
|
461
|
+
});
|
462
|
+
}
|
463
|
+
|
464
|
+
async link(options = {}) {
|
465
|
+
if (options.fetchObject) {
|
466
|
+
await this.importObjects();
|
467
|
+
}
|
468
|
+
|
469
|
+
options.consumer = this.workspace.consumer;
|
470
|
+
const compDirMap = await this.getComponentsDirectory([]);
|
471
|
+
const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
|
472
|
+
const linker = this.dependencyResolver.getLinker({
|
473
|
+
rootDir: this.workspace.path,
|
474
|
+
linkingOptions: options
|
475
|
+
});
|
476
|
+
const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);
|
477
|
+
return res;
|
478
|
+
} // TODO: replace with a proper import API on the workspace
|
479
|
+
|
480
|
+
|
481
|
+
async importObjects() {
|
482
|
+
const importOptions = {
|
483
|
+
ids: [],
|
484
|
+
verbose: false,
|
485
|
+
merge: false,
|
486
|
+
objectsOnly: true,
|
487
|
+
override: false,
|
488
|
+
writeDists: false,
|
489
|
+
writeConfig: false,
|
490
|
+
installNpmPackages: false,
|
491
|
+
importDependenciesDirectly: false,
|
492
|
+
importDependents: false
|
493
|
+
};
|
494
|
+
const importer = new (_importer().Importer)(this.workspace, this.dependencyResolver);
|
495
|
+
|
496
|
+
try {
|
497
|
+
const res = await importer.import(importOptions, []);
|
498
|
+
return res;
|
499
|
+
} catch (err) {
|
500
|
+
// TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy
|
501
|
+
if (err instanceof _exceptions().NothingToImport) {
|
502
|
+
// Do not write nothing to import warning
|
503
|
+
return undefined;
|
504
|
+
}
|
505
|
+
|
506
|
+
throw err;
|
507
|
+
}
|
508
|
+
}
|
509
|
+
/**
|
510
|
+
* Generate a filter to pass to the installer
|
511
|
+
* This will filter deps which are come from remotes which defined in scope.json
|
512
|
+
* those components comes from local remotes, usually doesn't have a package in a registry
|
513
|
+
* so no reason to try to install them (it will fail)
|
514
|
+
*/
|
515
|
+
|
516
|
+
|
517
|
+
async generateFilterFnForDepsFromLocalRemote() {
|
518
|
+
// TODO: once scope create a new API for this, replace it with the new one
|
519
|
+
const remotes = await this.workspace.scope._legacyRemotes();
|
520
|
+
const reg = await this.dependencyResolver.getRegistries();
|
521
|
+
const packageScopes = Object.keys(reg.scopes);
|
522
|
+
return dependencyList => {
|
523
|
+
const filtered = dependencyList.filter(dep => {
|
524
|
+
if (!(dep instanceof _dependencyResolver().ComponentDependency)) {
|
525
|
+
return true;
|
526
|
+
}
|
527
|
+
|
528
|
+
if (remotes.isHub(dep.componentId.scope)) {
|
529
|
+
return true;
|
530
|
+
}
|
531
|
+
|
532
|
+
if (packageScopes.some(scope => dep.packageName.startsWith(`@${scope}/`))) {
|
533
|
+
return true;
|
534
|
+
}
|
535
|
+
|
536
|
+
return false;
|
537
|
+
});
|
538
|
+
return filtered;
|
539
|
+
};
|
540
|
+
}
|
541
|
+
|
542
|
+
async getComponentsDirectory(ids) {
|
543
|
+
const components = ids.length ? await this.workspace.getMany(ids) : await this.workspace.list();
|
544
|
+
return _component().ComponentMap.as(components, component => this.workspace.componentDir(component.id));
|
545
|
+
}
|
546
|
+
|
547
|
+
static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community]) {
|
548
|
+
const logger = loggerExt.createLogger('teambit.bit/install');
|
549
|
+
const installExt = new InstallMain(dependencyResolver, logger, workspace, variants);
|
550
|
+
|
551
|
+
_manyComponentsWriter().default.registerExternalInstaller({
|
552
|
+
install: async () => {
|
553
|
+
// TODO: think how we should pass this options
|
554
|
+
const installOpts = {
|
555
|
+
dedupe: true,
|
556
|
+
updateExisting: false,
|
557
|
+
import: false
|
558
|
+
};
|
559
|
+
return installExt.install(undefined, installOpts);
|
560
|
+
}
|
561
|
+
});
|
562
|
+
|
563
|
+
const commands = [new (_install2().default)(installExt, workspace, logger), new (_uninstall().default)(installExt), new (_update().default)(installExt), new (_link().LinkCommand)(installExt, workspace, logger, community.getDocsDomain())];
|
564
|
+
cli.register(...commands);
|
565
|
+
return installExt;
|
566
|
+
}
|
567
|
+
|
568
|
+
}
|
569
|
+
|
570
|
+
exports.InstallMain = InstallMain;
|
571
|
+
(0, _defineProperty2().default)(InstallMain, "slots", []);
|
572
|
+
(0, _defineProperty2().default)(InstallMain, "dependencies", [_dependencyResolver().DependencyResolverAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _variants().VariantsAspect, _cli().CLIAspect, _community().CommunityAspect]);
|
573
|
+
(0, _defineProperty2().default)(InstallMain, "runtime", _cli().MainRuntime);
|
574
|
+
|
575
|
+
_install().InstallAspect.addRuntime(InstallMain);
|
576
|
+
|
577
|
+
var _default = InstallMain;
|
578
|
+
exports.default = _default;
|
579
|
+
|
580
|
+
//# sourceMappingURL=install.main.runtime.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","install","packages","options","length","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","config","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","Object","entries","map","peerName","range","console","import","setStatusLine","importObjects","consoleSuccess","_installModules","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","forEach","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","savePrefix","push","dependencyId","value","addToRootPolicy","updateExisting","persistConfig","chalk","cyan","getPackageManagerName","hasRootComponents","link","linkTeambitBit","legacyLink","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","consumer","componentLoader","clearComponentsCache","clearCache","installer","getInstaller","rootComponents","installTeambitBit","isLegacy","componentFsCache","deleteAllDependenciesDataCache","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","list","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","values","pick","_saveManyComponentConfigFiles","_reloadConsumer","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","id","toString","policy","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","Array","from","write","override","uninstallDependencies","removeFromRootPolicy","fetchObject","linker","getLinker","linkingOptions","res","importOptions","ids","verbose","merge","objectsOnly","writeDists","writeConfig","installNpmPackages","importDependenciesDirectly","importDependents","importer","Importer","err","NothingToImport","undefined","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","keys","scopes","dependencyList","filtered","filter","dep","ComponentDependency","isHub","some","startsWith","getMany","ComponentMap","as","component","componentDir","provider","loggerExt","cli","community","createLogger","installExt","ManyComponentsWriter","registerExternalInstaller","installOpts","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","register","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","MainRuntime","InstallAspect","addRuntime"],"sources":["install.main.runtime.ts"],"sourcesContent":["import { CommunityMain, CommunityAspect } from '@teambit/community';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport { CLIMain, CommandList, CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceAspect, Workspace, ComponentConfigFile } from '@teambit/workspace';\nimport { pick } from 'lodash';\nimport { NothingToImport } from '@teambit/legacy/dist/consumer/exceptions';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport {\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n OutdatedPkg,\n} from '@teambit/dependency-resolver';\nimport { Importer } from '@teambit/importer';\nimport { ImportOptions } from '@teambit/legacy/dist/consumer/component-ops/import-components';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\nimport { DependencyTypeNotSupportedInPolicy } from './exceptions';\nimport { InstallAspect } from './install.aspect';\nimport { pickOutdatedPkgs } from './pick-outdated-pkgs';\nimport { LinkCommand } from './link';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\n\nexport type WorkspaceLinkOptions = LinkingOptions;\n\nexport type WorkspaceInstallOptions = {\n addMissingPeers?: boolean;\n variants?: string;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe: boolean;\n import: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting: boolean;\n savePrefix?: string;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\nexport class InstallMain {\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private workspace: Workspace,\n\n private variants: VariantsMain\n ) {}\n /**\n * Install dependencies for all components in the workspace\n *\n * @returns\n * @memberof Workspace\n */\n async install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>> {\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n if (options?.addMissingPeers) {\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n };\n const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n pmInstallOptions\n );\n if (missingPeers) {\n const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);\n await this._addPackages(missingPeerPackages, options);\n } else {\n this.logger.console('No missing peer dependencies found.');\n }\n }\n if (options?.import) {\n this.logger.setStatusLine('importing missing objects');\n await this.importObjects();\n this.logger.consoleSuccess();\n }\n return this._installModules(options);\n }\n\n private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if (!options?.variants && (options?.lifecycleType as string) === 'dev') {\n throw new DependencyTypeNotSupportedInPolicy(options?.lifecycleType as string);\n }\n this.logger.debug(`installing the following packages: ${packages.join()}`);\n const resolver = await this.dependencyResolver.getVersionResolver();\n const resolvedPackagesP = packages.map((packageName) =>\n resolver.resolveRemoteVersion(packageName, {\n rootDir: this.workspace.path,\n })\n );\n const resolvedPackages = await Promise.all(resolvedPackagesP);\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n resolvedPackages.forEach((resolvedPackage) => {\n if (resolvedPackage.version) {\n const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix(\n resolvedPackage.version,\n options?.savePrefix\n );\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n if (!options?.variants) {\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n });\n } else {\n // TODO: implement\n }\n await this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n this.logger.console(\n `installing dependencies in workspace using ${chalk.cyan(this.dependencyResolver.getPackageManagerName())}`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n // TODO: add the links results to the output\n await this.link({\n linkTeambitBit: true,\n legacyLink: true,\n linkCoreAspects: false,\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: false,\n });\n this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: !hasRootComponents && options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n };\n await installer.install(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n { installTeambitBit: false },\n pmInstallOptions\n );\n await this.link({\n linkTeambitBit: false,\n legacyLink: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n });\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n return compDirMap;\n }\n\n /**\n * Updates out-of-date dependencies in the workspace.\n *\n * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.\n */\n async updateDependencies(options: { all: boolean }) {\n const { componentConfigFiles, componentPoliciesById } = await this._getComponentsWithDependencyPolicies();\n const variantPatterns = this.variants.raw();\n const variantPoliciesByPatterns = this._variantPatternsToDepPolicesDict(variantPatterns);\n const components = await this.workspace.list();\n const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({\n rootDir: this.workspace.path,\n variantPoliciesByPatterns,\n componentPoliciesById,\n components,\n });\n let outdatedPkgsToUpdate!: OutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {\n variantPoliciesByPatterns,\n componentPoliciesById,\n });\n await this._updateVariantsPolicies(variantPatterns, updatedVariants);\n const updatedComponentConfigFiles = Object.values(pick(componentConfigFiles, updatedComponents));\n await this._saveManyComponentConfigFiles(updatedComponentConfigFiles);\n await this.workspace._reloadConsumer();\n return this._installModules({ dedupe: true });\n }\n\n private async _getComponentsWithDependencyPolicies() {\n const allComponentIds = await this.workspace.listIds();\n const componentConfigFiles: Record<string, ComponentConfigFile> = {};\n const componentPoliciesById: Record<string, any> = {};\n (\n await Promise.all<ComponentConfigFile | undefined>(\n allComponentIds.map((componentId) => this.workspace.componentConfigFile(componentId))\n )\n ).forEach((componentConfigFile, index) => {\n if (!componentConfigFile) return;\n const depResolverConfig = componentConfigFile.aspects.get(DependencyResolverAspect.id);\n if (!depResolverConfig) return;\n const componentId = allComponentIds[index].toString();\n componentConfigFiles[componentId] = componentConfigFile;\n componentPoliciesById[componentId] = depResolverConfig.config.policy;\n });\n return {\n componentConfigFiles,\n componentPoliciesById,\n };\n }\n\n private _variantPatternsToDepPolicesDict(variantPatterns: Patterns): Record<string, VariantPolicyConfigObject> {\n const variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject> = {};\n for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {\n if (extensions[DependencyResolverAspect.id]?.policy) {\n variantPoliciesByPatterns[variantPattern] = extensions[DependencyResolverAspect.id]?.policy;\n }\n }\n return variantPoliciesByPatterns;\n }\n\n private _updateVariantsPolicies(variantPatterns: Record<string, any>, updateVariantPolicies: string[]) {\n for (const variantPattern of updateVariantPolicies) {\n this.variants.setExtension(\n variantPattern,\n DependencyResolverAspect.id,\n variantPatterns[variantPattern][DependencyResolverAspect.id],\n { overrideExisting: true }\n );\n }\n return this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _saveManyComponentConfigFiles(componentConfigFiles: ComponentConfigFile[]) {\n await Promise.all(\n Array.from(componentConfigFiles).map(async (componentConfigFile) => {\n await componentConfigFile.write({ override: true });\n })\n );\n }\n\n /**\n * Uninstall the specified packages from dependencies.\n *\n * @param {string[]} the list of packages that should be removed from dependencies.\n */\n async uninstallDependencies(packages: string[]) {\n this.dependencyResolver.removeFromRootPolicy(packages);\n await this.dependencyResolver.persistConfig(this.workspace.path);\n return this._installModules({ dedupe: true });\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<LinkResults> {\n if (options.fetchObject) {\n await this.importObjects();\n }\n options.consumer = this.workspace.consumer;\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);\n return res;\n }\n\n // TODO: replace with a proper import API on the workspace\n private async importObjects() {\n const importOptions: ImportOptions = {\n ids: [],\n verbose: false,\n merge: false,\n objectsOnly: true,\n override: false,\n writeDists: false,\n writeConfig: false,\n installNpmPackages: false,\n importDependenciesDirectly: false,\n importDependents: false,\n };\n const importer = new Importer(this.workspace, this.dependencyResolver);\n try {\n const res = await importer.import(importOptions, []);\n return res;\n } catch (err: any) {\n // TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy\n if (err instanceof NothingToImport) {\n // Do not write nothing to import warning\n return undefined;\n }\n throw err;\n }\n }\n\n /**\n * Generate a filter to pass to the installer\n * This will filter deps which are come from remotes which defined in scope.json\n * those components comes from local remotes, usually doesn't have a package in a registry\n * so no reason to try to install them (it will fail)\n */\n private async generateFilterFnForDepsFromLocalRemote() {\n // TODO: once scope create a new API for this, replace it with the new one\n const remotes = await this.workspace.scope._legacyRemotes();\n const reg = await this.dependencyResolver.getRegistries();\n const packageScopes = Object.keys(reg.scopes);\n return (dependencyList: DependencyList): DependencyList => {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n if (remotes.isHub(dep.componentId.scope)) {\n return true;\n }\n if (packageScopes.some((scope) => dep.packageName.startsWith(`@${scope}/`))) {\n return true;\n }\n return false;\n });\n return filtered;\n };\n }\n\n private async getComponentsDirectory(ids: ComponentID[]): Promise<ComponentMap<string>> {\n const components = ids.length ? await this.workspace.getMany(ids) : await this.workspace.list();\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n static slots = [];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CommunityAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain\n ]) {\n const logger = loggerExt.createLogger('teambit.bit/install');\n const installExt = new InstallMain(dependencyResolver, logger, workspace, variants);\n ManyComponentsWriter.registerExternalInstaller({\n install: async () => {\n // TODO: think how we should pass this options\n const installOpts: WorkspaceInstallOptions = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n return installExt.install(undefined, installOpts);\n },\n });\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger, community.getDocsDomain()),\n ];\n cli.register(...commands);\n return installExt;\n }\n}\n\nInstallAspect.addRuntime(InstallMain);\n\nexport default InstallMain;\n"],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { LinksResult as LegacyLinksResult } from '@teambit/legacy/dist/links/node-modules-linker';
|
2
|
+
declare type ComponentListLinksProps = {
|
3
|
+
componentListLinks?: LegacyLinksResult[];
|
4
|
+
verbose: boolean;
|
5
|
+
};
|
6
|
+
export declare function ComponentListLinks({ componentListLinks, verbose }: ComponentListLinksProps): string;
|
7
|
+
export {};
|