@teambit/lanes.ui.models.lanes-model 0.0.156 → 0.0.158

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.
@@ -17,6 +17,8 @@ export declare type LaneQueryLaneOwner = {
17
17
  name: string;
18
18
  email: string;
19
19
  profileImage?: string;
20
+ username?: string;
21
+ displayName?: string;
20
22
  };
21
23
  /**
22
24
  * GQL
@@ -29,10 +31,9 @@ export declare type LaneQueryResult = {
29
31
  name: string;
30
32
  scope: string;
31
33
  };
32
- remote?: string;
33
- isMerged: boolean;
34
+ isMerged?: boolean;
34
35
  displayName?: string;
35
- laneComponentIds: Array<ComponentIdObj>;
36
+ laneComponentIds?: Array<ComponentIdObj>;
36
37
  readmeComponent?: ComponentModelProps;
37
38
  hash: string;
38
39
  createdAt?: string;
@@ -47,6 +48,8 @@ export declare type LaneQueryResult = {
47
48
  export declare type LanesQueryResult = {
48
49
  list?: LaneQueryResult[];
49
50
  current?: LaneQueryResult;
51
+ default?: LaneQueryResult;
52
+ viewedLane?: [LaneQueryResult];
50
53
  };
51
54
  /**
52
55
  * GQL (lanes)
@@ -78,6 +81,7 @@ export declare type LanesModelProps = {
78
81
  lanes?: LaneModel[];
79
82
  viewedLane?: LaneModel;
80
83
  currentLane?: LaneModel;
84
+ defaultLane?: LaneModel;
81
85
  };
82
86
  /**
83
87
  * Represents the entire Lanes State in a Workspace/Scope
@@ -94,25 +98,27 @@ export declare class LanesModel {
94
98
  static getLaneUrl: (laneId: LaneId, relative?: boolean) => string;
95
99
  static getLaneComponentUrl: (componentId: ComponentID, laneId: LaneId) => string;
96
100
  static getMainComponentUrl: (componentId: ComponentID, laneId?: LaneId) => string;
97
- static mapToLaneModel(laneData: LaneQueryResult, host: string): LaneModel;
101
+ static mapToLaneModel(laneData: LaneQueryResult): LaneModel;
98
102
  static groupLaneIdsByScope(laneIds: LaneId[]): Map<string, LaneId[]>;
99
103
  static groupLanesByScope(lanes: LaneModel[]): Map<string, LaneModel[]>;
100
104
  static groupByComponentNameAndId(lanes: LaneModel[]): {
101
105
  byName: Map<string, LaneModel[]>;
102
106
  byId: Map<string, LaneModel[]>;
103
107
  };
104
- static from({ data, host, viewedLaneId }: {
108
+ static from({ data, scope, viewedLaneId, }: {
105
109
  data: LanesQuery;
106
- host: string;
110
+ scope?: string;
111
+ host?: string;
107
112
  viewedLaneId?: LaneId;
108
113
  }): LanesModel;
109
- constructor({ lanes, viewedLane, currentLane }: LanesModelProps);
110
- readonly laneIdsByScope: Map<string, LaneId[]>;
111
- readonly lanesByComponentName: Map<string, LaneModel[]>;
112
- readonly lanesByComponentId: Map<string, LaneModel[]>;
114
+ constructor({ lanes, viewedLane, currentLane, defaultLane }: LanesModelProps);
115
+ laneIdsByScope: Map<string, LaneId[]>;
116
+ lanesByComponentName: Map<string, LaneModel[]>;
117
+ lanesByComponentId: Map<string, LaneModel[]>;
113
118
  viewedLane?: LaneModel;
114
119
  currentLane?: LaneModel;
115
- readonly lanes: LaneModel[];
120
+ defaultLane?: LaneModel;
121
+ lanes: LaneModel[];
116
122
  getLaneComponentUrlByVersion: (componentId: ComponentID, laneId?: LaneId) => string;
117
123
  setViewedLane: (viewedLaneId?: LaneId) => void;
118
124
  setViewedOrDefaultLane: (viewedLaneId?: LaneId) => void;
@@ -129,4 +135,6 @@ export declare class LanesModel {
129
135
  isComponentOnMainButNotOnLane: (componentId: ComponentID, includeVersion?: boolean, laneId?: LaneId) => boolean;
130
136
  isComponentOnLaneButNotOnMain: (componentId: ComponentID, includeVersion?: boolean, laneId?: LaneId) => boolean;
131
137
  isComponentOnNonDefaultLanes: (componentId: ComponentID, includeVersion?: boolean, laneId?: LaneId) => boolean;
138
+ addLanes(newLanes?: LaneModel[]): void;
139
+ static concatLanes(lanes?: LaneModel[], newLanes?: LaneModel[]): LaneModel[];
132
140
  }
@@ -6,13 +6,14 @@ const lane_id_1 = require("@teambit/lane-id");
6
6
  const component_id_1 = require("@teambit/component-id");
7
7
  const base_ui_utils_string_affix_1 = require("@teambit/base-ui.utils.string.affix");
8
8
  const path_to_regexp_1 = require("path-to-regexp");
9
+ const lodash_1 = require("lodash");
9
10
  /**
10
11
  * Represents the entire Lanes State in a Workspace/Scope
11
12
  * Provides helper methods to extract and map Lane information
12
13
  * Keeps track of all the lanes and the currently selected lane from the UI
13
14
  */
14
15
  class LanesModel {
15
- constructor({ lanes, viewedLane, currentLane }) {
16
+ constructor({ lanes = [], viewedLane, currentLane, defaultLane }) {
16
17
  this.getLaneComponentUrlByVersion = (componentId, laneId) => {
17
18
  var _a;
18
19
  // if there is no version, the component is new and is on main
@@ -50,7 +51,7 @@ class LanesModel {
50
51
  }
51
52
  return comps.find((component) => component.fullName === idFromUrl);
52
53
  };
53
- this.getDefaultLane = () => this.lanes.find((lane) => lane.id.isDefault());
54
+ this.getDefaultLane = () => this.defaultLane;
54
55
  this.getNonMainLanes = () => this.lanes.filter((lane) => !lane.id.isDefault());
55
56
  this.isInViewedLane = (componentId, includeVersion) => {
56
57
  var _a, _b;
@@ -88,34 +89,40 @@ class LanesModel {
88
89
  };
89
90
  this.viewedLane = viewedLane;
90
91
  this.currentLane = currentLane;
91
- this.lanes = lanes || [];
92
+ this.defaultLane = defaultLane;
93
+ const allUniqueLanes = (0, lodash_1.compact)((0, lodash_1.uniqBy)([...lanes, this.defaultLane, this.currentLane, this.viewedLane], (lane) => lane === null || lane === void 0 ? void 0 : lane.id.toString()));
94
+ this.lanes = allUniqueLanes;
92
95
  this.laneIdsByScope = LanesModel.groupLaneIdsByScope(this.lanes.map((lane) => lane.id));
93
96
  const { byId, byName } = LanesModel.groupByComponentNameAndId(this.lanes);
94
97
  this.lanesByComponentId = byId;
95
98
  this.lanesByComponentName = byName;
96
99
  }
97
- static mapToLaneModel(laneData, host) {
98
- var _a, _b, _c, _d, _e, _f;
99
- const { id, laneComponentIds, readmeComponent, hash, createdAt, displayName, updatedAt, createdBy: createdByData, updatedBy: updatedByData, } = laneData;
100
+ static mapToLaneModel(laneData) {
101
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
102
+ const { id, laneComponentIds = [], readmeComponent, hash, createdAt, displayName, updatedAt, createdBy: createdByData, updatedBy: updatedByData, } = laneData;
100
103
  const componentIds = (laneComponentIds === null || laneComponentIds === void 0 ? void 0 : laneComponentIds.map((laneComponentId) => {
101
104
  const componentId = component_id_1.ComponentID.fromObject(laneComponentId);
102
105
  return componentId;
103
106
  })) || [];
104
- const readmeComponentModel = readmeComponent && component_1.ComponentModel.from(Object.assign(Object.assign({}, readmeComponent), { host }));
107
+ const readmeComponentModel = readmeComponent && component_1.ComponentModel.from(Object.assign({}, readmeComponent));
105
108
  const createdAtDate = (createdAt && new Date(+createdAt)) || undefined;
106
109
  const createdBy = createdByData
107
110
  ? {
108
111
  name: (_a = createdByData === null || createdByData === void 0 ? void 0 : createdByData.name) !== null && _a !== void 0 ? _a : undefined,
109
112
  email: (_b = createdByData.email) !== null && _b !== void 0 ? _b : undefined,
110
- profileImage: (_c = createdByData.profileImage) !== null && _c !== void 0 ? _c : undefined,
113
+ username: (_c = createdByData === null || createdByData === void 0 ? void 0 : createdByData.username) !== null && _c !== void 0 ? _c : undefined,
114
+ displayName: (_d = createdByData === null || createdByData === void 0 ? void 0 : createdByData.displayName) !== null && _d !== void 0 ? _d : undefined,
115
+ profileImage: (_e = createdByData.profileImage) !== null && _e !== void 0 ? _e : undefined,
111
116
  }
112
117
  : undefined;
113
118
  const updatedAtDate = (updatedAt && new Date(+updatedAt)) || undefined;
114
119
  const updatedBy = (updatedByData === null || updatedByData === void 0 ? void 0 : updatedByData.name)
115
120
  ? {
116
- name: (_d = updatedByData === null || updatedByData === void 0 ? void 0 : updatedByData.name) !== null && _d !== void 0 ? _d : undefined,
117
- email: (_e = updatedByData.email) !== null && _e !== void 0 ? _e : undefined,
118
- profileImage: (_f = updatedByData.profileImage) !== null && _f !== void 0 ? _f : undefined,
121
+ name: (_f = updatedByData === null || updatedByData === void 0 ? void 0 : updatedByData.name) !== null && _f !== void 0 ? _f : undefined,
122
+ username: (_g = updatedByData === null || updatedByData === void 0 ? void 0 : updatedByData.username) !== null && _g !== void 0 ? _g : undefined,
123
+ displayName: (_h = updatedByData === null || updatedByData === void 0 ? void 0 : updatedByData.displayName) !== null && _h !== void 0 ? _h : undefined,
124
+ email: (_j = updatedByData.email) !== null && _j !== void 0 ? _j : undefined,
125
+ profileImage: (_k = updatedByData.profileImage) !== null && _k !== void 0 ? _k : undefined,
119
126
  }
120
127
  : undefined;
121
128
  return {
@@ -176,16 +183,31 @@ class LanesModel {
176
183
  });
177
184
  return { byName, byId };
178
185
  }
179
- static from({ data, host, viewedLaneId }) {
180
- var _a, _b, _c, _d;
181
- const lanes = ((_b = (_a = data === null || data === void 0 ? void 0 : data.lanes) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b.map((lane) => LanesModel.mapToLaneModel(lane, host))) || [];
182
- const currentLane = ((_d = (_c = data.lanes) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.id)
183
- ? lanes.find((lane) => { var _a, _b; return lane.id.isEqual((_b = (_a = data.lanes) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.id); })
184
- : undefined;
185
- const lanesModel = new LanesModel({ lanes, currentLane });
186
- lanesModel.setViewedLane(viewedLaneId);
186
+ static from({ data, scope, viewedLaneId, }) {
187
+ var _a, _b, _c, _d, _e;
188
+ const lanes = ((_b = (_a = data === null || data === void 0 ? void 0 : data.lanes) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b.map((lane) => LanesModel.mapToLaneModel(lane))) || [];
189
+ const currentLane = ((_c = data === null || data === void 0 ? void 0 : data.lanes) === null || _c === void 0 ? void 0 : _c.current) ? LanesModel.mapToLaneModel(data.lanes.current) : undefined;
190
+ const defaultLane = ((_d = data === null || data === void 0 ? void 0 : data.lanes) === null || _d === void 0 ? void 0 : _d.default)
191
+ ? LanesModel.mapToLaneModel(data.lanes.default)
192
+ : (scope && LanesModel.mapToLaneModel({ id: { name: 'main', scope }, hash: '' })) ||
193
+ lanes.find((lane) => lane.id.isDefault()) ||
194
+ undefined;
195
+ const viewedLane = viewedLaneId
196
+ ? lanes.find((lane) => lane.id.isEqual(viewedLaneId))
197
+ : (((_e = data === null || data === void 0 ? void 0 : data.lanes) === null || _e === void 0 ? void 0 : _e.viewedLane) && LanesModel.mapToLaneModel(data.lanes.viewedLane[0])) || currentLane || defaultLane;
198
+ const lanesModel = new LanesModel({ lanes, currentLane, defaultLane, viewedLane });
187
199
  return lanesModel;
188
200
  }
201
+ addLanes(newLanes = []) {
202
+ this.lanes = LanesModel.concatLanes(this.lanes, newLanes);
203
+ this.laneIdsByScope = LanesModel.groupLaneIdsByScope(this.lanes.map((lane) => lane.id));
204
+ const { byId, byName } = LanesModel.groupByComponentNameAndId(this.lanes);
205
+ this.lanesByComponentId = byId;
206
+ this.lanesByComponentName = byName;
207
+ }
208
+ static concatLanes(lanes = [], newLanes = []) {
209
+ return (0, lodash_1.compact)((0, lodash_1.uniqBy)([...lanes, ...newLanes], (lane) => lane === null || lane === void 0 ? void 0 : lane.id.toString()));
210
+ }
189
211
  }
190
212
  exports.LanesModel = LanesModel;
191
213
  LanesModel.lanesPrefix = '~lane';
@@ -1 +1 @@
1
- {"version":3,"file":"lanes-model.js","sourceRoot":"","sources":["../lanes-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lanes-model.js","sourceRoot":"","sources":["../lanes-model.ts"],"names":[],"mappings":"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"}
package/lanes-model.ts CHANGED
@@ -3,6 +3,7 @@ import { LaneId } from '@teambit/lane-id';
3
3
  import { ComponentID, ComponentIdObj } from '@teambit/component-id';
4
4
  import { affix } from '@teambit/base-ui.utils.string.affix';
5
5
  import { pathToRegexp } from 'path-to-regexp';
6
+ import { compact, uniqBy } from 'lodash';
6
7
 
7
8
  /**
8
9
  * GQL (lanes/getLanes/components)
@@ -20,6 +21,8 @@ export type LaneQueryLaneOwner = {
20
21
  name: string;
21
22
  email: string;
22
23
  profileImage?: string;
24
+ username?: string;
25
+ displayName?: string;
23
26
  };
24
27
  /**
25
28
  * GQL
@@ -29,10 +32,9 @@ export type LaneQueryLaneOwner = {
29
32
  */
30
33
  export type LaneQueryResult = {
31
34
  id: { name: string; scope: string };
32
- remote?: string;
33
- isMerged: boolean;
35
+ isMerged?: boolean;
34
36
  displayName?: string;
35
- laneComponentIds: Array<ComponentIdObj>;
37
+ laneComponentIds?: Array<ComponentIdObj>;
36
38
  readmeComponent?: ComponentModelProps;
37
39
  hash: string;
38
40
  createdAt?: string;
@@ -47,6 +49,8 @@ export type LaneQueryResult = {
47
49
  export type LanesQueryResult = {
48
50
  list?: LaneQueryResult[];
49
51
  current?: LaneQueryResult;
52
+ default?: LaneQueryResult;
53
+ viewedLane?: [LaneQueryResult];
50
54
  };
51
55
  /**
52
56
  * GQL (lanes)
@@ -79,6 +83,7 @@ export type LanesModelProps = {
79
83
  lanes?: LaneModel[];
80
84
  viewedLane?: LaneModel;
81
85
  currentLane?: LaneModel;
86
+ defaultLane?: LaneModel;
82
87
  };
83
88
 
84
89
  /**
@@ -133,10 +138,10 @@ export class LanesModel {
133
138
  return `${componentUrl}${urlSearch}`;
134
139
  };
135
140
 
136
- static mapToLaneModel(laneData: LaneQueryResult, host: string): LaneModel {
141
+ static mapToLaneModel(laneData: LaneQueryResult): LaneModel {
137
142
  const {
138
143
  id,
139
- laneComponentIds,
144
+ laneComponentIds = [],
140
145
  readmeComponent,
141
146
  hash,
142
147
  createdAt,
@@ -152,13 +157,15 @@ export class LanesModel {
152
157
  return componentId;
153
158
  }) || [];
154
159
 
155
- const readmeComponentModel = readmeComponent && ComponentModel.from({ ...readmeComponent, host });
160
+ const readmeComponentModel = readmeComponent && ComponentModel.from({ ...readmeComponent });
156
161
 
157
162
  const createdAtDate = (createdAt && new Date(+createdAt)) || undefined;
158
163
  const createdBy = createdByData
159
164
  ? {
160
165
  name: createdByData?.name ?? undefined,
161
166
  email: createdByData.email ?? undefined,
167
+ username: createdByData?.username ?? undefined,
168
+ displayName: createdByData?.displayName ?? undefined,
162
169
  profileImage: createdByData.profileImage ?? undefined,
163
170
  }
164
171
  : undefined;
@@ -167,6 +174,8 @@ export class LanesModel {
167
174
  const updatedBy = updatedByData?.name
168
175
  ? {
169
176
  name: updatedByData?.name ?? undefined,
177
+ username: updatedByData?.username ?? undefined,
178
+ displayName: updatedByData?.displayName ?? undefined,
170
179
  email: updatedByData.email ?? undefined,
171
180
  profileImage: updatedByData.profileImage ?? undefined,
172
181
  }
@@ -236,33 +245,53 @@ export class LanesModel {
236
245
  return { byName, byId };
237
246
  }
238
247
 
239
- static from({ data, host, viewedLaneId }: { data: LanesQuery; host: string; viewedLaneId?: LaneId }): LanesModel {
240
- const lanes = data?.lanes?.list?.map((lane) => LanesModel.mapToLaneModel(lane, host)) || [];
241
- const currentLane = data.lanes?.current?.id
242
- ? lanes.find((lane) => lane.id.isEqual(data.lanes?.current?.id as LaneId))
243
- : undefined;
244
- const lanesModel = new LanesModel({ lanes, currentLane });
245
- lanesModel.setViewedLane(viewedLaneId);
248
+ static from({
249
+ data,
250
+ scope,
251
+ viewedLaneId,
252
+ }: {
253
+ data: LanesQuery;
254
+ scope?: string;
255
+ // @deprecated
256
+ host?: string;
257
+ viewedLaneId?: LaneId;
258
+ }): LanesModel {
259
+ const lanes = data?.lanes?.list?.map((lane) => LanesModel.mapToLaneModel(lane)) || [];
260
+ const currentLane = data?.lanes?.current ? LanesModel.mapToLaneModel(data.lanes.current) : undefined;
261
+ const defaultLane = data?.lanes?.default
262
+ ? LanesModel.mapToLaneModel(data.lanes.default)
263
+ : (scope && LanesModel.mapToLaneModel({ id: { name: 'main', scope }, hash: '' })) ||
264
+ lanes.find((lane) => lane.id.isDefault()) ||
265
+ undefined;
266
+ const viewedLane = viewedLaneId
267
+ ? lanes.find((lane) => lane.id.isEqual(viewedLaneId))
268
+ : (data?.lanes?.viewedLane && LanesModel.mapToLaneModel(data.lanes.viewedLane[0])) || currentLane || defaultLane;
269
+ const lanesModel = new LanesModel({ lanes, currentLane, defaultLane, viewedLane });
246
270
  return lanesModel;
247
271
  }
248
272
 
249
- constructor({ lanes, viewedLane, currentLane }: LanesModelProps) {
273
+ constructor({ lanes = [], viewedLane, currentLane, defaultLane }: LanesModelProps) {
250
274
  this.viewedLane = viewedLane;
251
275
  this.currentLane = currentLane;
252
- this.lanes = lanes || [];
276
+ this.defaultLane = defaultLane;
277
+ const allUniqueLanes = compact(
278
+ uniqBy([...lanes, this.defaultLane, this.currentLane, this.viewedLane], (lane) => lane?.id.toString())
279
+ );
280
+ this.lanes = allUniqueLanes;
253
281
  this.laneIdsByScope = LanesModel.groupLaneIdsByScope(this.lanes.map((lane) => lane.id));
254
282
  const { byId, byName } = LanesModel.groupByComponentNameAndId(this.lanes);
255
283
  this.lanesByComponentId = byId;
256
284
  this.lanesByComponentName = byName;
257
285
  }
258
286
 
259
- readonly laneIdsByScope: Map<string, LaneId[]>;
260
- readonly lanesByComponentName: Map<string, LaneModel[]>;
261
- readonly lanesByComponentId: Map<string, LaneModel[]>;
287
+ laneIdsByScope: Map<string, LaneId[]>;
288
+ lanesByComponentName: Map<string, LaneModel[]>;
289
+ lanesByComponentId: Map<string, LaneModel[]>;
262
290
 
263
291
  viewedLane?: LaneModel;
264
292
  currentLane?: LaneModel;
265
- readonly lanes: LaneModel[];
293
+ defaultLane?: LaneModel;
294
+ lanes: LaneModel[];
266
295
 
267
296
  getLaneComponentUrlByVersion = (componentId: ComponentID, laneId?: LaneId) => {
268
297
  // if there is no version, the component is new and is on main
@@ -306,7 +335,7 @@ export class LanesModel {
306
335
  return comps.find((component) => component.fullName === idFromUrl);
307
336
  };
308
337
 
309
- getDefaultLane = () => this.lanes.find((lane) => lane.id.isDefault());
338
+ getDefaultLane = () => this.defaultLane;
310
339
  getNonMainLanes = () => this.lanes.filter((lane) => !lane.id.isDefault());
311
340
 
312
341
  isInViewedLane = (componentId: ComponentID, includeVersion?: boolean) => {
@@ -355,4 +384,15 @@ export class LanesModel {
355
384
  (lane) => !lane.id.isDefault() && (!laneId || lane.id.isEqual(laneId))
356
385
  );
357
386
  };
387
+ addLanes(newLanes: LaneModel[] = []) {
388
+ this.lanes = LanesModel.concatLanes(this.lanes, newLanes);
389
+ this.laneIdsByScope = LanesModel.groupLaneIdsByScope(this.lanes.map((lane) => lane.id));
390
+ const { byId, byName } = LanesModel.groupByComponentNameAndId(this.lanes);
391
+ this.lanesByComponentId = byId;
392
+ this.lanesByComponentName = byName;
393
+ }
394
+
395
+ static concatLanes(lanes: LaneModel[] = [], newLanes: LaneModel[] = []): LaneModel[] {
396
+ return compact(uniqBy([...lanes, ...newLanes], (lane) => lane?.id.toString()));
397
+ }
358
398
  }
package/package.json CHANGED
@@ -1,21 +1,23 @@
1
1
  {
2
2
  "name": "@teambit/lanes.ui.models.lanes-model",
3
- "version": "0.0.156",
3
+ "version": "0.0.158",
4
4
  "homepage": "https://bit.cloud/teambit/lanes/ui/models/lanes-model",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.lanes",
8
8
  "name": "ui/models/lanes-model",
9
- "version": "0.0.156"
9
+ "version": "0.0.158"
10
10
  },
11
11
  "dependencies": {
12
+ "lodash": "4.17.21",
12
13
  "path-to-regexp": "6.2.0",
13
14
  "core-js": "^3.0.0",
14
15
  "@teambit/base-ui.utils.string.affix": "1.0.0",
15
16
  "@teambit/component-id": "0.0.427",
16
- "@teambit/lane-id": "0.0.256"
17
+ "@teambit/lane-id": "0.0.258"
17
18
  },
18
19
  "devDependencies": {
20
+ "@types/lodash": "4.14.165",
19
21
  "@types/mocha": "9.1.0",
20
22
  "@types/node": "12.20.4",
21
23
  "@types/react": "^17.0.8",