@teambit/workspace 1.0.1117 → 1.0.1125

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.
@@ -8,7 +8,6 @@ export declare class GraphFromFsBuilder {
8
8
  private workspace;
9
9
  private logger;
10
10
  private dependencyResolver;
11
- private ignoreIds;
12
11
  private shouldLoadItsDeps?;
13
12
  private shouldThrowOnMissingDep;
14
13
  private graph;
@@ -17,6 +16,7 @@ export declare class GraphFromFsBuilder {
17
16
  private consumer;
18
17
  private importedIds;
19
18
  private currentLane;
19
+ private ignoreIds;
20
20
  constructor(workspace: Workspace, logger: Logger, dependencyResolver: DependencyResolverMain, ignoreIds?: string[], shouldLoadItsDeps?: ShouldLoadFunc | undefined, shouldThrowOnMissingDep?: boolean);
21
21
  /**
22
22
  * create a graph with all dependencies and flattened dependencies of the given components.
@@ -69,16 +69,17 @@ class GraphFromFsBuilder {
69
69
  this.workspace = workspace;
70
70
  this.logger = logger;
71
71
  this.dependencyResolver = dependencyResolver;
72
- this.ignoreIds = ignoreIds;
73
72
  this.shouldLoadItsDeps = shouldLoadItsDeps;
74
73
  this.shouldThrowOnMissingDep = shouldThrowOnMissingDep;
75
74
  _defineProperty(this, "graph", new (_graph().Graph)());
76
- _defineProperty(this, "completed", []);
75
+ _defineProperty(this, "completed", new Set());
77
76
  _defineProperty(this, "depth", 1);
78
77
  _defineProperty(this, "consumer", void 0);
79
- _defineProperty(this, "importedIds", []);
78
+ _defineProperty(this, "importedIds", new Set());
80
79
  _defineProperty(this, "currentLane", void 0);
80
+ _defineProperty(this, "ignoreIds", void 0);
81
81
  this.consumer = this.workspace.consumer;
82
+ this.ignoreIds = new Set(ignoreIds);
82
83
  }
83
84
 
84
85
  /**
@@ -133,7 +134,7 @@ class GraphFromFsBuilder {
133
134
  async getAllDepsUnfiltered(component) {
134
135
  const deps = await this.dependencyResolver.getComponentDependencies(component);
135
136
  const depsIds = deps.map(dep => dep.componentId);
136
- return depsIds.filter(depId => !this.ignoreIds.includes(depId.toString()));
137
+ return depsIds.filter(depId => !this.ignoreIds.has(depId.toString()));
137
138
  }
138
139
  async getAllDepsFiltered(component) {
139
140
  const depsWithoutIgnore = await this.getAllDepsUnfiltered(component);
@@ -141,7 +142,7 @@ class GraphFromFsBuilder {
141
142
  if (!shouldLoadFunc) return depsWithoutIgnore;
142
143
  const deps = await (0, _pMapSeries().default)(depsWithoutIgnore, async depId => {
143
144
  const shouldLoad = await shouldLoadFunc(depId);
144
- if (!shouldLoad) this.ignoreIds.push(depId.toString());
145
+ if (!shouldLoad) this.ignoreIds.add(depId.toString());
145
146
  return shouldLoad ? depId : null;
146
147
  });
147
148
  return (0, _lodash2().default)(deps);
@@ -171,35 +172,57 @@ class GraphFromFsBuilder {
171
172
  */
172
173
  async importObjects(components) {
173
174
  const workspaceIds = this.workspace.listIds();
174
- const compOnWorkspaceOnly = components.filter(comp => workspaceIds.find(id => id.isEqual(comp.id)));
175
175
 
176
176
  // when shouldLoadItsDeps is provided, use lazy import: only import filtered deps without their flattened
177
177
  const useLazyImport = Boolean(this.shouldLoadItsDeps);
178
- const getDepsFunc = useLazyImport ? c => this.getAllDepsFiltered(c) : c => this.getAllDepsUnfiltered(c);
179
- const allDeps = (await Promise.all(compOnWorkspaceOnly.map(getDepsFunc))).flat();
180
- const allDepsNotImported = allDeps.filter(d => !this.importedIds.includes(d.toString()));
178
+ // in lazy mode the components were imported without their flattened dependencies
179
+ // (preferDependencyGraph), so deps of scope components are not guaranteed to exist locally.
180
+ // batch-import the direct deps of ALL this-level components in one round-trip. don't list
181
+ // them via getAllDepsFiltered - the filter itself loads every dep (workspace.get), which
182
+ // fetches each missing dep individually: a network round-trip per graph node.
183
+ const compsToImportDepsFor = useLazyImport ? components : components.filter(comp => workspaceIds.find(id => id.isEqual(comp.id)));
184
+ const allDeps = (await Promise.all(compsToImportDepsFor.map(c => this.getAllDepsUnfiltered(c)))).flat();
185
+ const allDepsNotImported = allDeps.filter(d => !this.importedIds.has(d.toString()));
181
186
  const exportedDeps = allDepsNotImported.map(id => id).filter(dep => this.workspace.isExported(dep));
182
187
  const scopeComponentsImporter = this.consumer.scope.scopeImporter;
183
- await scopeComponentsImporter.importMany({
184
- ids: _componentId().ComponentIdList.uniqFromArray(exportedDeps),
185
- preferDependencyGraph: useLazyImport,
186
- throwForDependencyNotFound: this.shouldThrowOnMissingDep,
187
- throwForSeederNotFound: this.shouldThrowOnMissingDep,
188
- reFetchUnBuiltVersion: false,
189
- lane: this.currentLane,
190
- reason: useLazyImport ? 'for building a filtered graph from the workspace (lazy)' : 'for building a graph from the workspace'
191
- });
192
- allDepsNotImported.map(id => this.importedIds.push(id.toString()));
188
+ let uniqDeps = _componentId().ComponentIdList.uniqFromArray(exportedDeps);
189
+ if (useLazyImport) {
190
+ // in lazy mode, only import deps whose objects are missing locally. importMany is not free
191
+ // even when nothing needs fetching (it materializes VersionDependencies for every id), and
192
+ // graph builds run repeatedly per command (envs loading, isolation, compilation) - passing
193
+ // hundreds of already-local ids each time OOMs constrained machines (e.g. CI containers).
194
+ const defs = await this.consumer.scope.sources.getMany(uniqDeps);
195
+ uniqDeps = defs.filter(def => !def.component).map(def => def.id);
196
+ }
197
+ // import in bounded chunks: one big importMany holds all the fetched objects and their
198
+ // VersionDependencies in memory at once, which OOMs constrained machines on big graphs.
199
+ // chunking keeps the round-trips low while letting each batch be GC'ed. a plain loop (not
200
+ // mapSeries) so the returned VersionDependencies of each chunk are discarded right away
201
+ // instead of being accumulated into a results array.
202
+ for (const depsChunk of (0, _lodash().chunk)(uniqDeps, 50)) {
203
+ await scopeComponentsImporter.importMany({
204
+ ids: _componentId().ComponentIdList.fromArray(depsChunk),
205
+ preferDependencyGraph: useLazyImport,
206
+ // in lazy mode this is a best-effort batch prefetch of an unfiltered dep list - deps that
207
+ // fail to import are handled later by loadManyComponents (warn/throw per shouldThrowOnMissingDep)
208
+ throwForDependencyNotFound: useLazyImport ? false : this.shouldThrowOnMissingDep,
209
+ throwForSeederNotFound: useLazyImport ? false : this.shouldThrowOnMissingDep,
210
+ reFetchUnBuiltVersion: false,
211
+ lane: this.currentLane,
212
+ reason: useLazyImport ? 'for building a filtered graph from the workspace (lazy)' : 'for building a graph from the workspace'
213
+ });
214
+ }
215
+ allDepsNotImported.forEach(id => this.importedIds.add(id.toString()));
193
216
  }
194
217
  async processOneComponent(component) {
195
218
  const idStr = component.id.toString();
196
- if (this.completed.includes(idStr)) return [];
219
+ if (this.completed.has(idStr)) return [];
197
220
  const allIds = await this.getAllDepsFiltered(component);
198
221
  const allDependenciesComps = await this.loadManyComponents(allIds, idStr);
199
222
  const deps = await this.dependencyResolver.getComponentDependencies(component);
200
223
  deps.forEach(dep => {
201
224
  const depId = dep.componentId;
202
- if (this.ignoreIds.includes(depId.toString())) return;
225
+ if (this.ignoreIds.has(depId.toString())) return;
203
226
  if (!this.graph.hasNode(depId.toString())) {
204
227
  if (this.shouldThrowOnMissingDep) {
205
228
  throw new Error(`buildOneComponent: missing node of ${depId.toString()}`);
@@ -209,7 +232,7 @@ class GraphFromFsBuilder {
209
232
  }
210
233
  this.graph.setEdge(new (_graph().Edge)(idStr, depId.toString(), dep.lifecycle));
211
234
  });
212
- this.completed.push(idStr);
235
+ this.completed.add(idStr);
213
236
  return allDependenciesComps;
214
237
  }
215
238
  async loadManyComponents(componentsIds, dependenciesOf) {
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_graph","_lodash","_componentId","_legacy","_scope","_lodash2","_bitError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","GraphFromFsBuilder","constructor","workspace","logger","dependencyResolver","ignoreIds","shouldLoadItsDeps","shouldThrowOnMissingDep","Graph","consumer","buildGraph","ids","debug","length","start","Date","now","components","loadManyComponents","currentLane","getCurrentLaneObject","processManyComponents","graph","getAllDepsUnfiltered","component","deps","getComponentDependencies","depsIds","map","dep","componentId","filter","depId","includes","toString","getAllDepsFiltered","depsWithoutIgnore","shouldLoadFunc","mapSeries","shouldLoad","push","compact","depth","importObjects","allDependencies","processOneComponent","allDependenciesFlattened","flatten","workspaceIds","listIds","compOnWorkspaceOnly","comp","find","id","isEqual","useLazyImport","Boolean","getDepsFunc","c","allDeps","Promise","all","flat","allDepsNotImported","d","importedIds","exportedDeps","isExported","scopeComponentsImporter","scope","scopeImporter","importMany","ComponentIdList","uniqFromArray","preferDependencyGraph","throwForDependencyNotFound","throwForSeederNotFound","reFetchUnBuiltVersion","lane","reason","idStr","completed","allIds","allDependenciesComps","forEach","hasNode","Error","warn","setEdge","Edge","lifecycle","componentsIds","dependenciesOf","fromGraph","node","attr","get","setNode","Node","err","ComponentNotFound","ComponentNotFoundInScope","ScopeNotFound","BitError","error","exports"],"sources":["build-graph-from-fs.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { flatten } from 'lodash';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { Component, ComponentID } from '@teambit/component';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ComponentIdList } from '@teambit/component-id';\nimport type { Lane } from '@teambit/objects';\nimport { ComponentNotFound, ScopeNotFound } from '@teambit/legacy.scope';\nimport { ComponentNotFound as ComponentNotFoundInScope } from '@teambit/scope';\nimport compact from 'lodash.compact';\nimport type { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport type { Workspace } from './workspace';\n\nexport type ShouldLoadFunc = (id: ComponentID) => Promise<boolean>;\n\nexport class GraphFromFsBuilder {\n private graph = new Graph<Component, string>();\n private completed: string[] = [];\n private depth = 1;\n private consumer: Consumer;\n private importedIds: string[] = [];\n private currentLane: Lane | undefined;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private ignoreIds: string[] = [],\n private shouldLoadItsDeps?: ShouldLoadFunc,\n private shouldThrowOnMissingDep = true\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 * LAZY IMPORT MODE (when shouldLoadItsDeps is provided):\n * when a filter function (shouldLoadItsDeps) is provided, we use \"lazy import\" mode to optimize\n * performance. instead of importing all flattened dependencies at once, we:\n * 1. only import dependencies that pass the filter (e.g., only aspects)\n * 2. don't fetch their flattened dependencies upfront (includeDependencies: false)\n * 3. let the recursive depth iteration handle importing deps as needed\n * this is much more efficient when building filtered graphs (e.g., aspects-only graph) because\n * we avoid fetching huge dependency trees for components we don't care about.\n *\n * TRADITIONAL MODE (without filter):\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: ComponentID[]): Promise<Graph<Component, string>> {\n this.logger.debug(`GraphFromFsBuilder, buildGraph with ${ids.length} seeders`);\n const start = Date.now();\n const components = await this.loadManyComponents(ids);\n this.currentLane = await this.workspace.consumer.getCurrentLaneObject();\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 async getAllDepsUnfiltered(component: Component): Promise<ComponentID[]> {\n const deps = await this.dependencyResolver.getComponentDependencies(component);\n const depsIds = deps.map((dep) => dep.componentId);\n\n return depsIds.filter((depId) => !this.ignoreIds.includes(depId.toString()));\n }\n\n private async getAllDepsFiltered(component: Component): Promise<ComponentID[]> {\n const depsWithoutIgnore = await 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.toString());\n return shouldLoad ? depId : null;\n });\n return 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 /**\n * only for components from the workspace that can be modified to add/remove dependencies, we need to make sure that\n * all their dependencies are imported.\n *\n * when `shouldLoadItsDeps` is provided, we use \"lazy import\" mode:\n * - only import filtered dependencies (those passing the shouldLoadItsDeps check)\n * - use preferDependencyGraph to avoid fetching flattened dependencies\n * - the recursive depth iteration will handle importing deps as needed\n * this is much more efficient when building a filtered graph (e.g., aspects-only graph)\n *\n * without a filter, we use the traditional approach:\n * - `importMany` fetches all flattened dependencies (preferDependencyGraph: false)\n * - once a component from scope is imported, all its flattened dependencies are there\n */\n private async importObjects(components: Component[]) {\n const workspaceIds = this.workspace.listIds();\n const compOnWorkspaceOnly = components.filter((comp) => workspaceIds.find((id) => id.isEqual(comp.id)));\n\n // when shouldLoadItsDeps is provided, use lazy import: only import filtered deps without their flattened\n const useLazyImport = Boolean(this.shouldLoadItsDeps);\n const getDepsFunc = useLazyImport\n ? (c: Component) => this.getAllDepsFiltered(c)\n : (c: Component) => this.getAllDepsUnfiltered(c);\n\n const allDeps = (await Promise.all(compOnWorkspaceOnly.map(getDepsFunc))).flat();\n const allDepsNotImported = allDeps.filter((d) => !this.importedIds.includes(d.toString()));\n const exportedDeps = allDepsNotImported.map((id) => id).filter((dep) => this.workspace.isExported(dep));\n const scopeComponentsImporter = this.consumer.scope.scopeImporter;\n await scopeComponentsImporter.importMany({\n ids: ComponentIdList.uniqFromArray(exportedDeps),\n preferDependencyGraph: useLazyImport,\n throwForDependencyNotFound: this.shouldThrowOnMissingDep,\n throwForSeederNotFound: this.shouldThrowOnMissingDep,\n reFetchUnBuiltVersion: false,\n lane: this.currentLane,\n reason: useLazyImport\n ? 'for building a filtered graph from the workspace (lazy)'\n : 'for building a graph from the workspace',\n });\n allDepsNotImported.map((id) => this.importedIds.push(id.toString()));\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 allDependenciesComps = await this.loadManyComponents(allIds, idStr);\n const deps = await this.dependencyResolver.getComponentDependencies(component);\n deps.forEach((dep) => {\n const depId = dep.componentId;\n if (this.ignoreIds.includes(depId.toString())) return;\n if (!this.graph.hasNode(depId.toString())) {\n if (this.shouldThrowOnMissingDep) {\n throw new Error(`buildOneComponent: missing node of ${depId.toString()}`);\n }\n this.logger.warn(`ignoring missing ${depId.toString()}`);\n return;\n }\n this.graph.setEdge(new Edge(idStr, depId.toString(), dep.lifecycle));\n });\n\n this.completed.push(idStr);\n return allDependenciesComps;\n }\n\n private async loadManyComponents(componentsIds: ComponentID[], dependenciesOf?: string): Promise<Component[]> {\n const components = await mapSeries(componentsIds, async (comp) => {\n const idStr = comp.toString();\n const fromGraph = this.graph.node(idStr)?.attr;\n if (fromGraph) return fromGraph;\n try {\n const component = await this.workspace.get(comp);\n this.graph.setNode(new Node(idStr, component));\n return component;\n } catch (err: any) {\n if (\n err instanceof ComponentNotFound ||\n err instanceof ComponentNotFoundInScope ||\n err instanceof ScopeNotFound\n ) {\n if (dependenciesOf && !this.shouldThrowOnMissingDep) {\n this.logger.warn(\n `component ${idStr}, dependency of ${dependenciesOf} was not found. continuing without it`\n );\n return null;\n }\n throw new BitError(\n `error: component \"${idStr}\" was not found.\\nthis component is a dependency of \"${\n dependenciesOf || '<none>'\n }\" and is needed as part of the graph generation`\n );\n }\n if (dependenciesOf) this.logger.error(`failed loading dependencies of ${dependenciesOf}`);\n throw err;\n }\n });\n return compact(components);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_graph","_lodash","_componentId","_legacy","_scope","_lodash2","_bitError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","GraphFromFsBuilder","constructor","workspace","logger","dependencyResolver","ignoreIds","shouldLoadItsDeps","shouldThrowOnMissingDep","Graph","Set","consumer","buildGraph","ids","debug","length","start","Date","now","components","loadManyComponents","currentLane","getCurrentLaneObject","processManyComponents","graph","getAllDepsUnfiltered","component","deps","getComponentDependencies","depsIds","map","dep","componentId","filter","depId","has","toString","getAllDepsFiltered","depsWithoutIgnore","shouldLoadFunc","mapSeries","shouldLoad","add","compact","depth","importObjects","allDependencies","processOneComponent","allDependenciesFlattened","flatten","workspaceIds","listIds","useLazyImport","Boolean","compsToImportDepsFor","comp","find","id","isEqual","allDeps","Promise","all","c","flat","allDepsNotImported","d","importedIds","exportedDeps","isExported","scopeComponentsImporter","scope","scopeImporter","uniqDeps","ComponentIdList","uniqFromArray","defs","sources","getMany","def","depsChunk","chunk","importMany","fromArray","preferDependencyGraph","throwForDependencyNotFound","throwForSeederNotFound","reFetchUnBuiltVersion","lane","reason","forEach","idStr","completed","allIds","allDependenciesComps","hasNode","Error","warn","setEdge","Edge","lifecycle","componentsIds","dependenciesOf","fromGraph","node","attr","get","setNode","Node","err","ComponentNotFound","ComponentNotFoundInScope","ScopeNotFound","BitError","error","exports"],"sources":["build-graph-from-fs.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { chunk, flatten } from 'lodash';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { Component, ComponentID } from '@teambit/component';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ComponentIdList } from '@teambit/component-id';\nimport type { Lane } from '@teambit/objects';\nimport { ComponentNotFound, ScopeNotFound } from '@teambit/legacy.scope';\nimport { ComponentNotFound as ComponentNotFoundInScope } from '@teambit/scope';\nimport compact from 'lodash.compact';\nimport type { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport type { Workspace } from './workspace';\n\nexport type ShouldLoadFunc = (id: ComponentID) => Promise<boolean>;\n\nexport class GraphFromFsBuilder {\n private graph = new Graph<Component, string>();\n private completed = new Set<string>();\n private depth = 1;\n private consumer: Consumer;\n private importedIds = new Set<string>();\n private currentLane: Lane | undefined;\n private ignoreIds: Set<string>;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n ignoreIds: string[] = [],\n private shouldLoadItsDeps?: ShouldLoadFunc,\n private shouldThrowOnMissingDep = true\n ) {\n this.consumer = this.workspace.consumer;\n this.ignoreIds = new Set(ignoreIds);\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 * LAZY IMPORT MODE (when shouldLoadItsDeps is provided):\n * when a filter function (shouldLoadItsDeps) is provided, we use \"lazy import\" mode to optimize\n * performance. instead of importing all flattened dependencies at once, we:\n * 1. only import dependencies that pass the filter (e.g., only aspects)\n * 2. don't fetch their flattened dependencies upfront (includeDependencies: false)\n * 3. let the recursive depth iteration handle importing deps as needed\n * this is much more efficient when building filtered graphs (e.g., aspects-only graph) because\n * we avoid fetching huge dependency trees for components we don't care about.\n *\n * TRADITIONAL MODE (without filter):\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: ComponentID[]): Promise<Graph<Component, string>> {\n this.logger.debug(`GraphFromFsBuilder, buildGraph with ${ids.length} seeders`);\n const start = Date.now();\n const components = await this.loadManyComponents(ids);\n this.currentLane = await this.workspace.consumer.getCurrentLaneObject();\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 async getAllDepsUnfiltered(component: Component): Promise<ComponentID[]> {\n const deps = await this.dependencyResolver.getComponentDependencies(component);\n const depsIds = deps.map((dep) => dep.componentId);\n\n return depsIds.filter((depId) => !this.ignoreIds.has(depId.toString()));\n }\n\n private async getAllDepsFiltered(component: Component): Promise<ComponentID[]> {\n const depsWithoutIgnore = await 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.add(depId.toString());\n return shouldLoad ? depId : null;\n });\n return 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 /**\n * only for components from the workspace that can be modified to add/remove dependencies, we need to make sure that\n * all their dependencies are imported.\n *\n * when `shouldLoadItsDeps` is provided, we use \"lazy import\" mode:\n * - only import filtered dependencies (those passing the shouldLoadItsDeps check)\n * - use preferDependencyGraph to avoid fetching flattened dependencies\n * - the recursive depth iteration will handle importing deps as needed\n * this is much more efficient when building a filtered graph (e.g., aspects-only graph)\n *\n * without a filter, we use the traditional approach:\n * - `importMany` fetches all flattened dependencies (preferDependencyGraph: false)\n * - once a component from scope is imported, all its flattened dependencies are there\n */\n private async importObjects(components: Component[]) {\n const workspaceIds = this.workspace.listIds();\n\n // when shouldLoadItsDeps is provided, use lazy import: only import filtered deps without their flattened\n const useLazyImport = Boolean(this.shouldLoadItsDeps);\n // in lazy mode the components were imported without their flattened dependencies\n // (preferDependencyGraph), so deps of scope components are not guaranteed to exist locally.\n // batch-import the direct deps of ALL this-level components in one round-trip. don't list\n // them via getAllDepsFiltered - the filter itself loads every dep (workspace.get), which\n // fetches each missing dep individually: a network round-trip per graph node.\n const compsToImportDepsFor = useLazyImport\n ? components\n : components.filter((comp) => workspaceIds.find((id) => id.isEqual(comp.id)));\n\n const allDeps = (await Promise.all(compsToImportDepsFor.map((c) => this.getAllDepsUnfiltered(c)))).flat();\n const allDepsNotImported = allDeps.filter((d) => !this.importedIds.has(d.toString()));\n const exportedDeps = allDepsNotImported.map((id) => id).filter((dep) => this.workspace.isExported(dep));\n const scopeComponentsImporter = this.consumer.scope.scopeImporter;\n let uniqDeps: ComponentID[] = ComponentIdList.uniqFromArray(exportedDeps);\n if (useLazyImport) {\n // in lazy mode, only import deps whose objects are missing locally. importMany is not free\n // even when nothing needs fetching (it materializes VersionDependencies for every id), and\n // graph builds run repeatedly per command (envs loading, isolation, compilation) - passing\n // hundreds of already-local ids each time OOMs constrained machines (e.g. CI containers).\n const defs = await this.consumer.scope.sources.getMany(uniqDeps);\n uniqDeps = defs.filter((def) => !def.component).map((def) => def.id);\n }\n // import in bounded chunks: one big importMany holds all the fetched objects and their\n // VersionDependencies in memory at once, which OOMs constrained machines on big graphs.\n // chunking keeps the round-trips low while letting each batch be GC'ed. a plain loop (not\n // mapSeries) so the returned VersionDependencies of each chunk are discarded right away\n // instead of being accumulated into a results array.\n for (const depsChunk of chunk(uniqDeps, 50)) {\n await scopeComponentsImporter.importMany({\n ids: ComponentIdList.fromArray(depsChunk),\n preferDependencyGraph: useLazyImport,\n // in lazy mode this is a best-effort batch prefetch of an unfiltered dep list - deps that\n // fail to import are handled later by loadManyComponents (warn/throw per shouldThrowOnMissingDep)\n throwForDependencyNotFound: useLazyImport ? false : this.shouldThrowOnMissingDep,\n throwForSeederNotFound: useLazyImport ? false : this.shouldThrowOnMissingDep,\n reFetchUnBuiltVersion: false,\n lane: this.currentLane,\n reason: useLazyImport\n ? 'for building a filtered graph from the workspace (lazy)'\n : 'for building a graph from the workspace',\n });\n }\n allDepsNotImported.forEach((id) => this.importedIds.add(id.toString()));\n }\n\n private async processOneComponent(component: Component) {\n const idStr = component.id.toString();\n if (this.completed.has(idStr)) return [];\n const allIds = await this.getAllDepsFiltered(component);\n\n const allDependenciesComps = await this.loadManyComponents(allIds, idStr);\n const deps = await this.dependencyResolver.getComponentDependencies(component);\n deps.forEach((dep) => {\n const depId = dep.componentId;\n if (this.ignoreIds.has(depId.toString())) return;\n if (!this.graph.hasNode(depId.toString())) {\n if (this.shouldThrowOnMissingDep) {\n throw new Error(`buildOneComponent: missing node of ${depId.toString()}`);\n }\n this.logger.warn(`ignoring missing ${depId.toString()}`);\n return;\n }\n this.graph.setEdge(new Edge(idStr, depId.toString(), dep.lifecycle));\n });\n\n this.completed.add(idStr);\n return allDependenciesComps;\n }\n\n private async loadManyComponents(componentsIds: ComponentID[], dependenciesOf?: string): Promise<Component[]> {\n const components = await mapSeries(componentsIds, async (comp) => {\n const idStr = comp.toString();\n const fromGraph = this.graph.node(idStr)?.attr;\n if (fromGraph) return fromGraph;\n try {\n const component = await this.workspace.get(comp);\n this.graph.setNode(new Node(idStr, component));\n return component;\n } catch (err: any) {\n if (\n err instanceof ComponentNotFound ||\n err instanceof ComponentNotFoundInScope ||\n err instanceof ScopeNotFound\n ) {\n if (dependenciesOf && !this.shouldThrowOnMissingDep) {\n this.logger.warn(\n `component ${idStr}, dependency of ${dependenciesOf} was not found. continuing without it`\n );\n return null;\n }\n throw new BitError(\n `error: component \"${idStr}\" was not found.\\nthis component is a dependency of \"${\n dependenciesOf || '<none>'\n }\" and is needed as part of the graph generation`\n );\n }\n if (dependenciesOf) this.logger.error(`failed loading dependencies of ${dependenciesOf}`);\n throw err;\n }\n });\n return compact(components);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1117/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1117/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1125/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1125/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "1.0.1117",
3
+ "version": "1.0.1125",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/workspace",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace",
9
- "version": "1.0.1117"
9
+ "version": "1.0.1125"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -41,16 +41,22 @@
41
41
  "@teambit/toolbox.fs.last-modified": "0.0.19",
42
42
  "@teambit/toolbox.path.path": "0.0.21",
43
43
  "@teambit/graph.cleargraph": "0.0.11",
44
+ "@teambit/logger": "0.0.1468",
45
+ "@teambit/cli": "0.0.1375",
46
+ "@teambit/config-store": "0.0.256",
44
47
  "@teambit/legacy.constants": "0.0.41",
45
48
  "@teambit/component.ui.component-status-resolver": "0.0.510",
46
49
  "@teambit/harmony.modules.load-trace": "0.0.12",
47
50
  "@teambit/harmony.modules.resolved-component": "0.0.524",
48
51
  "@teambit/legacy.utils": "0.0.48",
49
52
  "@teambit/scope.remotes": "0.0.148",
53
+ "@teambit/config": "0.0.1550",
50
54
  "@teambit/harmony.modules.requireable-component": "0.0.524",
51
55
  "@teambit/toolbox.modules.module-resolver": "0.0.24",
52
56
  "@teambit/workspace.modules.node-modules-linker": "0.0.379",
57
+ "@teambit/global-config": "0.0.1379",
53
58
  "@teambit/legacy.consumer-config": "0.0.148",
59
+ "@teambit/variants": "0.0.1643",
54
60
  "@teambit/component-issues": "0.0.183",
55
61
  "@teambit/component.sources": "0.0.200",
56
62
  "@teambit/dependencies.modules.packages-excluder": "1.0.8",
@@ -94,29 +100,23 @@
94
100
  "@teambit/workspace.hooks.use-url-change-broadcaster": "0.0.2",
95
101
  "@teambit/workspace.ui.preserve-workspace-mode": "0.0.3",
96
102
  "@teambit/evangelist.elements.icon": "1.0.5",
97
- "@teambit/component": "1.0.1117",
98
- "@teambit/dependency-resolver": "1.0.1117",
99
- "@teambit/envs": "1.0.1117",
100
- "@teambit/logger": "0.0.1468",
101
- "@teambit/objects": "0.0.624",
102
- "@teambit/scope": "1.0.1117",
103
- "@teambit/graph": "1.0.1117",
104
- "@teambit/cli": "0.0.1375",
105
- "@teambit/config-store": "0.0.256",
106
- "@teambit/isolator": "1.0.1117",
107
- "@teambit/component-tree": "1.0.1117",
108
- "@teambit/watcher": "1.0.1117",
109
- "@teambit/aspect-loader": "1.0.1117",
110
- "@teambit/config": "0.0.1550",
111
- "@teambit/graphql": "1.0.1117",
112
- "@teambit/bundler": "1.0.1117",
113
- "@teambit/global-config": "0.0.1379",
114
- "@teambit/ui": "1.0.1117",
115
- "@teambit/variants": "0.0.1643",
116
- "@teambit/command-bar": "1.0.1117",
117
- "@teambit/sidebar": "1.0.1117",
118
- "@teambit/pubsub": "1.0.1117",
119
- "@teambit/deprecation": "1.0.1117"
103
+ "@teambit/component": "1.0.1125",
104
+ "@teambit/dependency-resolver": "1.0.1125",
105
+ "@teambit/envs": "1.0.1125",
106
+ "@teambit/objects": "0.0.632",
107
+ "@teambit/scope": "1.0.1125",
108
+ "@teambit/graph": "1.0.1125",
109
+ "@teambit/isolator": "1.0.1125",
110
+ "@teambit/component-tree": "1.0.1125",
111
+ "@teambit/watcher": "1.0.1125",
112
+ "@teambit/aspect-loader": "1.0.1125",
113
+ "@teambit/graphql": "1.0.1125",
114
+ "@teambit/bundler": "1.0.1125",
115
+ "@teambit/ui": "1.0.1125",
116
+ "@teambit/command-bar": "1.0.1125",
117
+ "@teambit/sidebar": "1.0.1125",
118
+ "@teambit/pubsub": "1.0.1125",
119
+ "@teambit/deprecation": "1.0.1125"
120
120
  },
121
121
  "devDependencies": {
122
122
  "@types/lodash": "4.14.165",