@teambit/workspace 0.0.816 → 0.0.819
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/build-graph-from-fs.js +1 -1
- package/dist/build-graph-from-fs.js.map +1 -1
- package/dist/workspace-component/workspace-component-loader.d.ts +2 -3
- package/dist/workspace-component/workspace-component-loader.js +12 -31
- package/dist/workspace-component/workspace-component-loader.js.map +1 -1
- package/dist/workspace.d.ts +3 -4
- package/dist/workspace.js +8 -9
- package/dist/workspace.js.map +1 -1
- package/dist/workspace.provider.js +1 -1
- package/dist/workspace.provider.js.map +1 -1
- package/package-tar/teambit-workspace-0.0.819.tgz +0 -0
- package/package.json +30 -30
- package/{preview-1660447667955.js → preview-1660707067764.js} +2 -2
- package/workspace-component/workspace-component-loader.ts +11 -28
- package/package-tar/teambit-workspace-0.0.816.tgz +0 -0
|
@@ -241,7 +241,7 @@ class GraphFromFsBuilder {
|
|
|
241
241
|
const isOnWorkspace = Boolean(componentMap);
|
|
242
242
|
|
|
243
243
|
if (isOnWorkspace) {
|
|
244
|
-
return this.consumer.
|
|
244
|
+
return this.consumer.loadComponent(componentId);
|
|
245
245
|
} // a dependency might have been installed as a package in the workspace, and as such doesn't
|
|
246
246
|
// have a componentMap.
|
|
247
247
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GraphFromFsBuilder","constructor","workspace","logger","ignoreIds","BitIds","shouldLoadItsDeps","LegacyGraph","consumer","buildGraph","ids","debug","length","start","Date","now","components","loadManyComponents","processManyComponents","graph","getAllDepsUnfiltered","component","getAllDependenciesIds","difference","getAllDepsFiltered","depsWithoutIgnore","shouldLoadFunc","deps","mapSeries","depId","shouldLoad","push","fromArray","compact","depth","importObjects","allDependencies","processOneComponent","allDependenciesFlattened","flatten","allDeps","map","c","flat","allDepsWithScope","filter","dep","hasScope","scopeComponentsImporter","ScopeComponentsImporter","scope","importMany","uniqFromArray","throwForDependencyNotFound","shouldThrowOnMissingDep","idStr","id","toString","completed","includes","allIds","Object","entries","depsIdsGroupedByType","forEach","depType","depsIds","has","hasNode","Error","setEdge","componentsIds","dependenciesOf","comp","fromGraph","node","loadComponent","setNode","err","ComponentNotFound","BitError","error","componentId","componentMap","bitMap","getComponentIfExist","isOnWorkspace","Boolean","loadComponentForCapsule","componentFromModel","loadComponentFromModel","clone"],"sources":["build-graph-from-fs.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { flatten } from 'lodash';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport BitIds from '@teambit/legacy/dist/bit-id/bit-ids';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport LegacyGraph from '@teambit/legacy/dist/scope/graph/graph';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport compact from 'lodash.compact';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { Logger } from '@teambit/logger';\nimport { ComponentNotFound } from '@teambit/scope';\nimport { BitError } from '@teambit/bit-error';\nimport { Workspace } from './workspace';\n\nexport type ShouldLoadFunc = (bitId: BitId) => Promise<boolean>;\n\nexport class GraphFromFsBuilder {\n private graph = new LegacyGraph();\n private completed: string[] = [];\n private depth = 1;\n private shouldThrowOnMissingDep = true;\n private consumer: Consumer;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ignoreIds = new BitIds(),\n private shouldLoadItsDeps?: ShouldLoadFunc\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n /**\n * create a graph with all dependencies and flattened dependencies of the given components.\n * the nodes are components and the edges has a label of the dependency type.\n *\n * the way how it is done is iterations by depths. each depth we gather all the dependencies of\n * that depths, make sure all objects exist and then check their dependencies for the next depth.\n * once there is no dependency left, we're on the last depth level and the graph is ready.\n *\n * for example, imagine the following graph:\n * A1 -> A2 -> A3\n * B1 -> B2 -> B3\n * C1 -> C2 -> C3\n *\n * where the buildGraph is given [A1, B1, C1].\n * first, it saves all these components as nodes in the graph. then, it finds the dependencies of\n * the next level, in this case they're [A2, B2, C2]. it runs `importMany` in case some objects\n * are missing. then, it loads them all (some from FS, some from the model) and sets the edges\n * between the component and the dependencies.\n * once done, it finds all their dependencies, which are [A3, B3, C3] and repeat the process\n * above. since there are no more dependencies, the graph is completed.\n * in this case, the total depth levels are 3.\n *\n * even with a huge project, there are not many depth levels. by iterating through depth levels\n * we keep performance sane as the importMany doesn't run multiple time and therefore the round\n * trips to the remotes are minimal.\n *\n * normally, one importMany of the seeders is enough as importMany knows to fetch all flattened.\n * however, since this buildGraph is performed on the workspace, a dependency may be new or\n * modified and as such, we don't know its flattened yet.\n */\n async buildGraph(ids: BitId[]): Promise<LegacyGraph> {\n this.logger.debug(`GraphFromFsBuilder, buildGraph with ${ids.length} seeders`);\n const start = Date.now();\n const components = await this.loadManyComponents(ids, '<none>');\n await this.processManyComponents(components);\n this.logger.debug(\n `GraphFromFsBuilder, buildGraph with ${ids.length} seeders completed (${(Date.now() - start) / 1000} sec)`\n );\n return this.graph;\n }\n\n private getAllDepsUnfiltered(component: Component) {\n return component.getAllDependenciesIds().difference(this.ignoreIds);\n }\n\n private async getAllDepsFiltered(component: Component): Promise<BitIds> {\n const depsWithoutIgnore = this.getAllDepsUnfiltered(component);\n const shouldLoadFunc = this.shouldLoadItsDeps;\n if (!shouldLoadFunc) return depsWithoutIgnore;\n const deps = await mapSeries(depsWithoutIgnore, async (depId) => {\n const shouldLoad = await shouldLoadFunc(depId);\n if (!shouldLoad) this.ignoreIds.push(depId);\n return shouldLoad ? depId : null;\n });\n return BitIds.fromArray(compact(deps));\n }\n\n private async processManyComponents(components: Component[]) {\n this.logger.debug(`GraphFromFsBuilder.processManyComponents depth ${this.depth}, ${components.length} components`);\n this.depth += 1;\n await this.importObjects(components);\n const allDependencies = await mapSeries(components, (component) => this.processOneComponent(component));\n const allDependenciesFlattened = flatten(allDependencies);\n if (allDependenciesFlattened.length) await this.processManyComponents(allDependenciesFlattened);\n }\n\n private async importObjects(components: Component[]) {\n const allDeps = components.map((c) => this.getAllDepsUnfiltered(c)).flat();\n const allDepsWithScope = allDeps.filter((dep) => dep.hasScope());\n const scopeComponentsImporter = new ScopeComponentsImporter(this.consumer.scope);\n await scopeComponentsImporter.importMany({\n ids: BitIds.uniqFromArray(allDepsWithScope),\n throwForDependencyNotFound: this.shouldThrowOnMissingDep,\n });\n }\n\n private async processOneComponent(component: Component) {\n const idStr = component.id.toString();\n if (this.completed.includes(idStr)) return [];\n const allIds = await this.getAllDepsFiltered(component);\n\n const allDependencies = await this.loadManyComponents(allIds, idStr);\n Object.entries(component.depsIdsGroupedByType).forEach(([depType, depsIds]) => {\n depsIds.forEach((depId) => {\n if (this.ignoreIds.has(depId)) return;\n if (!this.graph.hasNode(depId.toString())) {\n throw new Error(`buildOneComponent: missing node of ${depId.toString()}`);\n }\n this.graph.setEdge(idStr, depId.toString(), depType);\n });\n });\n this.completed.push(idStr);\n return allDependencies;\n }\n\n private async loadManyComponents(componentsIds: BitId[], dependenciesOf: string): Promise<Component[]> {\n const components = await mapSeries(componentsIds, async (comp: BitId) => {\n const idStr = comp.toString();\n const fromGraph = this.graph.node(idStr);\n if (fromGraph) return fromGraph;\n try {\n const component = await this.loadComponent(comp);\n this.graph.setNode(idStr, component);\n return component;\n } catch (err: any) {\n if (err instanceof ComponentNotFound) {\n throw new BitError(\n `error: component \"${idStr}\" was not found.\\nthis component is a dependency of \"${dependenciesOf}\" and is needed as part of the graph generation`\n );\n }\n this.logger.error(`failed loading dependencies of ${dependenciesOf}`);\n throw err;\n }\n });\n return components;\n }\n private async loadComponent(componentId: BitId): Promise<Component> {\n const componentMap = this.consumer.bitMap.getComponentIfExist(componentId);\n const isOnWorkspace = Boolean(componentMap);\n if (isOnWorkspace) {\n return this.consumer.loadComponentForCapsule(componentId);\n }\n // a dependency might have been installed as a package in the workspace, and as such doesn't\n // have a componentMap.\n const componentFromModel = await this.consumer.loadComponentFromModel(componentId);\n return componentFromModel.clone();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["GraphFromFsBuilder","constructor","workspace","logger","ignoreIds","BitIds","shouldLoadItsDeps","LegacyGraph","consumer","buildGraph","ids","debug","length","start","Date","now","components","loadManyComponents","processManyComponents","graph","getAllDepsUnfiltered","component","getAllDependenciesIds","difference","getAllDepsFiltered","depsWithoutIgnore","shouldLoadFunc","deps","mapSeries","depId","shouldLoad","push","fromArray","compact","depth","importObjects","allDependencies","processOneComponent","allDependenciesFlattened","flatten","allDeps","map","c","flat","allDepsWithScope","filter","dep","hasScope","scopeComponentsImporter","ScopeComponentsImporter","scope","importMany","uniqFromArray","throwForDependencyNotFound","shouldThrowOnMissingDep","idStr","id","toString","completed","includes","allIds","Object","entries","depsIdsGroupedByType","forEach","depType","depsIds","has","hasNode","Error","setEdge","componentsIds","dependenciesOf","comp","fromGraph","node","loadComponent","setNode","err","ComponentNotFound","BitError","error","componentId","componentMap","bitMap","getComponentIfExist","isOnWorkspace","Boolean","componentFromModel","loadComponentFromModel","clone"],"sources":["build-graph-from-fs.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { flatten } from 'lodash';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport BitIds from '@teambit/legacy/dist/bit-id/bit-ids';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport LegacyGraph from '@teambit/legacy/dist/scope/graph/graph';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport compact from 'lodash.compact';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { Logger } from '@teambit/logger';\nimport { ComponentNotFound } from '@teambit/scope';\nimport { BitError } from '@teambit/bit-error';\nimport { Workspace } from './workspace';\n\nexport type ShouldLoadFunc = (bitId: BitId) => Promise<boolean>;\n\nexport class GraphFromFsBuilder {\n private graph = new LegacyGraph();\n private completed: string[] = [];\n private depth = 1;\n private shouldThrowOnMissingDep = true;\n private consumer: Consumer;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ignoreIds = new BitIds(),\n private shouldLoadItsDeps?: ShouldLoadFunc\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n /**\n * create a graph with all dependencies and flattened dependencies of the given components.\n * the nodes are components and the edges has a label of the dependency type.\n *\n * the way how it is done is iterations by depths. each depth we gather all the dependencies of\n * that depths, make sure all objects exist and then check their dependencies for the next depth.\n * once there is no dependency left, we're on the last depth level and the graph is ready.\n *\n * for example, imagine the following graph:\n * A1 -> A2 -> A3\n * B1 -> B2 -> B3\n * C1 -> C2 -> C3\n *\n * where the buildGraph is given [A1, B1, C1].\n * first, it saves all these components as nodes in the graph. then, it finds the dependencies of\n * the next level, in this case they're [A2, B2, C2]. it runs `importMany` in case some objects\n * are missing. then, it loads them all (some from FS, some from the model) and sets the edges\n * between the component and the dependencies.\n * once done, it finds all their dependencies, which are [A3, B3, C3] and repeat the process\n * above. since there are no more dependencies, the graph is completed.\n * in this case, the total depth levels are 3.\n *\n * even with a huge project, there are not many depth levels. by iterating through depth levels\n * we keep performance sane as the importMany doesn't run multiple time and therefore the round\n * trips to the remotes are minimal.\n *\n * normally, one importMany of the seeders is enough as importMany knows to fetch all flattened.\n * however, since this buildGraph is performed on the workspace, a dependency may be new or\n * modified and as such, we don't know its flattened yet.\n */\n async buildGraph(ids: BitId[]): Promise<LegacyGraph> {\n this.logger.debug(`GraphFromFsBuilder, buildGraph with ${ids.length} seeders`);\n const start = Date.now();\n const components = await this.loadManyComponents(ids, '<none>');\n await this.processManyComponents(components);\n this.logger.debug(\n `GraphFromFsBuilder, buildGraph with ${ids.length} seeders completed (${(Date.now() - start) / 1000} sec)`\n );\n return this.graph;\n }\n\n private getAllDepsUnfiltered(component: Component) {\n return component.getAllDependenciesIds().difference(this.ignoreIds);\n }\n\n private async getAllDepsFiltered(component: Component): Promise<BitIds> {\n const depsWithoutIgnore = this.getAllDepsUnfiltered(component);\n const shouldLoadFunc = this.shouldLoadItsDeps;\n if (!shouldLoadFunc) return depsWithoutIgnore;\n const deps = await mapSeries(depsWithoutIgnore, async (depId) => {\n const shouldLoad = await shouldLoadFunc(depId);\n if (!shouldLoad) this.ignoreIds.push(depId);\n return shouldLoad ? depId : null;\n });\n return BitIds.fromArray(compact(deps));\n }\n\n private async processManyComponents(components: Component[]) {\n this.logger.debug(`GraphFromFsBuilder.processManyComponents depth ${this.depth}, ${components.length} components`);\n this.depth += 1;\n await this.importObjects(components);\n const allDependencies = await mapSeries(components, (component) => this.processOneComponent(component));\n const allDependenciesFlattened = flatten(allDependencies);\n if (allDependenciesFlattened.length) await this.processManyComponents(allDependenciesFlattened);\n }\n\n private async importObjects(components: Component[]) {\n const allDeps = components.map((c) => this.getAllDepsUnfiltered(c)).flat();\n const allDepsWithScope = allDeps.filter((dep) => dep.hasScope());\n const scopeComponentsImporter = new ScopeComponentsImporter(this.consumer.scope);\n await scopeComponentsImporter.importMany({\n ids: BitIds.uniqFromArray(allDepsWithScope),\n throwForDependencyNotFound: this.shouldThrowOnMissingDep,\n });\n }\n\n private async processOneComponent(component: Component) {\n const idStr = component.id.toString();\n if (this.completed.includes(idStr)) return [];\n const allIds = await this.getAllDepsFiltered(component);\n\n const allDependencies = await this.loadManyComponents(allIds, idStr);\n Object.entries(component.depsIdsGroupedByType).forEach(([depType, depsIds]) => {\n depsIds.forEach((depId) => {\n if (this.ignoreIds.has(depId)) return;\n if (!this.graph.hasNode(depId.toString())) {\n throw new Error(`buildOneComponent: missing node of ${depId.toString()}`);\n }\n this.graph.setEdge(idStr, depId.toString(), depType);\n });\n });\n this.completed.push(idStr);\n return allDependencies;\n }\n\n private async loadManyComponents(componentsIds: BitId[], dependenciesOf: string): Promise<Component[]> {\n const components = await mapSeries(componentsIds, async (comp: BitId) => {\n const idStr = comp.toString();\n const fromGraph = this.graph.node(idStr);\n if (fromGraph) return fromGraph;\n try {\n const component = await this.loadComponent(comp);\n this.graph.setNode(idStr, component);\n return component;\n } catch (err: any) {\n if (err instanceof ComponentNotFound) {\n throw new BitError(\n `error: component \"${idStr}\" was not found.\\nthis component is a dependency of \"${dependenciesOf}\" and is needed as part of the graph generation`\n );\n }\n this.logger.error(`failed loading dependencies of ${dependenciesOf}`);\n throw err;\n }\n });\n return components;\n }\n private async loadComponent(componentId: BitId): Promise<Component> {\n const componentMap = this.consumer.bitMap.getComponentIfExist(componentId);\n const isOnWorkspace = Boolean(componentMap);\n if (isOnWorkspace) {\n return this.consumer.loadComponent(componentId);\n }\n // a dependency might have been installed as a package in the workspace, and as such doesn't\n // have a componentMap.\n const componentFromModel = await this.consumer.loadComponentFromModel(componentId);\n return componentFromModel.clone();\n }\n}\n"],"mappings":"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"}
|
|
@@ -11,11 +11,10 @@ export declare class WorkspaceComponentLoader {
|
|
|
11
11
|
private dependencyResolver;
|
|
12
12
|
private envs;
|
|
13
13
|
private componentsCache;
|
|
14
|
-
private componentsCacheForCapsule;
|
|
15
14
|
constructor(workspace: Workspace, logger: Logger, dependencyResolver: DependencyResolverMain, envs: EnvsMain);
|
|
16
|
-
getMany(ids: Array<ComponentID
|
|
15
|
+
getMany(ids: Array<ComponentID>): Promise<Component[]>;
|
|
17
16
|
getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]>;
|
|
18
|
-
get(componentId: ComponentID,
|
|
17
|
+
get(componentId: ComponentID, legacyComponent?: ConsumerComponent, useCache?: boolean, storeInCache?: boolean, loadOpts?: ComponentLoadOptions): Promise<Component>;
|
|
19
18
|
getIfExist(componentId: ComponentID): Promise<Component | undefined>;
|
|
20
19
|
private addMultipleEnvsIssueIfNeeded;
|
|
21
20
|
clearCache(): void;
|
|
@@ -185,29 +185,24 @@ function _workspaceComponent() {
|
|
|
185
185
|
|
|
186
186
|
class WorkspaceComponentLoader {
|
|
187
187
|
// cache loaded components
|
|
188
|
-
// cache loaded components for capsule, must not use the cache for the workspace
|
|
189
188
|
constructor(workspace, logger, dependencyResolver, envs) {
|
|
190
189
|
this.workspace = workspace;
|
|
191
190
|
this.logger = logger;
|
|
192
191
|
this.dependencyResolver = dependencyResolver;
|
|
193
192
|
this.envs = envs;
|
|
194
193
|
(0, _defineProperty2().default)(this, "componentsCache", void 0);
|
|
195
|
-
(0, _defineProperty2().default)(this, "componentsCacheForCapsule", void 0);
|
|
196
194
|
this.componentsCache = (0, _cacheFactory().createInMemoryCache)({
|
|
197
195
|
maxSize: (0, _inMemoryCache().getMaxSizeForComponents)()
|
|
198
196
|
});
|
|
199
|
-
this.componentsCacheForCapsule = (0, _cacheFactory().createInMemoryCache)({
|
|
200
|
-
maxSize: (0, _inMemoryCache().getMaxSizeForComponents)()
|
|
201
|
-
});
|
|
202
197
|
}
|
|
203
198
|
|
|
204
|
-
async getMany(ids
|
|
199
|
+
async getMany(ids) {
|
|
205
200
|
const idsWithoutEmpty = (0, _lodash().compact)(ids);
|
|
206
201
|
const errors = [];
|
|
207
202
|
const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);
|
|
208
203
|
const componentsP = (0, _pMapSeries().default)(idsWithoutEmpty, async id => {
|
|
209
204
|
longProcessLogger.logProgress(id.toString());
|
|
210
|
-
return this.get(id
|
|
205
|
+
return this.get(id).catch(err => {
|
|
211
206
|
if (this.isComponentNotExistsError(err)) {
|
|
212
207
|
errors.push({
|
|
213
208
|
id,
|
|
@@ -254,16 +249,16 @@ class WorkspaceComponentLoader {
|
|
|
254
249
|
return errors;
|
|
255
250
|
}
|
|
256
251
|
|
|
257
|
-
async get(componentId,
|
|
252
|
+
async get(componentId, legacyComponent, useCache = true, storeInCache = true, loadOpts) {
|
|
258
253
|
const bitIdWithVersion = (0, _utils().getLatestVersionNumber)(this.workspace.consumer.bitmapIdsFromCurrentLane, componentId._legacy);
|
|
259
254
|
const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;
|
|
260
|
-
const fromCache = this.getFromCache(id,
|
|
255
|
+
const fromCache = this.getFromCache(id, loadOpts);
|
|
261
256
|
|
|
262
257
|
if (fromCache && useCache) {
|
|
263
258
|
return fromCache;
|
|
264
259
|
}
|
|
265
260
|
|
|
266
|
-
const consumerComponent = legacyComponent || (await this.getConsumerComponent(id
|
|
261
|
+
const consumerComponent = legacyComponent || (await this.getConsumerComponent(id)); // in case of out-of-sync, the id may changed during the load process
|
|
267
262
|
|
|
268
263
|
const updatedId = consumerComponent ? _component().ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;
|
|
269
264
|
const component = await this.loadOne(updatedId, consumerComponent, loadOpts);
|
|
@@ -271,7 +266,7 @@ class WorkspaceComponentLoader {
|
|
|
271
266
|
if (storeInCache) {
|
|
272
267
|
this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded
|
|
273
268
|
|
|
274
|
-
this.saveInCache(component,
|
|
269
|
+
this.saveInCache(component, loadOpts);
|
|
275
270
|
}
|
|
276
271
|
|
|
277
272
|
return component;
|
|
@@ -302,7 +297,6 @@ class WorkspaceComponentLoader {
|
|
|
302
297
|
|
|
303
298
|
clearCache() {
|
|
304
299
|
this.componentsCache.deleteAll();
|
|
305
|
-
this.componentsCacheForCapsule.deleteAll();
|
|
306
300
|
}
|
|
307
301
|
|
|
308
302
|
clearComponentCache(id) {
|
|
@@ -313,12 +307,6 @@ class WorkspaceComponentLoader {
|
|
|
313
307
|
this.componentsCache.delete(cacheKey);
|
|
314
308
|
}
|
|
315
309
|
}
|
|
316
|
-
|
|
317
|
-
for (const cacheKey of this.componentsCacheForCapsule.keys()) {
|
|
318
|
-
if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {
|
|
319
|
-
this.componentsCacheForCapsule.delete(cacheKey);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
310
|
}
|
|
323
311
|
|
|
324
312
|
async loadOne(id, consumerComponent, loadOpts) {
|
|
@@ -352,14 +340,9 @@ class WorkspaceComponentLoader {
|
|
|
352
340
|
return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);
|
|
353
341
|
}
|
|
354
342
|
|
|
355
|
-
saveInCache(component,
|
|
343
|
+
saveInCache(component, loadOpts) {
|
|
356
344
|
const cacheKey = createComponentCacheKey(component.id, loadOpts);
|
|
357
|
-
|
|
358
|
-
if (forCapsule) {
|
|
359
|
-
this.componentsCacheForCapsule.set(cacheKey, component);
|
|
360
|
-
} else {
|
|
361
|
-
this.componentsCache.set(cacheKey, component);
|
|
362
|
-
}
|
|
345
|
+
this.componentsCache.set(cacheKey, component);
|
|
363
346
|
}
|
|
364
347
|
/**
|
|
365
348
|
* make sure that not only the id-str match, but also the legacy-id.
|
|
@@ -370,9 +353,9 @@ class WorkspaceComponentLoader {
|
|
|
370
353
|
*/
|
|
371
354
|
|
|
372
355
|
|
|
373
|
-
getFromCache(id,
|
|
356
|
+
getFromCache(id, loadOpts) {
|
|
374
357
|
const cacheKey = createComponentCacheKey(id, loadOpts);
|
|
375
|
-
const fromCache =
|
|
358
|
+
const fromCache = this.componentsCache.get(cacheKey);
|
|
376
359
|
|
|
377
360
|
if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {
|
|
378
361
|
return fromCache;
|
|
@@ -381,11 +364,9 @@ class WorkspaceComponentLoader {
|
|
|
381
364
|
return undefined;
|
|
382
365
|
}
|
|
383
366
|
|
|
384
|
-
async getConsumerComponent(id
|
|
367
|
+
async getConsumerComponent(id) {
|
|
385
368
|
try {
|
|
386
|
-
return
|
|
387
|
-
await this.workspace.consumer.loadComponentForCapsule(id._legacy) : // eslint-disable-next-line @typescript-eslint/return-await
|
|
388
|
-
await this.workspace.consumer.loadComponent(id._legacy);
|
|
369
|
+
return await this.workspace.consumer.loadComponent(id._legacy);
|
|
389
370
|
} catch (err) {
|
|
390
371
|
// don't return undefined for any error. otherwise, if the component is invalid (e.g. main
|
|
391
372
|
// file is missing) it returns the model component later unexpectedly, or if it's new, it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","componentsCacheForCapsule","getMany","ids","forCapsule","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","catch","err","isComponentNotExistsError","push","undefined","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","loadOpts","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","uniq","map","env","state","issues","getOrCreate","IssuesClasses","MultipleEnvs","data","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","loadComponentForCapsule","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","upsertExtensionData","envsData","getEnvSystemDescriptor","policy","mergeVariantPolicies","config","extractDepsFromLegacy","depResolverData","serialize","EnvsAspect","DependencyResolverAspect","Promise","all","updatedAspectList","aspects","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","JSON","stringify","sortKeys","obj","fromPairs","sort","k1","k2","localeCompare"],"sources":["workspace-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, InvalidComponent, State, TagMap } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport mapSeries from 'p-map-series';\nimport { compact, fromPairs, uniq } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport { getLatestVersionNumber } from '@teambit/legacy/dist/utils';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private componentsCacheForCapsule: InMemoryCache<Component>; // cache loaded components for capsule, must not use the cache for the workspace\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private envs: EnvsMain\n ) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.componentsCacheForCapsule = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n async getMany(ids: Array<ComponentID>, forCapsule = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n return this.get(id, forCapsule).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n forCapsule = false,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLane,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, forCapsule, loadOpts);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id, forCapsule));\n // in case of out-of-sync, the id may changed during the load process\n const updatedId = consumerComponent ? ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;\n const component = await this.loadOne(updatedId, consumerComponent, loadOpts);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, forCapsule, loadOpts);\n }\n return component;\n }\n\n async getIfExist(componentId: ComponentID) {\n try {\n return await this.get(componentId);\n } catch (err: any) {\n if (this.isComponentNotExistsError(err)) {\n return undefined;\n }\n throw err;\n }\n }\n\n private addMultipleEnvsIssueIfNeeded(component: Component) {\n const envs = this.envs.getAllEnvsConfiguredOnComponent(component);\n const envIds = uniq(envs.map((env) => env.id));\n if (envIds.length < 2) {\n return;\n }\n component.state.issues.getOrCreate(IssuesClasses.MultipleEnvs).data = envIds;\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n this.componentsCacheForCapsule.deleteAll();\n }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n for (const cacheKey of this.componentsCache.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCache.delete(cacheKey);\n }\n }\n for (const cacheKey of this.componentsCacheForCapsule.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCacheForCapsule.delete(cacheKey);\n }\n }\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent, loadOpts?: ComponentLoadOptions) {\n const componentFromScope = await this.workspace.scope.get(id);\n if (!consumerComponent) {\n if (!componentFromScope) throw new MissingBitMapComponent(id.toString());\n return componentFromScope;\n }\n const { extensions } = await this.workspace.componentExtensions(id, componentFromScope);\n const extensionsFromConsumerComponent = consumerComponent.extensions || new ExtensionDataList();\n // Merge extensions added by the legacy code in memory (for example data of dependency resolver)\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConsumerComponent,\n extensions,\n ]).filterRemovedExtensions();\n\n // temporarily mutate consumer component extensions until we remove all direct access from legacy to extensions data\n // TODO: remove this once we remove all direct access from legacy code to extensions data\n consumerComponent.extensions = extensionDataList;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensionDataList),\n await this.workspace.createAspectList(extensionDataList),\n ComponentFS.fromVinyls(consumerComponent.files),\n consumerComponent.dependencies,\n consumerComponent\n );\n if (componentFromScope) {\n // Removed by @gilad. do not mutate the component from the scope\n // componentFromScope.state = state;\n // const workspaceComponent = WorkspaceComponent.fromComponent(componentFromScope, this.workspace);\n const workspaceComponent = new WorkspaceComponent(\n componentFromScope.id,\n componentFromScope.head,\n state,\n componentFromScope.tags,\n this.workspace\n );\n return this.executeLoadSlot(workspaceComponent, loadOpts);\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);\n }\n\n private saveInCache(component: Component, forCapsule: boolean, loadOpts?: ComponentLoadOptions): void {\n const cacheKey = createComponentCacheKey(component.id, loadOpts);\n if (forCapsule) {\n this.componentsCacheForCapsule.set(cacheKey, component);\n } else {\n this.componentsCache.set(cacheKey, component);\n }\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID, forCapsule: boolean, loadOpts?: ComponentLoadOptions): Component | undefined {\n const cacheKey = createComponentCacheKey(id, loadOpts);\n const fromCache = forCapsule ? this.componentsCacheForCapsule.get(cacheKey) : this.componentsCache.get(cacheKey);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private async getConsumerComponent(id: ComponentID, forCapsule = false): Promise<ConsumerComponent | undefined> {\n try {\n return forCapsule\n ? // eslint-disable-next-line @typescript-eslint/return-await\n await this.workspace.consumer.loadComponentForCapsule(id._legacy)\n : // eslint-disable-next-line @typescript-eslint/return-await\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n // don't return undefined for any error. otherwise, if the component is invalid (e.g. main\n // file is missing) it returns the model component later unexpectedly, or if it's new, it\n // shows MissingBitMapComponent error incorrectly.\n if (this.isComponentNotExistsError(err)) {\n this.logger.debug(\n `failed loading component \"${id.toString()}\" from the workspace due to \"${err.name}\" error\\n${err.message}`\n );\n return undefined;\n }\n throw err;\n }\n }\n\n private isComponentNotExistsError(err: Error): boolean {\n return (\n err instanceof ComponentNotFound ||\n err instanceof MissingBitMapComponent ||\n err instanceof ComponentNotFoundInPath\n );\n }\n\n private async executeLoadSlot(component: Component, loadOpts?: ComponentLoadOptions) {\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component, loadOpts);\n return this.upsertExtensionData(component, extension, data);\n });\n\n // Special load events which runs from the workspace but should run from the correct aspect\n // TODO: remove this once those extensions dependent on workspace\n const envsData = await this.workspace.getEnvSystemDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(component.config.extensions);\n const dependencies = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n dependencies,\n policy: policy.serialize(),\n };\n\n promises.push(this.upsertExtensionData(component, EnvsAspect.id, envsData));\n promises.push(this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData));\n\n await Promise.all(promises);\n\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n const updatedAspectList = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = updatedAspectList;\n return component;\n }\n\n private newComponentFromState(id: ComponentID, state: State): Component {\n return new WorkspaceComponent(id, null, state, new TagMap(), this.workspace);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension && data) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state.config.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n}\n\nfunction createComponentCacheKey(id: ComponentID, loadOpts?: ComponentLoadOptions): string {\n return `${id.toString()}:${JSON.stringify(sortKeys(loadOpts ?? {}))}`;\n}\n\nfunction sortKeys(obj: Object) {\n return fromPairs(Object.entries(obj).sort(([k1], [k2]) => k1.localeCompare(k2)));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","catch","err","isComponentNotExistsError","push","undefined","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","loadOpts","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","uniq","map","env","state","issues","getOrCreate","IssuesClasses","MultipleEnvs","data","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","upsertExtensionData","envsData","getEnvSystemDescriptor","policy","mergeVariantPolicies","config","extractDepsFromLegacy","depResolverData","serialize","EnvsAspect","DependencyResolverAspect","Promise","all","updatedAspectList","aspects","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","JSON","stringify","sortKeys","obj","fromPairs","sort","k1","k2","localeCompare"],"sources":["workspace-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, InvalidComponent, State, TagMap } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport mapSeries from 'p-map-series';\nimport { compact, fromPairs, uniq } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport { getLatestVersionNumber } from '@teambit/legacy/dist/utils';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private envs: EnvsMain\n ) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n async getMany(ids: Array<ComponentID>): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n return this.get(id).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLane,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, loadOpts);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id));\n // in case of out-of-sync, the id may changed during the load process\n const updatedId = consumerComponent ? ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;\n const component = await this.loadOne(updatedId, consumerComponent, loadOpts);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, loadOpts);\n }\n return component;\n }\n\n async getIfExist(componentId: ComponentID) {\n try {\n return await this.get(componentId);\n } catch (err: any) {\n if (this.isComponentNotExistsError(err)) {\n return undefined;\n }\n throw err;\n }\n }\n\n private addMultipleEnvsIssueIfNeeded(component: Component) {\n const envs = this.envs.getAllEnvsConfiguredOnComponent(component);\n const envIds = uniq(envs.map((env) => env.id));\n if (envIds.length < 2) {\n return;\n }\n component.state.issues.getOrCreate(IssuesClasses.MultipleEnvs).data = envIds;\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n for (const cacheKey of this.componentsCache.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCache.delete(cacheKey);\n }\n }\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent, loadOpts?: ComponentLoadOptions) {\n const componentFromScope = await this.workspace.scope.get(id);\n if (!consumerComponent) {\n if (!componentFromScope) throw new MissingBitMapComponent(id.toString());\n return componentFromScope;\n }\n const { extensions } = await this.workspace.componentExtensions(id, componentFromScope);\n const extensionsFromConsumerComponent = consumerComponent.extensions || new ExtensionDataList();\n // Merge extensions added by the legacy code in memory (for example data of dependency resolver)\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConsumerComponent,\n extensions,\n ]).filterRemovedExtensions();\n\n // temporarily mutate consumer component extensions until we remove all direct access from legacy to extensions data\n // TODO: remove this once we remove all direct access from legacy code to extensions data\n consumerComponent.extensions = extensionDataList;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensionDataList),\n await this.workspace.createAspectList(extensionDataList),\n ComponentFS.fromVinyls(consumerComponent.files),\n consumerComponent.dependencies,\n consumerComponent\n );\n if (componentFromScope) {\n // Removed by @gilad. do not mutate the component from the scope\n // componentFromScope.state = state;\n // const workspaceComponent = WorkspaceComponent.fromComponent(componentFromScope, this.workspace);\n const workspaceComponent = new WorkspaceComponent(\n componentFromScope.id,\n componentFromScope.head,\n state,\n componentFromScope.tags,\n this.workspace\n );\n return this.executeLoadSlot(workspaceComponent, loadOpts);\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);\n }\n\n private saveInCache(component: Component, loadOpts?: ComponentLoadOptions): void {\n const cacheKey = createComponentCacheKey(component.id, loadOpts);\n this.componentsCache.set(cacheKey, component);\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID, loadOpts?: ComponentLoadOptions): Component | undefined {\n const cacheKey = createComponentCacheKey(id, loadOpts);\n const fromCache = this.componentsCache.get(cacheKey);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private async getConsumerComponent(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n // don't return undefined for any error. otherwise, if the component is invalid (e.g. main\n // file is missing) it returns the model component later unexpectedly, or if it's new, it\n // shows MissingBitMapComponent error incorrectly.\n if (this.isComponentNotExistsError(err)) {\n this.logger.debug(\n `failed loading component \"${id.toString()}\" from the workspace due to \"${err.name}\" error\\n${err.message}`\n );\n return undefined;\n }\n throw err;\n }\n }\n\n private isComponentNotExistsError(err: Error): boolean {\n return (\n err instanceof ComponentNotFound ||\n err instanceof MissingBitMapComponent ||\n err instanceof ComponentNotFoundInPath\n );\n }\n\n private async executeLoadSlot(component: Component, loadOpts?: ComponentLoadOptions) {\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component, loadOpts);\n return this.upsertExtensionData(component, extension, data);\n });\n\n // Special load events which runs from the workspace but should run from the correct aspect\n // TODO: remove this once those extensions dependent on workspace\n const envsData = await this.workspace.getEnvSystemDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(component.config.extensions);\n const dependencies = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n dependencies,\n policy: policy.serialize(),\n };\n\n promises.push(this.upsertExtensionData(component, EnvsAspect.id, envsData));\n promises.push(this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData));\n\n await Promise.all(promises);\n\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n const updatedAspectList = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = updatedAspectList;\n return component;\n }\n\n private newComponentFromState(id: ComponentID, state: State): Component {\n return new WorkspaceComponent(id, null, state, new TagMap(), this.workspace);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension && data) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state.config.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n}\n\nfunction createComponentCacheKey(id: ComponentID, loadOpts?: ComponentLoadOptions): string {\n return `${id.toString()}:${JSON.stringify(sortKeys(loadOpts ?? {}))}`;\n}\n\nfunction sortKeys(obj: Object) {\n return fromPairs(Object.entries(obj).sort(([k1], [k2]) => k1.localeCompare(k2)));\n}\n"],"mappings":"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"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -251,7 +251,7 @@ export declare class Workspace implements ComponentFactory {
|
|
|
251
251
|
* get a component from workspace
|
|
252
252
|
* @param id component ID
|
|
253
253
|
*/
|
|
254
|
-
get(componentId: ComponentID,
|
|
254
|
+
get(componentId: ComponentID, legacyComponent?: ConsumerComponent, useCache?: boolean, storeInCache?: boolean, loadOpts?: ComponentLoadOptions): Promise<Component>;
|
|
255
255
|
getEnvSystemDescriptor(component: Component): Promise<AspectData>;
|
|
256
256
|
clearCache(): void;
|
|
257
257
|
clearComponentCache(id: ComponentID): void;
|
|
@@ -294,7 +294,7 @@ export declare class Workspace implements ComponentFactory {
|
|
|
294
294
|
*/
|
|
295
295
|
getComponentsByUserInput(all?: boolean, pattern?: string, includeDependents?: boolean): Promise<Component[]>;
|
|
296
296
|
getComponentsUsingEnv(env: string, ignoreVersion?: boolean, throwIfNotFound?: boolean): Promise<Component[]>;
|
|
297
|
-
getMany(ids: Array<ComponentID
|
|
297
|
+
getMany(ids: Array<ComponentID>): Promise<Component[]>;
|
|
298
298
|
getManyByLegacy(components: ConsumerComponent[], loadOpts?: ComponentLoadOptions): Promise<Component[]>;
|
|
299
299
|
/**
|
|
300
300
|
* don't throw an error if the component was not found, simply return undefined.
|
|
@@ -310,9 +310,8 @@ export declare class Workspace implements ComponentFactory {
|
|
|
310
310
|
* It will influence the performance
|
|
311
311
|
* currently it used only for get many of aspects
|
|
312
312
|
* @param ids
|
|
313
|
-
* @param forCapsule
|
|
314
313
|
*/
|
|
315
|
-
importAndGetMany(ids: Array<ComponentID
|
|
314
|
+
importAndGetMany(ids: Array<ComponentID>): Promise<Component[]>;
|
|
316
315
|
importCurrentLaneIfMissing(): Promise<void>;
|
|
317
316
|
/**
|
|
318
317
|
* @deprecated use this.track() instead
|
package/dist/workspace.js
CHANGED
|
@@ -836,9 +836,9 @@ class Workspace {
|
|
|
836
836
|
*/
|
|
837
837
|
|
|
838
838
|
|
|
839
|
-
async get(componentId,
|
|
839
|
+
async get(componentId, legacyComponent, useCache = true, storeInCache = true, loadOpts) {
|
|
840
840
|
this.logger.debug(`get ${componentId.toString()}`);
|
|
841
|
-
const component = await this.componentLoader.get(componentId,
|
|
841
|
+
const component = await this.componentLoader.get(componentId, legacyComponent, useCache, storeInCache, loadOpts); // When loading a component if it's an env make sure to load it as aspect as well
|
|
842
842
|
// We only want to try load it as aspect if it's the first time we load the component
|
|
843
843
|
|
|
844
844
|
const tryLoadAsAspect = this.componentLoadedSelfAsAspects.get(component.id.toString()) === undefined; // const config = this.harmony.get<ConfigMain>('teambit.harmony/config');
|
|
@@ -1157,14 +1157,14 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
1157
1157
|
return (foundEnv === null || foundEnv === void 0 ? void 0 : foundEnv.components) || [];
|
|
1158
1158
|
}
|
|
1159
1159
|
|
|
1160
|
-
async getMany(ids
|
|
1161
|
-
return this.componentLoader.getMany(ids
|
|
1160
|
+
async getMany(ids) {
|
|
1161
|
+
return this.componentLoader.getMany(ids);
|
|
1162
1162
|
}
|
|
1163
1163
|
|
|
1164
1164
|
getManyByLegacy(components, loadOpts) {
|
|
1165
1165
|
return (0, _pMapSeries().default)(components, async component => {
|
|
1166
1166
|
const id = await this.resolveComponentId(component.id);
|
|
1167
|
-
return this.get(id,
|
|
1167
|
+
return this.get(id, component, true, true, loadOpts);
|
|
1168
1168
|
});
|
|
1169
1169
|
}
|
|
1170
1170
|
/**
|
|
@@ -1189,16 +1189,15 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
1189
1189
|
* It will influence the performance
|
|
1190
1190
|
* currently it used only for get many of aspects
|
|
1191
1191
|
* @param ids
|
|
1192
|
-
* @param forCapsule
|
|
1193
1192
|
*/
|
|
1194
1193
|
|
|
1195
1194
|
|
|
1196
|
-
async importAndGetMany(ids
|
|
1195
|
+
async importAndGetMany(ids) {
|
|
1197
1196
|
await this.importCurrentLaneIfMissing();
|
|
1198
1197
|
await this.scope.import(ids, {
|
|
1199
1198
|
reFetchUnBuiltVersion: shouldReFetchUnBuiltVersion()
|
|
1200
1199
|
});
|
|
1201
|
-
return this.componentLoader.getMany(ids
|
|
1200
|
+
return this.componentLoader.getMany(ids);
|
|
1202
1201
|
}
|
|
1203
1202
|
|
|
1204
1203
|
async importCurrentLaneIfMissing() {
|
|
@@ -1642,7 +1641,7 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
1642
1641
|
|
|
1643
1642
|
if (!this.envs.isUsingEnvEnv(env)) {
|
|
1644
1643
|
this.warnedAboutMisconfiguredEnvs.push(envFromEnvsAspect);
|
|
1645
|
-
this.logger.consoleWarning(`env "${envFromEnvsAspect}" is not of type env. (correct the env's type, or component config with "bit env set")`);
|
|
1644
|
+
this.logger.consoleWarning(`env "${envFromEnvsAspect}" is not of type env. (correct the env's type, or component config with "bit env set ${envFromEnvsAspect} teambit.envs/env")`);
|
|
1646
1645
|
}
|
|
1647
1646
|
}
|
|
1648
1647
|
|