@teambit/lanes 0.0.288 → 0.0.291
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/dist/lane.cmd.d.ts +24 -1
- package/dist/lane.cmd.js +89 -11
- package/dist/lane.cmd.js.map +1 -1
- package/dist/lanes.graphql.js +5 -0
- package/dist/lanes.graphql.js.map +1 -1
- package/dist/lanes.main.runtime.d.ts +38 -5
- package/dist/lanes.main.runtime.js +206 -9
- package/dist/lanes.main.runtime.js.map +1 -1
- package/dist/merge-lanes.d.ts +6 -2
- package/dist/merge-lanes.js +42 -2
- package/dist/merge-lanes.js.map +1 -1
- package/dist/switch-lanes.d.ts +32 -0
- package/dist/switch-lanes.js +461 -0
- package/dist/switch-lanes.js.map +1 -0
- package/dist/switch.cmd.d.ts +4 -2
- package/dist/switch.cmd.js +9 -66
- package/dist/switch.cmd.js.map +1 -1
- package/package-tar/teambit-lanes-0.0.291.tgz +0 -0
- package/package.json +19 -18
- package/{preview-1650804247524.js → preview-1651029886240.js} +2 -2
- package/package-tar/teambit-lanes-0.0.288.tgz +0 -0
@@ -121,6 +121,26 @@ function _constants() {
|
|
121
121
|
return data;
|
122
122
|
}
|
123
123
|
|
124
|
+
function _logger() {
|
125
|
+
const data = require("@teambit/logger");
|
126
|
+
|
127
|
+
_logger = function () {
|
128
|
+
return data;
|
129
|
+
};
|
130
|
+
|
131
|
+
return data;
|
132
|
+
}
|
133
|
+
|
134
|
+
function _mergeVersion() {
|
135
|
+
const data = require("@teambit/legacy/dist/consumer/versions-ops/merge-version");
|
136
|
+
|
137
|
+
_mergeVersion = function () {
|
138
|
+
return data;
|
139
|
+
};
|
140
|
+
|
141
|
+
return data;
|
142
|
+
}
|
143
|
+
|
124
144
|
function _community() {
|
125
145
|
const data = require("@teambit/community");
|
126
146
|
|
@@ -131,6 +151,16 @@ function _community() {
|
|
131
151
|
return data;
|
132
152
|
}
|
133
153
|
|
154
|
+
function _component() {
|
155
|
+
const data = _interopRequireDefault(require("@teambit/component"));
|
156
|
+
|
157
|
+
_component = function () {
|
158
|
+
return data;
|
159
|
+
};
|
160
|
+
|
161
|
+
return data;
|
162
|
+
}
|
163
|
+
|
134
164
|
function _removeLanes() {
|
135
165
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/lanes/remove-lanes"));
|
136
166
|
|
@@ -201,15 +231,27 @@ function _mergeLanes() {
|
|
201
231
|
return data;
|
202
232
|
}
|
203
233
|
|
234
|
+
function _switchLanes() {
|
235
|
+
const data = require("./switch-lanes");
|
236
|
+
|
237
|
+
_switchLanes = function () {
|
238
|
+
return data;
|
239
|
+
};
|
240
|
+
|
241
|
+
return data;
|
242
|
+
}
|
243
|
+
|
204
244
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
205
245
|
|
206
246
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
207
247
|
|
208
248
|
class LanesMain {
|
209
|
-
constructor(workspace, scope, merging) {
|
249
|
+
constructor(workspace, scope, merging, componentAspect, logger) {
|
210
250
|
this.workspace = workspace;
|
211
251
|
this.scope = scope;
|
212
252
|
this.merging = merging;
|
253
|
+
this.componentAspect = componentAspect;
|
254
|
+
this.logger = logger;
|
213
255
|
}
|
214
256
|
|
215
257
|
async getLanes({
|
@@ -314,14 +356,66 @@ class LanesMain {
|
|
314
356
|
throw new (_bitError().BitError)(`unable to merge a lane outside of Bit workspace`);
|
315
357
|
}
|
316
358
|
|
317
|
-
const
|
359
|
+
const results = await (0, _mergeLanes().mergeLanes)(_objectSpread({
|
318
360
|
merging: this.merging,
|
319
361
|
consumer: this.workspace.consumer,
|
320
362
|
laneName
|
321
363
|
}, options));
|
322
364
|
await this.workspace.consumer.onDestroy();
|
323
365
|
this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);
|
324
|
-
return
|
366
|
+
return results;
|
367
|
+
}
|
368
|
+
/**
|
369
|
+
* switch to a different local or remote lane.
|
370
|
+
* switching to a remote lane also imports and writes the components of that remote lane.
|
371
|
+
* by default, only the components existing on the workspace will be imported from that lane, unless the "getAll"
|
372
|
+
* flag is true.
|
373
|
+
*/
|
374
|
+
|
375
|
+
|
376
|
+
async switchLanes(laneName, {
|
377
|
+
newLaneName,
|
378
|
+
merge,
|
379
|
+
getAll = false,
|
380
|
+
skipDependencyInstallation = false
|
381
|
+
}) {
|
382
|
+
if (!this.workspace) {
|
383
|
+
throw new (_bitError().BitError)(`unable to switch lanes outside of Bit workspace`);
|
384
|
+
}
|
385
|
+
|
386
|
+
let mergeStrategy;
|
387
|
+
|
388
|
+
if (merge && typeof merge === 'string') {
|
389
|
+
const mergeOptions = Object.keys(_mergeVersion().MergeOptions);
|
390
|
+
|
391
|
+
if (!mergeOptions.includes(merge)) {
|
392
|
+
throw new (_bitError().BitError)(`merge must be one of the following: ${mergeOptions.join(', ')}`);
|
393
|
+
}
|
394
|
+
|
395
|
+
mergeStrategy = merge;
|
396
|
+
}
|
397
|
+
|
398
|
+
const switchProps = {
|
399
|
+
laneName,
|
400
|
+
existingOnWorkspaceOnly: !getAll,
|
401
|
+
newLaneName
|
402
|
+
};
|
403
|
+
const checkoutProps = {
|
404
|
+
mergeStrategy,
|
405
|
+
skipNpmInstall: skipDependencyInstallation,
|
406
|
+
verbose: false,
|
407
|
+
// not relevant in Harmony
|
408
|
+
ignorePackageJson: true,
|
409
|
+
// not relevant in Harmony
|
410
|
+
ignoreDist: true,
|
411
|
+
// not relevant in Harmony
|
412
|
+
isLane: true,
|
413
|
+
promptMergeOptions: false,
|
414
|
+
writeConfig: false,
|
415
|
+
reset: false,
|
416
|
+
all: false
|
417
|
+
};
|
418
|
+
return new (_switchLanes().LaneSwitcher)(this.workspace, this.logger, switchProps, checkoutProps).switch();
|
325
419
|
}
|
326
420
|
/**
|
327
421
|
* the values array may include zero to two values and will be processed as following:
|
@@ -342,7 +436,7 @@ class LanesMain {
|
|
342
436
|
name
|
343
437
|
});
|
344
438
|
const laneComponents = lane.components;
|
345
|
-
const host = this.
|
439
|
+
const host = this.componentAspect.getHost();
|
346
440
|
const laneComponentIds = await Promise.all(laneComponents.map(laneComponent => {
|
347
441
|
const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);
|
348
442
|
return host.resolveComponentId(legacyIdWithVersion);
|
@@ -351,6 +445,108 @@ class LanesMain {
|
|
351
445
|
return components;
|
352
446
|
}
|
353
447
|
|
448
|
+
async getLaneReadmeComponent(name) {
|
449
|
+
if (!name) return undefined;
|
450
|
+
const [lane] = await this.getLanes({
|
451
|
+
name
|
452
|
+
});
|
453
|
+
const laneReadmeComponent = lane.readmeComponent;
|
454
|
+
if (!laneReadmeComponent) return undefined;
|
455
|
+
const host = this.componentAspect.getHost();
|
456
|
+
const laneReadmeComponentId = await host.resolveComponentId(laneReadmeComponent.id.changeVersion(laneReadmeComponent.head));
|
457
|
+
const readmeComponent = await host.get(laneReadmeComponentId);
|
458
|
+
return readmeComponent;
|
459
|
+
}
|
460
|
+
|
461
|
+
async removeLaneReadme(laneName) {
|
462
|
+
if (!this.workspace) {
|
463
|
+
throw new (_bitError().BitError)('unable to remove the lane readme component outside of Bit workspace');
|
464
|
+
}
|
465
|
+
|
466
|
+
const currentLaneName = this.getCurrentLane();
|
467
|
+
|
468
|
+
if (!laneName && !currentLaneName) {
|
469
|
+
return {
|
470
|
+
result: false,
|
471
|
+
message: 'unable to remove the lane readme component. Either pass a laneName or switch to a lane'
|
472
|
+
};
|
473
|
+
}
|
474
|
+
|
475
|
+
const laneId = laneName && _laneId().default.from(laneName) || _laneId().default.from(currentLaneName);
|
476
|
+
|
477
|
+
const scope = this.workspace.scope.legacyScope;
|
478
|
+
const lane = await scope.loadLane(laneId);
|
479
|
+
|
480
|
+
if (!(lane !== null && lane !== void 0 && lane.readmeComponent)) {
|
481
|
+
throw new (_bitError().BitError)(`there is no readme component added to the lane ${laneName || currentLaneName}`);
|
482
|
+
}
|
483
|
+
|
484
|
+
const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);
|
485
|
+
const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
|
486
|
+
|
487
|
+
const remoteLaneIdStr = (lane.remoteLaneId || _laneId().default.from(laneId.name, lane.scope)).toString();
|
488
|
+
|
489
|
+
if (existingLaneConfig.readme) {
|
490
|
+
delete existingLaneConfig.readme[remoteLaneIdStr];
|
491
|
+
await this.workspace.removeSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, false);
|
492
|
+
await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, existingLaneConfig);
|
493
|
+
}
|
494
|
+
|
495
|
+
lane.setReadmeComponent(undefined);
|
496
|
+
await scope.lanes.saveLane(lane);
|
497
|
+
await this.workspace.bitMap.write();
|
498
|
+
return {
|
499
|
+
result: true
|
500
|
+
};
|
501
|
+
}
|
502
|
+
|
503
|
+
async addLaneReadme(readmeComponentIdStr, laneName) {
|
504
|
+
if (!this.workspace) {
|
505
|
+
throw new (_bitError().BitError)(`unable to track a lane readme component outside of Bit workspace`);
|
506
|
+
}
|
507
|
+
|
508
|
+
const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);
|
509
|
+
const currentLaneName = this.getCurrentLane();
|
510
|
+
const readmeComponentBitId = readmeComponentId._legacy;
|
511
|
+
|
512
|
+
const laneId = laneName && _laneId().default.from(laneName) || _laneId().default.from(currentLaneName);
|
513
|
+
|
514
|
+
const scope = this.workspace.scope.legacyScope;
|
515
|
+
const lane = await scope.loadLane(laneId);
|
516
|
+
|
517
|
+
if (!lane) {
|
518
|
+
return {
|
519
|
+
result: false,
|
520
|
+
message: `cannot find lane ${laneName}`
|
521
|
+
};
|
522
|
+
}
|
523
|
+
|
524
|
+
lane.setReadmeComponent(readmeComponentBitId);
|
525
|
+
await scope.lanes.saveLane(lane);
|
526
|
+
const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
|
527
|
+
|
528
|
+
const remoteLaneIdStr = (lane.remoteLaneId || _laneId().default.from(laneId.name, lane.scope)).toString();
|
529
|
+
|
530
|
+
if (existingLaneConfig.readme) {
|
531
|
+
await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
|
532
|
+
readme: _objectSpread(_objectSpread({}, existingLaneConfig.readme), {}, {
|
533
|
+
[remoteLaneIdStr]: true
|
534
|
+
})
|
535
|
+
}));
|
536
|
+
} else {
|
537
|
+
await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
|
538
|
+
readme: {
|
539
|
+
[remoteLaneIdStr]: true
|
540
|
+
}
|
541
|
+
}));
|
542
|
+
}
|
543
|
+
|
544
|
+
await this.workspace.bitMap.write();
|
545
|
+
return {
|
546
|
+
result: true
|
547
|
+
};
|
548
|
+
}
|
549
|
+
|
354
550
|
async getLaneDataOfDefaultLane() {
|
355
551
|
var _this$workspace4;
|
356
552
|
|
@@ -375,14 +571,15 @@ class LanesMain {
|
|
375
571
|
};
|
376
572
|
}
|
377
573
|
|
378
|
-
static async provider([cli, scope, workspace, graphql, community, merging]) {
|
379
|
-
const
|
574
|
+
static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]) {
|
575
|
+
const logger = loggerMain.createLogger(_lanes().LanesAspect.id);
|
576
|
+
const lanesMain = new LanesMain(workspace, scope, merging, component, logger);
|
380
577
|
const isLegacy = workspace && workspace.consumer.isLegacy;
|
381
|
-
const switchCmd = new (_switch().SwitchCmd)();
|
578
|
+
const switchCmd = new (_switch().SwitchCmd)(lanesMain);
|
382
579
|
|
383
580
|
if (!isLegacy) {
|
384
581
|
const laneCmd = new (_lane().LaneCmd)(lanesMain, workspace, scope, community.getDocsDomain());
|
385
|
-
laneCmd.commands = [new (_lane().LaneListCmd)(lanesMain, workspace, scope), switchCmd, new (_lane().LaneShowCmd)(lanesMain, workspace, scope), new (_lane().LaneCreateCmd)(lanesMain), new (_lane().LaneMergeCmd)(lanesMain), new (_lane().LaneRemoveCmd)(lanesMain), new (_lane().LaneTrackCmd)(lanesMain), new (_lanesModules().LaneDiffCmd)(workspace, scope), new (_lane().LaneImportCmd)(switchCmd)];
|
582
|
+
laneCmd.commands = [new (_lane().LaneListCmd)(lanesMain, workspace, scope), switchCmd, new (_lane().LaneShowCmd)(lanesMain, workspace, scope), new (_lane().LaneCreateCmd)(lanesMain), new (_lane().LaneMergeCmd)(lanesMain), new (_lane().LaneRemoveCmd)(lanesMain), new (_lane().LaneTrackCmd)(lanesMain), new (_lanesModules().LaneDiffCmd)(workspace, scope), new (_lane().LaneAddReadmeCmd)(lanesMain), new (_lane().LaneRemoveReadmeCmd)(lanesMain), new (_lane().LaneImportCmd)(switchCmd)];
|
386
583
|
cli.register(laneCmd, switchCmd);
|
387
584
|
graphql.register((0, _lanes2().lanesSchema)(lanesMain));
|
388
585
|
}
|
@@ -394,7 +591,7 @@ class LanesMain {
|
|
394
591
|
|
395
592
|
exports.LanesMain = LanesMain;
|
396
593
|
(0, _defineProperty2().default)(LanesMain, "slots", []);
|
397
|
-
(0, _defineProperty2().default)(LanesMain, "dependencies", [_cli().CLIAspect, _scope().ScopeAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _community().CommunityAspect, _merging().MergingAspect]);
|
594
|
+
(0, _defineProperty2().default)(LanesMain, "dependencies", [_cli().CLIAspect, _scope().ScopeAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _community().CommunityAspect, _merging().MergingAspect, _component().default, _logger().LoggerAspect]);
|
398
595
|
(0, _defineProperty2().default)(LanesMain, "runtime", _cli().MainRuntime);
|
399
596
|
|
400
597
|
_lanes().LanesAspect.addRuntime(LanesMain);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["lanes.main.runtime.ts"],"names":["LanesMain","constructor","workspace","scope","merging","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","createLane","remoteScope","remoteName","BitError","setCurrentLane","trackLaneData","localLane","remoteLane","defaultScope","trackLane","onDestroy","localName","lane","loadLane","LaneId","from","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","removeLanes","laneNames","force","results","laneResults","mergeLane","laneName","options","mergeResults","bitMap","syncWithLanes","workspaceLane","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","components","host","laneComponentIds","Promise","all","map","laneComponent","legacyIdWithVersion","id","changeVersion","head","resolveComponentId","getMany","bitIds","scopeComponents","list","filter","component","_legacy","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","lanesMain","isLegacy","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneTrackCmd","LaneDiffCmd","LaneImportCmd","register","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","MainRuntime","LanesAspect","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAUA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAqBO,MAAMA,SAAN,CAAgB;AACrBC,EAAAA,WAAW,CAASC,SAAT,EAAmDC,KAAnD,EAA6EC,OAA7E,EAAmG;AAAA,SAA1FF,SAA0F,GAA1FA,SAA0F;AAAA,SAAhDC,KAAgD,GAAhDA,KAAgD;AAAA,SAAtBC,OAAsB,GAAtBA,OAAsB;AAAE;;AAElG,QAARC,QAAQ,CAAC;AACbC,IAAAA,IADa;AAEbC,IAAAA,MAFa;AAGbC,IAAAA,MAHa;AAIbC,IAAAA,eAJa;AAKbC,IAAAA;AALa,GAAD,EAYU;AAAA;;AACtB,UAAMC,aAAa,GAAGC,OAAO,CAACJ,MAAM,IAAIE,SAAX,CAA7B;AACA,UAAMG,QAAQ,sBAAG,KAAKX,SAAR,oDAAG,gBAAgBW,QAAjC;;AACA,QAAIN,MAAJ,EAAY;AACV,YAAMO,SAAS,GAAG,MAAM,gCAAgBP,MAAhB,EAAwBM,QAAxB,CAAxB;AACA,YAAME,KAAK,GAAG,MAAMD,SAAS,CAACE,SAAV,CAAoBV,IAApB,EAA0BK,aAA1B,CAApB;AACA,aAAOI,KAAP;AACD;;AAED,QAAIT,IAAI,KAAKW,yBAAb,EAA2B;AACzB,YAAMC,WAAW,GAAG,MAAM,KAAKC,wBAAL,EAA1B;AACA,aAAOD,WAAW,GAAG,CAACA,WAAD,CAAH,GAAmB,EAArC;AACD;;AAED,UAAMH,KAAK,GAAG,MAAM,KAAKZ,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6BM,YAA7B,CAA0C,KAAKlB,KAAL,CAAWiB,WAArD,EAAkEd,IAAlE,EAAwEK,aAAxE,CAApB;;AAEA,QAAIF,eAAJ,EAAqB;AACnB,YAAMS,WAAW,GAAG,MAAM,KAAKC,wBAAL,EAA1B;AACA,UAAID,WAAJ,EAAiBH,KAAK,CAACO,IAAN,CAAWJ,WAAX;AAClB;;AAED,WAAOH,KAAP;AACD;;AAEDQ,EAAAA,cAAc,GAAkB;AAAA;;AAC9B,QAAI,sBAAC,KAAKrB,SAAN,6CAAC,iBAAgBW,QAAjB,CAAJ,EAA+B,OAAO,IAAP;AAC/B,WAAO,KAAKV,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6BS,kBAA7B,EAAP;AACD;;AAEe,QAAVC,UAAU,CAACnB,IAAD,EAAe;AAAEoB,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAiD,EAAhE,EAAwF;AACtG,QAAI,CAAC,KAAKzB,SAAV,EAAqB;AACnB,YAAM,KAAI0B,oBAAJ,EAAc,kDAAd,CAAN;AACD;;AACD,UAAM,2BAAc,KAAK1B,SAAL,CAAeW,QAA7B,EAAuCP,IAAvC,CAAN;AACA,SAAKH,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6Bc,cAA7B,CAA4CvB,IAA5C;AACA,UAAMwB,aAAa,GAAG;AACpBC,MAAAA,SAAS,EAAEzB,IADS;AAEpB0B,MAAAA,UAAU,EAAEL,UAAU,IAAIrB,IAFN;AAGpBoB,MAAAA,WAAW,EAAEA,WAAW,IAAI,KAAKxB,SAAL,CAAe+B;AAHvB,KAAtB;AAKA,SAAK9B,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6BmB,SAA7B,CAAuCJ,aAAvC;AACA,UAAM,KAAK5B,SAAL,CAAeW,QAAf,CAAwBsB,SAAxB,EAAN;AAEA,WAAOL,aAAP;AACD;;AAEc,QAATI,SAAS,CACbE,SADa,EAEbV,WAFa,EAGbC,UAHa,EAIwD;AACrE,QAAI,CAAC,KAAKzB,SAAV,EAAqB;AACnB,YAAM,KAAI0B,oBAAJ,EAAc,iDAAd,CAAN;AACD;;AACD,UAAMS,IAAI,GAAG,MAAM,KAAKlC,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6BuB,QAA7B,CAAsCC,kBAAOC,IAAP,CAAYJ,SAAZ,CAAtC,CAAnB;;AACA,QAAI,CAACC,IAAL,EAAW;AACT,YAAM,KAAIT,oBAAJ,EAAc,gCAA+BQ,SAAU,GAAvD,CAAN;AACD;;AACD,UAAMK,eAAe,GAAG,KAAKtC,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6B2B,+BAA7B,CAA6DN,SAA7D,CAAxB;AACA,UAAMO,qBAAqB,GAAGF,eAAe,qBAAQA,eAAR,IAA4BG,SAAzE;AACA,UAAMC,cAAc,GAAG;AACrBd,MAAAA,SAAS,EAAEK,SADU;AAErBJ,MAAAA,UAAU,EAAEL,UAAU,KAAIc,eAAJ,aAAIA,eAAJ,uBAAIA,eAAe,CAAET,UAArB,CAAV,IAA6CI,SAFpC;AAGrBV,MAAAA;AAHqB,KAAvB;AAKA,SAAKvB,KAAL,CAAWiB,WAAX,CAAuBL,KAAvB,CAA6BmB,SAA7B,CAAuCW,cAAvC;AACA,UAAM,KAAK3C,SAAL,CAAeW,QAAf,CAAwBsB,SAAxB,EAAN;AAEA,WAAO;AAAEM,MAAAA,eAAe,EAAEE,qBAAnB;AAA0CE,MAAAA;AAA1C,KAAP;AACD;;AAEgB,QAAXC,WAAW,CAACC,SAAD,EAAsB;AAAExC,IAAAA,MAAF;AAAUyC,IAAAA;AAAV,GAAtB,EAAiG;AAAA;;AAChH,UAAMC,OAAO,GAAG,MAAM,gDAAY,KAAK/C,SAAjB,qDAAY,iBAAgBW,QAA5B,EAAsCkC,SAAtC,EAAiDxC,MAAjD,EAAyDyC,KAAzD,CAAtB;AACA,QAAI,KAAK9C,SAAT,EAAoB,MAAM,KAAKA,SAAL,CAAeW,QAAf,CAAwBsB,SAAxB,EAAN;AAEpB,WAAOc,OAAO,CAACC,WAAf;AACD;;AAEc,QAATC,SAAS,CAACC,QAAD,EAAmBC,OAAnB,EAA4E;AACzF,QAAI,CAAC,KAAKnD,SAAV,EAAqB;AACnB,YAAM,KAAI0B,oBAAJ,EAAc,iDAAd,CAAN;AACD;;AACD,UAAM0B,YAAY,GAAG,MAAM;AACzBlD,MAAAA,OAAO,EAAE,KAAKA,OADW;AAEzBS,MAAAA,QAAQ,EAAE,KAAKX,SAAL,CAAeW,QAFA;AAGzBuC,MAAAA;AAHyB,OAItBC,OAJsB,EAA3B;AAMA,UAAM,KAAKnD,SAAL,CAAeW,QAAf,CAAwBsB,SAAxB,EAAN;AACA,SAAKjC,SAAL,CAAeW,QAAf,CAAwB0C,MAAxB,CAA+BC,aAA/B,CAA6C,KAAKtD,SAAL,CAAeW,QAAf,CAAwB0C,MAAxB,CAA+BE,aAA5E;AACA,WAAOH,YAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACSI,EAAAA,OAAO,CAACC,MAAD,EAAmBC,WAAwB,GAAG,EAA9C,EAAkD;AAC9D,UAAMC,iBAAiB,GAAG,KAAIC,iCAAJ,EAAsB,KAAK5D,SAA3B,EAAsC,KAAKC,KAA3C,CAA1B;AACA,WAAO0D,iBAAiB,CAACE,QAAlB,CAA2BJ,MAA3B,EAAmCC,WAAnC,CAAP;AACD;;AAE2B,QAAtBI,sBAAsB,CAAC1D,IAAD,EAAqC;AAC/D,QAAI,CAACA,IAAL,EAAW,OAAO,EAAP;AAEX,UAAM,CAAC+B,IAAD,IAAS,MAAM,KAAKhC,QAAL,CAAc;AAAEC,MAAAA;AAAF,KAAd,CAArB;AACA,UAAM2D,cAAc,GAAG5B,IAAI,CAAC6B,UAA5B;AACA,UAAMC,IAAI,GAAG,KAAKjE,SAAL,IAAkB,KAAKC,KAApC;AACA,UAAMiE,gBAAgB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAC7BL,cAAc,CAACM,GAAf,CAAoBC,aAAD,IAAmB;AACpC,YAAMC,mBAAmB,GAAGD,aAAa,CAACE,EAAd,CAAiBC,aAAjB,CAA+BH,aAAa,CAACI,IAA7C,CAA5B;AACA,aAAOT,IAAI,CAACU,kBAAL,CAAwBJ,mBAAxB,CAAP;AACD,KAHD,CAD6B,CAA/B;AAMA,UAAMP,UAAU,GAAG,MAAMC,IAAI,CAACW,OAAL,CAAaV,gBAAb,CAAzB;AACA,WAAOF,UAAP;AACD;;AAEqC,QAAxB/C,wBAAwB,GAA6B;AAAA;;AACjE,UAAMN,QAAQ,uBAAG,KAAKX,SAAR,qDAAG,iBAAgBW,QAAjC;AACA,QAAIkE,MAAe,GAAG,EAAtB;;AACA,QAAI,CAAClE,QAAL,EAAe;AACb,YAAMmE,eAAe,GAAG,MAAM,KAAK7E,KAAL,CAAW8E,IAAX,EAA9B;AACAF,MAAAA,MAAM,GAAGC,eAAe,CAACE,MAAhB,CAAwBC,SAAD,IAAeA,SAAS,CAACP,IAAhD,EAAsDL,GAAtD,CAA2DY,SAAD,IAAeA,SAAS,CAACT,EAAV,CAAaU,OAAtF,CAAT;AACD,KAHD,MAGO;AACLL,MAAAA,MAAM,GAAGlE,QAAQ,CAAC0C,MAAT,CAAgB8B,yCAAhB,EAAT;AACD;;AAED,WAAO;AACL/E,MAAAA,IAAI,EAAEW,yBADD;AAELV,MAAAA,MAAM,EAAE,IAFH;AAGL2D,MAAAA,UAAU,EAAEa,MAAM,CAACR,GAAP,CAAYe,KAAD,KAAY;AAAEZ,QAAAA,EAAE,EAAEY,KAAN;AAAaV,QAAAA,IAAI,EAAEU,KAAK,CAACC;AAAzB,OAAZ,CAAX,CAHP;AAILC,MAAAA,QAAQ,EAAE;AAJL,KAAP;AAMD;;AAKoB,eAARC,QAAQ,CAAC,CAACC,GAAD,EAAMvF,KAAN,EAAaD,SAAb,EAAwByF,OAAxB,EAAiCC,SAAjC,EAA4CxF,OAA5C,CAAD,EAOlB;AACD,UAAMyF,SAAS,GAAG,IAAI7F,SAAJ,CAAcE,SAAd,EAAyBC,KAAzB,EAAgCC,OAAhC,CAAlB;AACA,UAAM0F,QAAQ,GAAG5F,SAAS,IAAIA,SAAS,CAACW,QAAV,CAAmBiF,QAAjD;AACA,UAAMC,SAAS,GAAG,KAAIC,mBAAJ,GAAlB;;AACA,QAAI,CAACF,QAAL,EAAe;AACb,YAAMG,OAAO,GAAG,KAAIC,eAAJ,EAAYL,SAAZ,EAAuB3F,SAAvB,EAAkCC,KAAlC,EAAyCyF,SAAS,CAACO,aAAV,EAAzC,CAAhB;AACAF,MAAAA,OAAO,CAACG,QAAR,GAAmB,CACjB,KAAIC,mBAAJ,EAAgBR,SAAhB,EAA2B3F,SAA3B,EAAsCC,KAAtC,CADiB,EAEjB4F,SAFiB,EAGjB,KAAIO,mBAAJ,EAAgBT,SAAhB,EAA2B3F,SAA3B,EAAsCC,KAAtC,CAHiB,EAIjB,KAAIoG,qBAAJ,EAAkBV,SAAlB,CAJiB,EAKjB,KAAIW,oBAAJ,EAAiBX,SAAjB,CALiB,EAMjB,KAAIY,qBAAJ,EAAkBZ,SAAlB,CANiB,EAOjB,KAAIa,oBAAJ,EAAiBb,SAAjB,CAPiB,EAQjB,KAAIc,2BAAJ,EAAgBzG,SAAhB,EAA2BC,KAA3B,CARiB,EASjB,KAAIyG,qBAAJ,EAAkBb,SAAlB,CATiB,CAAnB;AAWAL,MAAAA,GAAG,CAACmB,QAAJ,CAAaZ,OAAb,EAAsBF,SAAtB;AACAJ,MAAAA,OAAO,CAACkB,QAAR,CAAiB,2BAAYhB,SAAZ,CAAjB;AACD;;AACD,WAAOA,SAAP;AACD;;AAxLoB;;;gCAAV7F,S,WAyJI,E;gCAzJJA,S,kBA0JW,CAAC8G,gBAAD,EAAYC,oBAAZ,EAAyBC,4BAAzB,EAA0CC,wBAA1C,EAAyDC,4BAAzD,EAA0EC,wBAA1E,C;gCA1JXnH,S,aA2JMoH,kB;;AAgCnBC,qBAAYC,UAAZ,CAAuBtH,SAAvB;;eAEeA,S","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ScopeMain, ScopeAspect } from '@teambit/scope';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport getRemoteByName from '@teambit/legacy/dist/remotes/get-remote-by-name';\nimport { LaneDiffCmd, LaneDiffGenerator } from '@teambit/lanes.modules.diff';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport LaneId from '@teambit/legacy/dist/lane-id/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport createNewLane from '@teambit/legacy/dist/consumer/lanes/create-lane';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport { MergeStrategy, ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { TrackLane } from '@teambit/legacy/dist/scope/scope-json';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport { Component } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { MergingMain, MergingAspect } from '@teambit/merging';\nimport { LanesAspect } from './lanes.aspect';\nimport {\n LaneCmd,\n LaneCreateCmd,\n LaneImportCmd,\n LaneListCmd,\n LaneMergeCmd,\n LaneRemoveCmd,\n LaneShowCmd,\n LaneTrackCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\n\nexport type LaneResults = {\n lanes: LaneData[];\n currentLane?: string | null;\n};\n\nexport type MergeLaneOptions = {\n remoteName: string | null;\n mergeStrategy: MergeStrategy;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n};\n\nexport type CreateLaneOptions = {\n remoteScope?: string; // default to the defaultScope in workspace.jsonc\n remoteName?: string; // default to the local lane\n};\n\nexport class LanesMain {\n constructor(private workspace: Workspace | undefined, private scope: ScopeMain, private merging: MergingMain) {}\n\n async getLanes({\n name,\n remote,\n merged,\n showDefaultLane,\n notMerged,\n }: {\n name?: string;\n remote?: string;\n merged?: boolean;\n showDefaultLane?: boolean;\n notMerged?: boolean;\n }): Promise<LaneData[]> {\n const showMergeData = Boolean(merged || notMerged);\n const consumer = this.workspace?.consumer;\n if (remote) {\n const remoteObj = await getRemoteByName(remote, consumer);\n const lanes = await remoteObj.listLanes(name, showMergeData);\n return lanes;\n }\n\n if (name === DEFAULT_LANE) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n return defaultLane ? [defaultLane] : [];\n }\n\n const lanes = await this.scope.legacyScope.lanes.getLanesData(this.scope.legacyScope, name, showMergeData);\n\n if (showDefaultLane) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n if (defaultLane) lanes.push(defaultLane);\n }\n\n return lanes;\n }\n\n getCurrentLane(): string | null {\n if (!this.workspace?.consumer) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneName();\n }\n\n async createLane(name: string, { remoteScope, remoteName }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n await createNewLane(this.workspace.consumer, name);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: name,\n remoteLane: remoteName || name,\n remoteScope: remoteScope || this.workspace.defaultScope,\n };\n this.scope.legacyScope.lanes.trackLane(trackLaneData);\n await this.workspace.consumer.onDestroy();\n\n return trackLaneData;\n }\n\n async trackLane(\n localName: string,\n remoteScope: string,\n remoteName?: string\n ): Promise<{ beforeTrackData?: TrackLane; afterTrackData: TrackLane }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane outside of Bit workspace`);\n }\n const lane = await this.scope.legacyScope.lanes.loadLane(LaneId.from(localName));\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${localName}\"`);\n }\n const beforeTrackData = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(localName);\n const beforeTrackDataCloned = beforeTrackData ? { ...beforeTrackData } : undefined;\n const afterTrackData = {\n localLane: localName,\n remoteLane: remoteName || beforeTrackData?.remoteLane || localName,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n await this.workspace.consumer.onDestroy();\n\n return { beforeTrackData: beforeTrackDataCloned, afterTrackData };\n }\n\n async removeLanes(laneNames: string[], { remote, force }: { remote: boolean; force: boolean }): Promise<string[]> {\n const results = await removeLanes(this.workspace?.consumer, laneNames, remote, force);\n if (this.workspace) await this.workspace.consumer.onDestroy();\n\n return results.laneResults;\n }\n\n async mergeLane(laneName: string, options: MergeLaneOptions): Promise<ApplyVersionResults> {\n if (!this.workspace) {\n throw new BitError(`unable to merge a lane outside of Bit workspace`);\n }\n const mergeResults = await mergeLanes({\n merging: this.merging,\n consumer: this.workspace.consumer,\n laneName,\n ...options,\n });\n await this.workspace.consumer.onDestroy();\n this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);\n return mergeResults;\n }\n\n /**\n * the values array may include zero to two values and will be processed as following:\n * [] => diff between the current lane and default lane. (only inside workspace).\n * [to] => diff between the current lane (or default-lane when in scope) and \"to\" lane.\n * [from, to] => diff between \"from\" lane and \"to\" lane.\n */\n public getDiff(values: string[], diffOptions: DiffOptions = {}) {\n const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);\n return laneDiffGenerator.generate(values, diffOptions);\n }\n\n async getLaneComponentModels(name: string): Promise<Component[]> {\n if (!name) return [];\n\n const [lane] = await this.getLanes({ name });\n const laneComponents = lane.components;\n const host = this.workspace || this.scope;\n const laneComponentIds = await Promise.all(\n laneComponents.map((laneComponent) => {\n const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);\n return host.resolveComponentId(legacyIdWithVersion);\n })\n );\n const components = await host.getMany(laneComponentIds);\n return components;\n }\n\n private async getLaneDataOfDefaultLane(): Promise<LaneData | null> {\n const consumer = this.workspace?.consumer;\n let bitIds: BitId[] = [];\n if (!consumer) {\n const scopeComponents = await this.scope.list();\n bitIds = scopeComponents.filter((component) => component.head).map((component) => component.id._legacy);\n } else {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n }\n\n return {\n name: DEFAULT_LANE,\n remote: null,\n components: bitIds.map((bitId) => ({ id: bitId, head: bitId.version as string })),\n isMerged: null,\n };\n }\n\n static slots = [];\n static dependencies = [CLIAspect, ScopeAspect, WorkspaceAspect, GraphqlAspect, CommunityAspect, MergingAspect];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain\n ]) {\n const lanesMain = new LanesMain(workspace, scope, merging);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd();\n if (!isLegacy) {\n const laneCmd = new LaneCmd(lanesMain, workspace, scope, community.getDocsDomain());\n laneCmd.commands = [\n new LaneListCmd(lanesMain, workspace, scope),\n switchCmd,\n new LaneShowCmd(lanesMain, workspace, scope),\n new LaneCreateCmd(lanesMain),\n new LaneMergeCmd(lanesMain),\n new LaneRemoveCmd(lanesMain),\n new LaneTrackCmd(lanesMain),\n new LaneDiffCmd(workspace, scope),\n new LaneImportCmd(switchCmd),\n ];\n cli.register(laneCmd, switchCmd);\n graphql.register(lanesSchema(lanesMain));\n }\n return lanesMain;\n }\n}\n\nLanesAspect.addRuntime(LanesMain);\n\nexport default LanesMain;\n"]}
|
1
|
+
{"version":3,"sources":["lanes.main.runtime.ts"],"names":["LanesMain","constructor","workspace","scope","merging","componentAspect","logger","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","createLane","remoteScope","remoteName","BitError","setCurrentLane","trackLaneData","localLane","remoteLane","defaultScope","trackLane","onDestroy","localName","lane","loadLane","LaneId","from","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","removeLanes","laneNames","force","results","laneResults","mergeLane","laneName","options","bitMap","syncWithLanes","workspaceLane","switchLanes","newLaneName","merge","getAll","skipDependencyInstallation","mergeStrategy","mergeOptions","Object","keys","MergeOptions","includes","join","switchProps","existingOnWorkspaceOnly","checkoutProps","skipNpmInstall","verbose","ignorePackageJson","ignoreDist","isLane","promptMergeOptions","writeConfig","reset","all","LaneSwitcher","switch","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","components","host","getHost","laneComponentIds","Promise","map","laneComponent","legacyIdWithVersion","id","changeVersion","head","resolveComponentId","getMany","getLaneReadmeComponent","laneReadmeComponent","readmeComponent","laneReadmeComponentId","get","removeLaneReadme","currentLaneName","result","message","laneId","readmeComponentId","existingLaneConfig","getSpecificComponentConfig","LanesAspect","remoteLaneIdStr","remoteLaneId","toString","readme","removeSpecificComponentConfig","addSpecificComponentConfig","setReadmeComponent","saveLane","write","addLaneReadme","readmeComponentIdStr","readmeComponentBitId","_legacy","bitIds","scopeComponents","list","filter","component","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","loggerMain","createLogger","lanesMain","isLegacy","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneTrackCmd","LaneDiffCmd","LaneAddReadmeCmd","LaneRemoveReadmeCmd","LaneImportCmd","register","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","ComponentAspect","LoggerAspect","MainRuntime","addRuntime"],"mappings":"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","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ScopeMain, ScopeAspect } from '@teambit/scope';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport getRemoteByName from '@teambit/legacy/dist/remotes/get-remote-by-name';\nimport { LaneDiffCmd, LaneDiffGenerator } from '@teambit/lanes.modules.diff';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport LaneId from '@teambit/legacy/dist/lane-id/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport createNewLane from '@teambit/legacy/dist/consumer/lanes/create-lane';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport {\n MergeStrategy,\n ApplyVersionResults,\n MergeOptions,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { TrackLane } from '@teambit/legacy/dist/scope/scope-json';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { MergingMain, MergingAspect } from '@teambit/merging';\nimport { LanesAspect } from './lanes.aspect';\nimport {\n LaneCmd,\n LaneCreateCmd,\n LaneImportCmd,\n LaneListCmd,\n LaneMergeCmd,\n LaneRemoveCmd,\n LaneShowCmd,\n LaneTrackCmd,\n LaneAddReadmeCmd,\n LaneRemoveReadmeCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\nimport { LaneSwitcher } from './switch-lanes';\n\nexport type LaneResults = {\n lanes: LaneData[];\n currentLane?: string | null;\n};\n\nexport type MergeLaneOptions = {\n remoteName: string | null;\n mergeStrategy: MergeStrategy;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme: boolean;\n};\n\nexport type CreateLaneOptions = {\n remoteScope?: string; // default to the defaultScope in workspace.jsonc\n remoteName?: string; // default to the local lane\n};\n\nexport type SwitchLaneOptions = {\n newLaneName?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n override?: boolean;\n};\n\nexport class LanesMain {\n constructor(\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private merging: MergingMain,\n private componentAspect: ComponentMain,\n private logger: Logger\n ) {}\n\n async getLanes({\n name,\n remote,\n merged,\n showDefaultLane,\n notMerged,\n }: {\n name?: string;\n remote?: string;\n merged?: boolean;\n showDefaultLane?: boolean;\n notMerged?: boolean;\n }): Promise<LaneData[]> {\n const showMergeData = Boolean(merged || notMerged);\n const consumer = this.workspace?.consumer;\n if (remote) {\n const remoteObj = await getRemoteByName(remote, consumer);\n const lanes = await remoteObj.listLanes(name, showMergeData);\n return lanes;\n }\n\n if (name === DEFAULT_LANE) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n return defaultLane ? [defaultLane] : [];\n }\n\n const lanes = await this.scope.legacyScope.lanes.getLanesData(this.scope.legacyScope, name, showMergeData);\n\n if (showDefaultLane) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n if (defaultLane) lanes.push(defaultLane);\n }\n\n return lanes;\n }\n\n getCurrentLane(): string | null {\n if (!this.workspace?.consumer) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneName();\n }\n\n async createLane(name: string, { remoteScope, remoteName }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n await createNewLane(this.workspace.consumer, name);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: name,\n remoteLane: remoteName || name,\n remoteScope: remoteScope || this.workspace.defaultScope,\n };\n this.scope.legacyScope.lanes.trackLane(trackLaneData);\n await this.workspace.consumer.onDestroy();\n\n return trackLaneData;\n }\n\n async trackLane(\n localName: string,\n remoteScope: string,\n remoteName?: string\n ): Promise<{ beforeTrackData?: TrackLane; afterTrackData: TrackLane }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane outside of Bit workspace`);\n }\n const lane = await this.scope.legacyScope.lanes.loadLane(LaneId.from(localName));\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${localName}\"`);\n }\n const beforeTrackData = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(localName);\n const beforeTrackDataCloned = beforeTrackData ? { ...beforeTrackData } : undefined;\n const afterTrackData = {\n localLane: localName,\n remoteLane: remoteName || beforeTrackData?.remoteLane || localName,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n await this.workspace.consumer.onDestroy();\n\n return { beforeTrackData: beforeTrackDataCloned, afterTrackData };\n }\n\n async removeLanes(laneNames: string[], { remote, force }: { remote: boolean; force: boolean }): Promise<string[]> {\n const results = await removeLanes(this.workspace?.consumer, laneNames, remote, force);\n if (this.workspace) await this.workspace.consumer.onDestroy();\n\n return results.laneResults;\n }\n\n async mergeLane(\n laneName: string,\n options: MergeLaneOptions\n ): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n if (!this.workspace) {\n throw new BitError(`unable to merge a lane outside of Bit workspace`);\n }\n const results = await mergeLanes({\n merging: this.merging,\n consumer: this.workspace.consumer,\n laneName,\n ...options,\n });\n\n await this.workspace.consumer.onDestroy();\n this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);\n return results;\n }\n\n /**\n * switch to a different local or remote lane.\n * switching to a remote lane also imports and writes the components of that remote lane.\n * by default, only the components existing on the workspace will be imported from that lane, unless the \"getAll\"\n * flag is true.\n */\n async switchLanes(\n laneName: string,\n { newLaneName, merge, getAll = false, skipDependencyInstallation = false }: SwitchLaneOptions\n ) {\n if (!this.workspace) {\n throw new BitError(`unable to switch lanes outside of Bit workspace`);\n }\n let mergeStrategy;\n if (merge && typeof merge === 'string') {\n const mergeOptions = Object.keys(MergeOptions);\n if (!mergeOptions.includes(merge)) {\n throw new BitError(`merge must be one of the following: ${mergeOptions.join(', ')}`);\n }\n mergeStrategy = merge;\n }\n\n const switchProps = {\n laneName,\n existingOnWorkspaceOnly: !getAll,\n newLaneName,\n };\n const checkoutProps = {\n mergeStrategy,\n skipNpmInstall: skipDependencyInstallation,\n verbose: false, // not relevant in Harmony\n ignorePackageJson: true, // not relevant in Harmony\n ignoreDist: true, // not relevant in Harmony\n isLane: true,\n promptMergeOptions: false,\n writeConfig: false,\n reset: false,\n all: false,\n };\n return new LaneSwitcher(this.workspace, this.logger, switchProps, checkoutProps).switch();\n }\n\n /**\n * the values array may include zero to two values and will be processed as following:\n * [] => diff between the current lane and default lane. (only inside workspace).\n * [to] => diff between the current lane (or default-lane when in scope) and \"to\" lane.\n * [from, to] => diff between \"from\" lane and \"to\" lane.\n */\n public getDiff(values: string[], diffOptions: DiffOptions = {}) {\n const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);\n return laneDiffGenerator.generate(values, diffOptions);\n }\n\n async getLaneComponentModels(name: string): Promise<Component[]> {\n if (!name) return [];\n\n const [lane] = await this.getLanes({ name });\n const laneComponents = lane.components;\n const host = this.componentAspect.getHost();\n const laneComponentIds = await Promise.all(\n laneComponents.map((laneComponent) => {\n const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);\n return host.resolveComponentId(legacyIdWithVersion);\n })\n );\n const components = await host.getMany(laneComponentIds);\n return components;\n }\n\n async getLaneReadmeComponent(name: string): Promise<Component | undefined> {\n if (!name) return undefined;\n\n const [lane] = await this.getLanes({ name });\n const laneReadmeComponent = lane.readmeComponent;\n if (!laneReadmeComponent) return undefined;\n const host = this.componentAspect.getHost();\n const laneReadmeComponentId = await host.resolveComponentId(\n laneReadmeComponent.id.changeVersion(laneReadmeComponent.head)\n );\n const readmeComponent = await host.get(laneReadmeComponentId);\n return readmeComponent;\n }\n\n async removeLaneReadme(laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError('unable to remove the lane readme component outside of Bit workspace');\n }\n const currentLaneName = this.getCurrentLane();\n\n if (!laneName && !currentLaneName) {\n return {\n result: false,\n message: 'unable to remove the lane readme component. Either pass a laneName or switch to a lane',\n };\n }\n\n const laneId: LaneId = (laneName && LaneId.from(laneName)) || LaneId.from(currentLaneName as string);\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane?.readmeComponent) {\n throw new BitError(`there is no readme component added to the lane ${laneName || currentLaneName}`);\n }\n\n const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = (lane.remoteLaneId || LaneId.from(laneId.name, lane.scope)).toString();\n\n if (existingLaneConfig.readme) {\n delete existingLaneConfig.readme[remoteLaneIdStr];\n await this.workspace.removeSpecificComponentConfig(readmeComponentId, LanesAspect.id, false);\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, existingLaneConfig);\n }\n\n lane.setReadmeComponent(undefined);\n await scope.lanes.saveLane(lane);\n await this.workspace.bitMap.write();\n\n return { result: true };\n }\n\n async addLaneReadme(readmeComponentIdStr: string, laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane readme component outside of Bit workspace`);\n }\n const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);\n\n const currentLaneName = this.getCurrentLane();\n\n const readmeComponentBitId = readmeComponentId._legacy;\n\n const laneId: LaneId = (laneName && LaneId.from(laneName)) || LaneId.from(currentLaneName as string);\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane) {\n return { result: false, message: `cannot find lane ${laneName}` };\n }\n\n lane.setReadmeComponent(readmeComponentBitId);\n await scope.lanes.saveLane(lane);\n\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = (lane.remoteLaneId || LaneId.from(laneId.name, lane.scope)).toString();\n\n if (existingLaneConfig.readme) {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n ...existingLaneConfig.readme,\n [remoteLaneIdStr]: true,\n },\n });\n } else {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n [remoteLaneIdStr]: true,\n },\n });\n }\n await this.workspace.bitMap.write();\n return { result: true };\n }\n\n private async getLaneDataOfDefaultLane(): Promise<LaneData | null> {\n const consumer = this.workspace?.consumer;\n let bitIds: BitId[] = [];\n if (!consumer) {\n const scopeComponents = await this.scope.list();\n bitIds = scopeComponents.filter((component) => component.head).map((component) => component.id._legacy);\n } else {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n }\n\n return {\n name: DEFAULT_LANE,\n remote: null,\n components: bitIds.map((bitId) => ({ id: bitId, head: bitId.version as string })),\n isMerged: null,\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n ScopeAspect,\n WorkspaceAspect,\n GraphqlAspect,\n CommunityAspect,\n MergingAspect,\n ComponentAspect,\n LoggerAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain,\n ComponentMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(LanesAspect.id);\n const lanesMain = new LanesMain(workspace, scope, merging, component, logger);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd(lanesMain);\n if (!isLegacy) {\n const laneCmd = new LaneCmd(lanesMain, workspace, scope, community.getDocsDomain());\n laneCmd.commands = [\n new LaneListCmd(lanesMain, workspace, scope),\n switchCmd,\n new LaneShowCmd(lanesMain, workspace, scope),\n new LaneCreateCmd(lanesMain),\n new LaneMergeCmd(lanesMain),\n new LaneRemoveCmd(lanesMain),\n new LaneTrackCmd(lanesMain),\n new LaneDiffCmd(workspace, scope),\n new LaneAddReadmeCmd(lanesMain),\n new LaneRemoveReadmeCmd(lanesMain),\n new LaneImportCmd(switchCmd),\n ];\n cli.register(laneCmd, switchCmd);\n graphql.register(lanesSchema(lanesMain));\n }\n return lanesMain;\n }\n}\n\nLanesAspect.addRuntime(LanesMain);\n\nexport default LanesMain;\n"]}
|
package/dist/merge-lanes.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Consumer } from '@teambit/legacy/dist/consumer';
|
2
2
|
import { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
|
3
3
|
import { MergingMain } from '@teambit/merging';
|
4
|
-
export declare function mergeLanes({ merging, consumer, mergeStrategy, laneName, remoteName, noSnap, snapMessage, existingOnWorkspaceOnly, build, }: {
|
4
|
+
export declare function mergeLanes({ merging, consumer, mergeStrategy, laneName, remoteName, noSnap, snapMessage, existingOnWorkspaceOnly, build, keepReadme, }: {
|
5
5
|
merging: MergingMain;
|
6
6
|
consumer: Consumer;
|
7
7
|
mergeStrategy: MergeStrategy;
|
@@ -11,4 +11,8 @@ export declare function mergeLanes({ merging, consumer, mergeStrategy, laneName,
|
|
11
11
|
snapMessage: string;
|
12
12
|
existingOnWorkspaceOnly: boolean;
|
13
13
|
build: boolean;
|
14
|
-
|
14
|
+
keepReadme?: boolean;
|
15
|
+
}): Promise<{
|
16
|
+
mergeResults: ApplyVersionResults;
|
17
|
+
deleteResults: any;
|
18
|
+
}>;
|
package/dist/merge-lanes.js
CHANGED
@@ -49,6 +49,16 @@ function _repositories() {
|
|
49
49
|
return data;
|
50
50
|
}
|
51
51
|
|
52
|
+
function _consumer() {
|
53
|
+
const data = require("@teambit/legacy/dist/api/consumer");
|
54
|
+
|
55
|
+
_consumer = function () {
|
56
|
+
return data;
|
57
|
+
};
|
58
|
+
|
59
|
+
return data;
|
60
|
+
}
|
61
|
+
|
52
62
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
53
63
|
|
54
64
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -62,7 +72,8 @@ async function mergeLanes({
|
|
62
72
|
noSnap,
|
63
73
|
snapMessage,
|
64
74
|
existingOnWorkspaceOnly,
|
65
|
-
build
|
75
|
+
build,
|
76
|
+
keepReadme
|
66
77
|
}) {
|
67
78
|
const currentLaneId = consumer.getCurrentLaneId();
|
68
79
|
|
@@ -104,7 +115,7 @@ async function mergeLanes({
|
|
104
115
|
}
|
105
116
|
|
106
117
|
const allComponentsStatus = await getAllComponentsStatus();
|
107
|
-
|
118
|
+
const mergeResults = await merging.mergeSnaps({
|
108
119
|
mergeStrategy,
|
109
120
|
allComponentsStatus,
|
110
121
|
remoteName,
|
@@ -114,6 +125,35 @@ async function mergeLanes({
|
|
114
125
|
snapMessage,
|
115
126
|
build
|
116
127
|
});
|
128
|
+
const mergedSuccessfully = !mergeResults.failedComponents || mergeResults.failedComponents.length === 0 || mergeResults.failedComponents.every(failedComponent => failedComponent.unchangedLegitimately);
|
129
|
+
let deleteResults = {};
|
130
|
+
|
131
|
+
if (!keepReadme && otherLane && otherLane.readmeComponent && mergedSuccessfully) {
|
132
|
+
var _otherLane$readmeComp, _otherLane$readmeComp2;
|
133
|
+
|
134
|
+
await consumer.bitMap.syncWithLanes(consumer.bitMap.workspaceLane);
|
135
|
+
const readmeComponentId = [otherLane.readmeComponent.id.changeVersion((_otherLane$readmeComp = otherLane.readmeComponent) === null || _otherLane$readmeComp === void 0 ? void 0 : (_otherLane$readmeComp2 = _otherLane$readmeComp.head) === null || _otherLane$readmeComp2 === void 0 ? void 0 : _otherLane$readmeComp2.hash).toString()];
|
136
|
+
deleteResults = await (0, _consumer().remove)({
|
137
|
+
ids: readmeComponentId,
|
138
|
+
force: false,
|
139
|
+
remote: false,
|
140
|
+
track: false,
|
141
|
+
deleteFiles: true
|
142
|
+
});
|
143
|
+
} else if (!otherLane) {
|
144
|
+
deleteResults = {
|
145
|
+
readmeResult: `missing lane ${laneName}`
|
146
|
+
};
|
147
|
+
} else if (!otherLane.readmeComponent) {
|
148
|
+
deleteResults = {
|
149
|
+
readmeResult: `lane ${otherLane.name} doesn't have a readme component`
|
150
|
+
};
|
151
|
+
}
|
152
|
+
|
153
|
+
return {
|
154
|
+
mergeResults,
|
155
|
+
deleteResults
|
156
|
+
};
|
117
157
|
|
118
158
|
async function getAllComponentsStatus() {
|
119
159
|
const tmp = new (_repositories().Tmp)(consumer.scope);
|
package/dist/merge-lanes.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["merge-lanes.ts"],"names":["mergeLanes","merging","consumer","mergeStrategy","laneName","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","currentLaneId","getCurrentLaneId","name","BitError","localLaneId","localLane","isDefault","scope","loadLane","laneId","LaneId","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","RemoteLaneId","from","objects","remoteLanes","getRemoteLane","length","getRemoteBitIds","components","map","c","changeVersion","head","toString","allComponentsStatus","getAllComponentsStatus","mergeSnaps","tmp","Tmp","componentsStatus","Promise","all","bitId","getComponentMergeStatus","clear","err"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;
|
1
|
+
{"version":3,"sources":["merge-lanes.ts"],"names":["mergeLanes","merging","consumer","mergeStrategy","laneName","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","keepReadme","currentLaneId","getCurrentLaneId","name","BitError","localLaneId","localLane","isDefault","scope","loadLane","laneId","LaneId","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","RemoteLaneId","from","objects","remoteLanes","getRemoteLane","length","getRemoteBitIds","components","map","c","changeVersion","head","toString","allComponentsStatus","getAllComponentsStatus","mergeResults","mergeSnaps","mergedSuccessfully","failedComponents","every","failedComponent","unchangedLegitimately","deleteResults","readmeComponent","syncWithLanes","workspaceLane","readmeComponentId","hash","ids","force","remote","track","deleteFiles","readmeResult","tmp","Tmp","componentsStatus","Promise","all","bitId","getComponentMergeStatus","clear","err"],"mappings":"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","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport LaneId, { RemoteLaneId } from '@teambit/legacy/dist/lane-id/lane-id';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport { MergingMain } from '@teambit/merging';\nimport { remove } from '@teambit/legacy/dist/api/consumer';\n\nexport async function mergeLanes({\n merging,\n consumer,\n mergeStrategy,\n laneName,\n remoteName,\n noSnap,\n snapMessage,\n existingOnWorkspaceOnly,\n build,\n keepReadme,\n}: {\n merging: MergingMain;\n consumer: Consumer;\n mergeStrategy: MergeStrategy;\n laneName: string;\n remoteName: string | null;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme?: boolean;\n}): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n const currentLaneId = consumer.getCurrentLaneId();\n if (!remoteName && laneName === currentLaneId.name) {\n throw new BitError(`unable to switch to lane \"${laneName}\", you're already checked out to this lane`);\n }\n const localLaneId = consumer.getCurrentLaneId();\n const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(localLaneId);\n const laneId = new LaneId({ name: laneName });\n let bitIds: BitId[];\n let otherLane: Lane | null | undefined;\n let remoteLane;\n let otherLaneName: string;\n const isDefaultLane = laneName === DEFAULT_LANE;\n\n if (isDefaultLane) {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane().filter((id) => id.hasVersion());\n otherLaneName = DEFAULT_LANE;\n } else if (remoteName) {\n const remoteLaneId = RemoteLaneId.from(laneId.name, remoteName);\n remoteLane = await consumer.scope.objects.remoteLanes.getRemoteLane(remoteLaneId);\n if (!remoteLane.length) {\n throw new BitError(\n `unable to switch to \"${laneName}\" of \"${remoteName}\", the remote lane was not found or not fetched locally`\n );\n }\n bitIds = await consumer.scope.objects.remoteLanes.getRemoteBitIds(remoteLaneId);\n otherLaneName = `${remoteName}/${laneId.name}`;\n } else {\n otherLane = await consumer.scope.loadLane(laneId);\n if (!otherLane) throw new BitError(`unable to switch to \"${laneName}\", the lane was not found`);\n bitIds = otherLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n otherLaneName = laneId.name;\n }\n\n const allComponentsStatus = await getAllComponentsStatus();\n\n const mergeResults = await merging.mergeSnaps({\n mergeStrategy,\n allComponentsStatus,\n remoteName,\n laneId,\n localLane,\n noSnap,\n snapMessage,\n build,\n });\n\n const mergedSuccessfully =\n !mergeResults.failedComponents ||\n mergeResults.failedComponents.length === 0 ||\n mergeResults.failedComponents.every((failedComponent) => failedComponent.unchangedLegitimately);\n\n let deleteResults = {};\n\n if (!keepReadme && otherLane && otherLane.readmeComponent && mergedSuccessfully) {\n await consumer.bitMap.syncWithLanes(consumer.bitMap.workspaceLane);\n\n const readmeComponentId = [\n otherLane.readmeComponent.id.changeVersion(otherLane.readmeComponent?.head?.hash).toString(),\n ];\n\n deleteResults = await remove({\n ids: readmeComponentId,\n force: false,\n remote: false,\n track: false,\n deleteFiles: true,\n });\n } else if (!otherLane) {\n deleteResults = { readmeResult: `missing lane ${laneName}` };\n } else if (!otherLane.readmeComponent) {\n deleteResults = { readmeResult: `lane ${otherLane.name} doesn't have a readme component` };\n }\n\n return { mergeResults, deleteResults };\n\n async function getAllComponentsStatus() {\n const tmp = new Tmp(consumer.scope);\n try {\n const componentsStatus = await Promise.all(\n bitIds.map((bitId) => merging.getComponentMergeStatus(bitId, localLane, otherLaneName, existingOnWorkspaceOnly))\n );\n await tmp.clear();\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n}\n"]}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { BitId } from '@teambit/legacy-bit-id';
|
2
|
+
import { LaneComponent } from '@teambit/legacy/dist/scope/models/lane';
|
3
|
+
import { CheckoutProps } from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';
|
4
|
+
import { ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
|
5
|
+
import { Workspace } from '@teambit/workspace';
|
6
|
+
import { Logger } from '@teambit/logger';
|
7
|
+
export declare type SwitchProps = {
|
8
|
+
laneName: string;
|
9
|
+
remoteScope?: string;
|
10
|
+
ids?: BitId[];
|
11
|
+
existingOnWorkspaceOnly: boolean;
|
12
|
+
localLaneName?: string;
|
13
|
+
remoteLaneScope?: string;
|
14
|
+
remoteLaneName?: string;
|
15
|
+
remoteLaneComponents?: LaneComponent[];
|
16
|
+
localTrackedLane?: string;
|
17
|
+
newLaneName?: string;
|
18
|
+
};
|
19
|
+
export declare class LaneSwitcher {
|
20
|
+
private workspace;
|
21
|
+
private logger;
|
22
|
+
private switchProps;
|
23
|
+
private checkoutProps;
|
24
|
+
private consumer;
|
25
|
+
constructor(workspace: Workspace, logger: Logger, switchProps: SwitchProps, checkoutProps: CheckoutProps);
|
26
|
+
switch(): Promise<ApplyVersionResults>;
|
27
|
+
private populateSwitchProps;
|
28
|
+
private populatePropsAccordingToRemoteLane;
|
29
|
+
private populatePropsAccordingToLocalLane;
|
30
|
+
private getAllComponentsStatus;
|
31
|
+
private saveLanesData;
|
32
|
+
}
|