@teambit/lanes.modules.diff 0.0.162 → 0.0.165

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/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { LaneDiffCmd } from './lane-diff.cmd';
2
- export { LaneDiffGenerator } from './lane-diff-generator';
2
+ export { LaneDiffGenerator, LaneDiffResults } from './lane-diff-generator';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AACpB,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AACpB,6DAA2E;AAAlE,wHAAA,iBAAiB,OAAA"}
@@ -2,10 +2,24 @@ import { ScopeMain } from '@teambit/scope';
2
2
  import { Workspace } from '@teambit/workspace';
3
3
  import { BitId } from '@teambit/legacy-bit-id';
4
4
  import { DiffResults, DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';
5
+ declare type Failure = {
6
+ id: BitId;
7
+ msg: string;
8
+ };
9
+ export declare type LaneDiffResults = {
10
+ newCompsFrom: string[];
11
+ newCompsTo: string[];
12
+ compsWithDiff: DiffResults[];
13
+ compsWithNoChanges: string[];
14
+ toLaneName: string;
15
+ fromLaneName: string;
16
+ failures: Failure[];
17
+ };
5
18
  export declare class LaneDiffGenerator {
6
19
  private workspace;
7
20
  private scope;
8
- private newComps;
21
+ private newCompsFrom;
22
+ private newCompsTo;
9
23
  private compsWithDiff;
10
24
  private compsWithNoChanges;
11
25
  private fromLaneData;
@@ -18,18 +32,10 @@ export declare class LaneDiffGenerator {
18
32
  * [to] => diff between the current lane (or default-lane when in scope) and "to" lane.
19
33
  * [from, to] => diff between "from" lane and "to" lane.
20
34
  */
21
- generate(values: string[], diffOptions?: DiffOptions, pattern?: string): Promise<{
22
- newComps: string[];
23
- compsWithDiff: DiffResults[];
24
- compsWithNoChanges: string[];
25
- toLaneName: string;
26
- failures: {
27
- id: BitId;
28
- msg: string;
29
- }[];
30
- }>;
35
+ generate(values: string[], diffOptions?: DiffOptions, pattern?: string): Promise<LaneDiffResults>;
31
36
  private componentDiff;
32
37
  private getLaneNames;
33
38
  private getDefaultLaneData;
34
39
  private mapToLaneData;
35
40
  }
41
+ export {};
@@ -13,11 +13,13 @@ exports.LaneDiffGenerator = void 0;
13
13
  const components_diff_1 = require("@teambit/legacy/dist/consumer/component-ops/components-diff");
14
14
  const lane_id_1 = require("@teambit/lane-id");
15
15
  const bit_id_1 = require("@teambit/legacy/dist/bit-id");
16
+ const bit_error_1 = require("@teambit/bit-error");
16
17
  class LaneDiffGenerator {
17
18
  constructor(workspace, scope) {
18
19
  this.workspace = workspace;
19
20
  this.scope = scope;
20
- this.newComps = [];
21
+ this.newCompsFrom = [];
22
+ this.newCompsTo = [];
21
23
  this.compsWithDiff = [];
22
24
  this.compsWithNoChanges = [];
23
25
  this.failures = [];
@@ -29,28 +31,17 @@ class LaneDiffGenerator {
29
31
  * [from, to] => diff between "from" lane and "to" lane.
30
32
  */
31
33
  generate(values, diffOptions = {}, pattern) {
32
- var _a;
33
34
  return __awaiter(this, void 0, void 0, function* () {
34
35
  const { fromLaneName, toLaneName } = this.getLaneNames(values);
35
36
  if (fromLaneName === toLaneName) {
36
37
  throw new Error(`unable to run diff between "${fromLaneName}" and "${toLaneName}", they're the same lane`);
37
38
  }
38
39
  const legacyScope = this.scope.legacyScope;
39
- const fromLaneId = fromLaneName ? yield legacyScope.lanes.parseLaneIdFromString(fromLaneName) : null;
40
- const toLaneId = toLaneName ? yield legacyScope.lanes.parseLaneIdFromString(toLaneName) : null;
41
- const isFromOrToDefault = (fromLaneId === null || fromLaneId === void 0 ? void 0 : fromLaneId.isDefault()) || (toLaneId === null || toLaneId === void 0 ? void 0 : toLaneId.isDefault());
42
- if (!isFromOrToDefault && !toLaneId) {
43
- throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
44
- }
45
- else if (!isFromOrToDefault && toLaneId && fromLaneId) {
46
- const toLane = yield legacyScope.lanes.loadLane(toLaneId);
47
- if (!toLane)
48
- throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
49
- const fromLane = fromLaneId ? yield legacyScope.lanes.loadLane(fromLaneId) : null;
50
- this.toLaneData = yield this.mapToLaneData(toLane);
51
- this.fromLaneData = fromLane ? yield this.mapToLaneData(fromLane) : null;
52
- }
53
- else if ((fromLaneId === null || fromLaneId === void 0 ? void 0 : fromLaneId.isDefault()) && toLaneId) {
40
+ const fromLaneId = yield legacyScope.lanes.parseLaneIdFromString(fromLaneName);
41
+ const toLaneId = yield legacyScope.lanes.parseLaneIdFromString(toLaneName);
42
+ if (fromLaneId.isDefault()) {
43
+ if (toLaneId.isDefault())
44
+ throw new Error(`unable to diff between main and main, they're the same lane`);
54
45
  const toLane = yield legacyScope.lanes.loadLane(toLaneId);
55
46
  if (!toLane)
56
47
  throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
@@ -58,18 +49,34 @@ class LaneDiffGenerator {
58
49
  const bitIds = toLane.components.map((c) => c.id);
59
50
  this.fromLaneData = yield this.getDefaultLaneData(bitIds);
60
51
  }
61
- else {
62
- const fromLane = fromLaneId ? yield legacyScope.lanes.loadLane(fromLaneId) : null;
63
- this.fromLaneData = fromLane ? yield this.mapToLaneData(fromLane) : null;
52
+ else if (toLaneId.isDefault()) {
53
+ const fromLane = yield legacyScope.lanes.loadLane(fromLaneId);
54
+ if (!fromLane)
55
+ throw new Error(`unable to find a lane "${fromLaneName}" in the scope`);
56
+ this.fromLaneData = yield this.mapToLaneData(fromLane);
64
57
  const bitIds = (fromLane === null || fromLane === void 0 ? void 0 : fromLane.components.map((c) => c.id)) || [];
65
58
  this.toLaneData = yield this.getDefaultLaneData(bitIds);
66
59
  }
60
+ else {
61
+ // both, "from" and "to" are not default-lane.
62
+ const toLane = yield legacyScope.lanes.loadLane(toLaneId);
63
+ if (!toLane)
64
+ throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
65
+ const fromLane = yield legacyScope.lanes.loadLane(fromLaneId);
66
+ if (!fromLane)
67
+ throw new Error(`unable to find a lane "${fromLaneName}" in the scope`);
68
+ this.toLaneData = yield this.mapToLaneData(toLane);
69
+ this.fromLaneData = yield this.mapToLaneData(fromLane);
70
+ }
67
71
  let idsToCheckDiff;
68
72
  if (pattern) {
69
73
  const allIds = this.toLaneData.components.map((c) => c.id);
70
74
  const compIds = yield (this.workspace || this.scope).resolveMultipleComponentIds(allIds);
71
75
  idsToCheckDiff = bit_id_1.BitIds.fromArray(this.scope.filterIdsFromPoolIdsByPattern(pattern, compIds).map((c) => c._legacy));
72
76
  }
77
+ if (!this.toLaneData.components.length) {
78
+ throw new bit_error_1.BitError(`lane "${toLaneName}" is empty, nothing to show`);
79
+ }
73
80
  yield Promise.all(this.toLaneData.components.map(({ id, head }) => __awaiter(this, void 0, void 0, function* () {
74
81
  if (idsToCheckDiff && !idsToCheckDiff.hasWithoutVersion(id)) {
75
82
  return;
@@ -77,21 +84,27 @@ class LaneDiffGenerator {
77
84
  yield this.componentDiff(id, head, diffOptions);
78
85
  })));
79
86
  return {
80
- newComps: this.newComps.map((id) => id.toString()),
87
+ newCompsFrom: this.newCompsFrom.map((id) => id.toString()),
88
+ newCompsTo: this.newCompsTo.map((id) => id.toString()),
81
89
  compsWithDiff: this.compsWithDiff,
82
90
  compsWithNoChanges: this.compsWithNoChanges.map((id) => id.toString()),
83
- toLaneName: (_a = this.toLaneData) === null || _a === void 0 ? void 0 : _a.name,
91
+ toLaneName: this.toLaneData.name,
92
+ fromLaneName: this.fromLaneData.name,
84
93
  failures: this.failures,
85
94
  };
86
95
  });
87
96
  }
88
97
  componentDiff(id, toLaneHead, diffOptions) {
89
- var _a, _b;
98
+ var _a;
90
99
  return __awaiter(this, void 0, void 0, function* () {
91
100
  const modelComponent = yield this.scope.legacyScope.getModelComponent(id);
92
- const fromLaneHead = ((_b = (_a = this.fromLaneData) === null || _a === void 0 ? void 0 : _a.components.find((c) => c.id.isEqualWithoutVersion(id))) === null || _b === void 0 ? void 0 : _b.head) || modelComponent.head;
101
+ const fromLaneHead = ((_a = this.fromLaneData.components.find((c) => c.id.isEqualWithoutVersion(id))) === null || _a === void 0 ? void 0 : _a.head) || modelComponent.head;
93
102
  if (!fromLaneHead) {
94
- this.newComps.push(id);
103
+ this.newCompsTo.push(id);
104
+ return;
105
+ }
106
+ if (!toLaneHead) {
107
+ this.newCompsFrom.push(id);
95
108
  return;
96
109
  }
97
110
  if (fromLaneHead.isEqual(toLaneHead)) {
@@ -107,7 +120,7 @@ class LaneDiffGenerator {
107
120
  return;
108
121
  }
109
122
  const toVersion = yield toLaneHead.load(this.scope.legacyScope.objects);
110
- const fromLaneStr = this.fromLaneData ? this.fromLaneData.name : lane_id_1.DEFAULT_LANE;
123
+ const fromLaneStr = this.fromLaneData.name;
111
124
  diffOptions.formatDepsAsTable = false;
112
125
  const diff = yield (0, components_diff_1.diffBetweenVersionsObjects)(modelComponent, fromVersion, toVersion, fromLaneStr, this.toLaneData.name, this.scope.legacyScope, diffOptions);
113
126
  this.compsWithDiff.push(diff);
@@ -126,10 +139,10 @@ class LaneDiffGenerator {
126
139
  return { toLaneName: currentLane.name, fromLaneName: lane_id_1.DEFAULT_LANE };
127
140
  }
128
141
  if (values.length === 1) {
129
- const fromLaneName = currentLane.isDefault() ? lane_id_1.DEFAULT_LANE : currentLane.name;
130
- return { fromLaneName, toLaneName: values[0] };
142
+ const toLaneName = currentLane.isDefault() ? lane_id_1.DEFAULT_LANE : currentLane.name;
143
+ return { toLaneName, fromLaneName: values[0] };
131
144
  }
132
- return { fromLaneName: values[0], toLaneName: values[1] };
145
+ return { toLaneName: values[1], fromLaneName: values[0] };
133
146
  }
134
147
  // running from the scope
135
148
  if (values.length < 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"lane-diff-generator.js","sourceRoot":"","sources":["../lane-diff-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lane-diff-generator.js","sourceRoot":"","sources":["../lane-diff-generator.ts"],"names":[],"mappings":"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"}
@@ -38,15 +38,21 @@ bit lane diff from to => diff between "from" lane and "to" lane.`;
38
38
  report([values = []], { pattern }) {
39
39
  return __awaiter(this, void 0, void 0, function* () {
40
40
  const laneDiffGenerator = new lane_diff_generator_1.LaneDiffGenerator(this.workspace, this.scope);
41
- const { compsWithDiff, newComps, toLaneName, failures } = yield laneDiffGenerator.generate(values, undefined, pattern);
41
+ const { compsWithDiff, newCompsFrom, newCompsTo, toLaneName, fromLaneName, failures } = yield laneDiffGenerator.generate(values, undefined, pattern);
42
+ const newCompsOutput = (laneName, ids) => {
43
+ if (!ids.length)
44
+ return '';
45
+ const newCompsIdsStr = ids.map((id) => chalk_1.default.bold(id)).join('\n');
46
+ const newCompsTitle = `\nThe following components were introduced in ${chalk_1.default.bold(laneName)} lane`;
47
+ return newCompsFrom.length ? `${chalk_1.default.inverse(newCompsTitle)}\n${newCompsIdsStr}` : '';
48
+ };
42
49
  const diffResultsStr = (0, components_diff_1.outputDiffResults)(compsWithDiff);
43
- const newCompsIdsStr = newComps.map((id) => chalk_1.default.bold(id)).join('\n');
44
- const newCompsTitle = `The following components were introduced in ${chalk_1.default.bold(toLaneName)} lane`;
45
- const newCompsStr = newComps.length ? `${chalk_1.default.inverse(newCompsTitle)}\n${newCompsIdsStr}` : '';
46
50
  const failuresTitle = `\n\nDiff failed on the following component(s)`;
47
51
  const failuresIds = failures.map((f) => `${f.id.toString()} - ${chalk_1.default.red(f.msg)}`);
48
52
  const failuresStr = failures.length ? `${chalk_1.default.inverse(failuresTitle)}\n${failuresIds}` : '';
49
- return `${diffResultsStr}\n${newCompsStr}${failuresStr}`;
53
+ const newCompsToStr = newCompsOutput(toLaneName, newCompsTo);
54
+ const newCompsFromStr = newCompsOutput(fromLaneName, newCompsFrom);
55
+ return `${diffResultsStr}${newCompsToStr}${newCompsFromStr}${failuresStr}`;
50
56
  });
51
57
  }
52
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lane-diff.cmd.js","sourceRoot":"","sources":["../lane-diff.cmd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,kDAA0B;AAC1B,iGAAgG;AAChG,+DAA0D;AAE1D,MAAa,WAAW;IAgBtB,YAAoB,SAAoB,EAAU,KAAgB;QAA9C,cAAS,GAAT,SAAS,CAAW;QAAU,UAAK,GAAL,KAAK,CAAW;QAflE,SAAI,GAAG,kBAAkB,CAAC;QAC1B,gBAAW,GAAG,yBAAyB,CAAC;QACxC,wBAAmB,GAAG;;iEAEyC,CAAC;QAChE,UAAK,GAAG,EAAE,CAAC;QACX,YAAO,GAAG;YACR,CAAC,EAAE,EAAE,6BAA6B,EAAE,uEAAuE,CAAC;SAC3F,CAAC;QACpB,WAAM,GAAG,IAAI,CAAC;QACd,YAAO,GAAG,IAAI,CAAC;QACf,cAAS,GAAG,IAAI,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QAChB,kBAAa,GAAG,IAAI,CAAC;IAEgD,CAAC;IAEhE,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE,CAAa,EAAE,EAAE,OAAO,EAAwB;;YACvE,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CACxF,MAAM,EACN,SAAS,EACT,OAAO,CACR,CAAC;YAEF,MAAM,cAAc,GAAG,IAAA,mCAAiB,EAAC,aAAa,CAAC,CAAC;YACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,+CAA+C,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACnG,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,MAAM,aAAa,GAAG,+CAA+C,CAAC;YACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,OAAO,GAAG,cAAc,KAAK,WAAW,GAAG,WAAW,EAAE,CAAC;QAC3D,CAAC;KAAA;CACF;AAnCD,kCAmCC"}
1
+ {"version":3,"file":"lane-diff.cmd.js","sourceRoot":"","sources":["../lane-diff.cmd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,kDAA0B;AAC1B,iGAAgG;AAChG,+DAA0D;AAE1D,MAAa,WAAW;IAgBtB,YAAoB,SAAoB,EAAU,KAAgB;QAA9C,cAAS,GAAT,SAAS,CAAW;QAAU,UAAK,GAAL,KAAK,CAAW;QAflE,SAAI,GAAG,kBAAkB,CAAC;QAC1B,gBAAW,GAAG,yBAAyB,CAAC;QACxC,wBAAmB,GAAG;;iEAEyC,CAAC;QAChE,UAAK,GAAG,EAAE,CAAC;QACX,YAAO,GAAG;YACR,CAAC,EAAE,EAAE,6BAA6B,EAAE,uEAAuE,CAAC;SAC3F,CAAC;QACpB,WAAM,GAAG,IAAI,CAAC;QACd,YAAO,GAAG,IAAI,CAAC;QACf,cAAS,GAAG,IAAI,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QAChB,kBAAa,GAAG,IAAI,CAAC;IAEgD,CAAC;IAEhE,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE,CAAa,EAAE,EAAE,OAAO,EAAwB;;YACvE,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,GACnF,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAE/D,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,GAAa,EAAE,EAAE;gBACzD,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,MAAM,aAAa,GAAG,iDAAiD,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACnG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,IAAA,mCAAiB,EAAC,aAAa,CAAC,CAAC;YAExD,MAAM,aAAa,GAAG,+CAA+C,CAAC;YACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC7D,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACnE,OAAO,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,EAAE,CAAC;QAC7E,CAAC;KAAA;CACF;AAvCD,kCAuCC"}
package/index.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { LaneDiffCmd } from './lane-diff.cmd';
2
- export { LaneDiffGenerator } from './lane-diff-generator';
2
+ export { LaneDiffGenerator, LaneDiffResults } from './lane-diff-generator';
@@ -10,6 +10,7 @@ import {
10
10
  } from '@teambit/legacy/dist/consumer/component-ops/components-diff';
11
11
  import { DEFAULT_LANE } from '@teambit/lane-id';
12
12
  import { BitIds } from '@teambit/legacy/dist/bit-id';
13
+ import { BitError } from '@teambit/bit-error';
13
14
 
14
15
  type LaneData = {
15
16
  name: string;
@@ -19,13 +20,27 @@ type LaneData = {
19
20
  }>;
20
21
  remote: string | null;
21
22
  };
23
+
24
+ type Failure = { id: BitId; msg: string };
25
+
26
+ export type LaneDiffResults = {
27
+ newCompsFrom: string[];
28
+ newCompsTo: string[];
29
+ compsWithDiff: DiffResults[];
30
+ compsWithNoChanges: string[];
31
+ toLaneName: string;
32
+ fromLaneName: string;
33
+ failures: Failure[];
34
+ };
35
+
22
36
  export class LaneDiffGenerator {
23
- private newComps: BitId[] = [];
37
+ private newCompsFrom: BitId[] = [];
38
+ private newCompsTo: BitId[] = [];
24
39
  private compsWithDiff: DiffResults[] = [];
25
40
  private compsWithNoChanges: BitId[] = [];
26
- private fromLaneData: LaneData | null;
41
+ private fromLaneData: LaneData;
27
42
  private toLaneData: LaneData;
28
- private failures: { id: BitId; msg: string }[] = [];
43
+ private failures: Failure[] = [];
29
44
  constructor(private workspace: Workspace | undefined, private scope: ScopeMain) {}
30
45
 
31
46
  /**
@@ -34,36 +49,36 @@ export class LaneDiffGenerator {
34
49
  * [to] => diff between the current lane (or default-lane when in scope) and "to" lane.
35
50
  * [from, to] => diff between "from" lane and "to" lane.
36
51
  */
37
- async generate(values: string[], diffOptions: DiffOptions = {}, pattern?: string) {
52
+ async generate(values: string[], diffOptions: DiffOptions = {}, pattern?: string): Promise<LaneDiffResults> {
38
53
  const { fromLaneName, toLaneName } = this.getLaneNames(values);
39
54
  if (fromLaneName === toLaneName) {
40
55
  throw new Error(`unable to run diff between "${fromLaneName}" and "${toLaneName}", they're the same lane`);
41
56
  }
42
57
  const legacyScope = this.scope.legacyScope;
43
- const fromLaneId = fromLaneName ? await legacyScope.lanes.parseLaneIdFromString(fromLaneName) : null;
44
- const toLaneId = toLaneName ? await legacyScope.lanes.parseLaneIdFromString(toLaneName) : null;
45
- const isFromOrToDefault = fromLaneId?.isDefault() || toLaneId?.isDefault();
58
+ const fromLaneId = await legacyScope.lanes.parseLaneIdFromString(fromLaneName);
59
+ const toLaneId = await legacyScope.lanes.parseLaneIdFromString(toLaneName);
46
60
 
47
- if (!isFromOrToDefault && !toLaneId) {
48
- throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
49
- } else if (!isFromOrToDefault && toLaneId && fromLaneId) {
61
+ if (fromLaneId.isDefault()) {
62
+ if (toLaneId.isDefault()) throw new Error(`unable to diff between main and main, they're the same lane`);
50
63
  const toLane = await legacyScope.lanes.loadLane(toLaneId);
51
64
  if (!toLane) throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
52
- const fromLane = fromLaneId ? await legacyScope.lanes.loadLane(fromLaneId) : null;
53
- this.toLaneData = await this.mapToLaneData(toLane);
54
- this.fromLaneData = fromLane ? await this.mapToLaneData(fromLane) : null;
55
- } else if (fromLaneId?.isDefault() && toLaneId) {
56
- const toLane = await legacyScope.lanes.loadLane(toLaneId);
57
- if (!toLane) throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
58
-
59
65
  this.toLaneData = await this.mapToLaneData(toLane);
60
66
  const bitIds = toLane.components.map((c) => c.id);
61
67
  this.fromLaneData = await this.getDefaultLaneData(bitIds);
62
- } else {
63
- const fromLane = fromLaneId ? await legacyScope.lanes.loadLane(fromLaneId) : null;
64
- this.fromLaneData = fromLane ? await this.mapToLaneData(fromLane) : null;
68
+ } else if (toLaneId.isDefault()) {
69
+ const fromLane = await legacyScope.lanes.loadLane(fromLaneId);
70
+ if (!fromLane) throw new Error(`unable to find a lane "${fromLaneName}" in the scope`);
71
+ this.fromLaneData = await this.mapToLaneData(fromLane);
65
72
  const bitIds = fromLane?.components.map((c) => c.id) || [];
66
73
  this.toLaneData = await this.getDefaultLaneData(bitIds);
74
+ } else {
75
+ // both, "from" and "to" are not default-lane.
76
+ const toLane = await legacyScope.lanes.loadLane(toLaneId);
77
+ if (!toLane) throw new Error(`unable to find a lane "${toLaneName}" in the scope`);
78
+ const fromLane = await legacyScope.lanes.loadLane(fromLaneId);
79
+ if (!fromLane) throw new Error(`unable to find a lane "${fromLaneName}" in the scope`);
80
+ this.toLaneData = await this.mapToLaneData(toLane);
81
+ this.fromLaneData = await this.mapToLaneData(fromLane);
67
82
  }
68
83
 
69
84
  let idsToCheckDiff: BitIds | undefined;
@@ -75,6 +90,10 @@ export class LaneDiffGenerator {
75
90
  );
76
91
  }
77
92
 
93
+ if (!this.toLaneData.components.length) {
94
+ throw new BitError(`lane "${toLaneName}" is empty, nothing to show`);
95
+ }
96
+
78
97
  await Promise.all(
79
98
  this.toLaneData.components.map(async ({ id, head }) => {
80
99
  if (idsToCheckDiff && !idsToCheckDiff.hasWithoutVersion(id)) {
@@ -85,20 +104,26 @@ export class LaneDiffGenerator {
85
104
  );
86
105
 
87
106
  return {
88
- newComps: this.newComps.map((id) => id.toString()),
107
+ newCompsFrom: this.newCompsFrom.map((id) => id.toString()),
108
+ newCompsTo: this.newCompsTo.map((id) => id.toString()),
89
109
  compsWithDiff: this.compsWithDiff,
90
110
  compsWithNoChanges: this.compsWithNoChanges.map((id) => id.toString()),
91
- toLaneName: this.toLaneData?.name,
111
+ toLaneName: this.toLaneData.name,
112
+ fromLaneName: this.fromLaneData.name,
92
113
  failures: this.failures,
93
114
  };
94
115
  }
95
116
 
96
- private async componentDiff(id: BitId, toLaneHead: Ref, diffOptions: DiffOptions) {
117
+ private async componentDiff(id: BitId, toLaneHead: Ref | null, diffOptions: DiffOptions) {
97
118
  const modelComponent = await this.scope.legacyScope.getModelComponent(id);
98
119
  const fromLaneHead =
99
- this.fromLaneData?.components.find((c) => c.id.isEqualWithoutVersion(id))?.head || modelComponent.head;
120
+ this.fromLaneData.components.find((c) => c.id.isEqualWithoutVersion(id))?.head || modelComponent.head;
100
121
  if (!fromLaneHead) {
101
- this.newComps.push(id);
122
+ this.newCompsTo.push(id);
123
+ return;
124
+ }
125
+ if (!toLaneHead) {
126
+ this.newCompsFrom.push(id);
102
127
  return;
103
128
  }
104
129
  if (fromLaneHead.isEqual(toLaneHead)) {
@@ -113,7 +138,7 @@ export class LaneDiffGenerator {
113
138
  return;
114
139
  }
115
140
  const toVersion = await toLaneHead.load(this.scope.legacyScope.objects);
116
- const fromLaneStr = this.fromLaneData ? this.fromLaneData.name : DEFAULT_LANE;
141
+ const fromLaneStr = this.fromLaneData.name;
117
142
  diffOptions.formatDepsAsTable = false;
118
143
  const diff = await diffBetweenVersionsObjects(
119
144
  modelComponent,
@@ -127,7 +152,7 @@ export class LaneDiffGenerator {
127
152
  this.compsWithDiff.push(diff);
128
153
  }
129
154
 
130
- private getLaneNames(values: string[]): { fromLaneName?: string; toLaneName: string } {
155
+ private getLaneNames(values: string[]): { fromLaneName: string; toLaneName: string } {
131
156
  if (values.length > 2) {
132
157
  throw new Error(`expect "values" to include no more than two args, got ${values.length}`);
133
158
  }
@@ -140,10 +165,10 @@ export class LaneDiffGenerator {
140
165
  return { toLaneName: currentLane.name, fromLaneName: DEFAULT_LANE };
141
166
  }
142
167
  if (values.length === 1) {
143
- const fromLaneName = currentLane.isDefault() ? DEFAULT_LANE : currentLane.name;
144
- return { fromLaneName, toLaneName: values[0] };
168
+ const toLaneName = currentLane.isDefault() ? DEFAULT_LANE : currentLane.name;
169
+ return { toLaneName, fromLaneName: values[0] };
145
170
  }
146
- return { fromLaneName: values[0], toLaneName: values[1] };
171
+ return { toLaneName: values[1], fromLaneName: values[0] };
147
172
  }
148
173
  // running from the scope
149
174
  if (values.length < 1) {
package/lane-diff.cmd.ts CHANGED
@@ -25,19 +25,23 @@ bit lane diff from to => diff between "from" lane and "to" lane.`;
25
25
 
26
26
  async report([values = []]: [string[]], { pattern }: { pattern?: string }) {
27
27
  const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);
28
- const { compsWithDiff, newComps, toLaneName, failures } = await laneDiffGenerator.generate(
29
- values,
30
- undefined,
31
- pattern
32
- );
28
+ const { compsWithDiff, newCompsFrom, newCompsTo, toLaneName, fromLaneName, failures } =
29
+ await laneDiffGenerator.generate(values, undefined, pattern);
30
+
31
+ const newCompsOutput = (laneName: string, ids: string[]) => {
32
+ if (!ids.length) return '';
33
+ const newCompsIdsStr = ids.map((id) => chalk.bold(id)).join('\n');
34
+ const newCompsTitle = `\nThe following components were introduced in ${chalk.bold(laneName)} lane`;
35
+ return newCompsFrom.length ? `${chalk.inverse(newCompsTitle)}\n${newCompsIdsStr}` : '';
36
+ };
33
37
 
34
38
  const diffResultsStr = outputDiffResults(compsWithDiff);
35
- const newCompsIdsStr = newComps.map((id) => chalk.bold(id)).join('\n');
36
- const newCompsTitle = `The following components were introduced in ${chalk.bold(toLaneName)} lane`;
37
- const newCompsStr = newComps.length ? `${chalk.inverse(newCompsTitle)}\n${newCompsIdsStr}` : '';
39
+
38
40
  const failuresTitle = `\n\nDiff failed on the following component(s)`;
39
41
  const failuresIds = failures.map((f) => `${f.id.toString()} - ${chalk.red(f.msg)}`);
40
42
  const failuresStr = failures.length ? `${chalk.inverse(failuresTitle)}\n${failuresIds}` : '';
41
- return `${diffResultsStr}\n${newCompsStr}${failuresStr}`;
43
+ const newCompsToStr = newCompsOutput(toLaneName, newCompsTo);
44
+ const newCompsFromStr = newCompsOutput(fromLaneName, newCompsFrom);
45
+ return `${diffResultsStr}${newCompsToStr}${newCompsFromStr}${failuresStr}`;
42
46
  }
43
47
  }
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@teambit/lanes.modules.diff",
3
- "version": "0.0.162",
3
+ "version": "0.0.165",
4
4
  "homepage": "https://bit.dev/teambit/lanes/modules/diff",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.lanes",
8
8
  "name": "modules/diff",
9
- "version": "0.0.162"
9
+ "version": "0.0.165"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
13
- "@teambit/lane-id": "0.0.52",
13
+ "@teambit/bit-error": "0.0.394",
14
+ "@teambit/lane-id": "0.0.55",
14
15
  "@teambit/legacy-bit-id": "0.0.402"
15
16
  },
16
17
  "devDependencies": {