@teambit/workspace 0.0.1133 → 0.0.1135
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-ids-from-fs.d.ts +1 -0
- package/dist/build-graph-ids-from-fs.js +17 -0
- package/dist/build-graph-ids-from-fs.js.map +1 -1
- package/dist/eject-conf.cmd.js +3 -3
- package/dist/eject-conf.cmd.js.map +1 -1
- package/dist/envs-subcommands/envs-replace.cmd.js +1 -1
- package/dist/envs-subcommands/envs-replace.cmd.js.map +1 -1
- package/dist/envs-subcommands/envs-set.cmd.js +8 -8
- package/dist/envs-subcommands/envs-set.cmd.js.map +1 -1
- package/dist/envs-subcommands/envs-unset.cmd.js +5 -5
- package/dist/envs-subcommands/envs-unset.cmd.js.map +1 -1
- package/dist/envs-subcommands/envs-update.cmd.js +13 -6
- package/dist/envs-subcommands/envs-update.cmd.js.map +1 -1
- package/dist/pattern.cmd.js +3 -3
- package/dist/pattern.cmd.js.map +1 -1
- package/dist/{preview-1692155876143.js → preview-1692345627885.js} +2 -2
- package/dist/scope-subcommands/scope-set.cmd.js +5 -5
- package/dist/scope-subcommands/scope-set.cmd.js.map +1 -1
- package/dist/workspace-component/workspace-component-loader.d.ts +5 -2
- package/dist/workspace-component/workspace-component-loader.js +15 -4
- package/dist/workspace-component/workspace-component-loader.js.map +1 -1
- package/dist/workspace.d.ts +12 -6
- package/dist/workspace.js +20 -9
- package/dist/workspace.js.map +1 -1
- package/envs-subcommands/envs-replace.cmd.ts +1 -1
- package/envs-subcommands/envs-set.cmd.ts +9 -8
- package/envs-subcommands/envs-unset.cmd.ts +6 -7
- package/envs-subcommands/envs-update.cmd.ts +7 -7
- package/package-tar/teambit-workspace-0.0.1135.tgz +0 -0
- package/package.json +36 -36
- package/scope-subcommands/scope-set.cmd.ts +6 -7
- package/workspace-component/workspace-component-loader.ts +20 -9
- package/package-tar/teambit-workspace-0.0.1133.tgz +0 -0
|
@@ -146,14 +146,22 @@ class WorkspaceComponentLoader {
|
|
|
146
146
|
maxSize: (0, _inMemoryCache().getMaxSizeForComponents)()
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
|
-
async getMany(ids, loadOpts) {
|
|
149
|
+
async getMany(ids, loadOpts, throwOnFailure = true) {
|
|
150
150
|
const idsWithoutEmpty = (0, _lodash().compact)(ids);
|
|
151
151
|
const errors = [];
|
|
152
|
+
const invalidComponents = [];
|
|
152
153
|
const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);
|
|
153
154
|
const componentsP = (0, _pMapSeries().default)(idsWithoutEmpty, async id => {
|
|
154
155
|
longProcessLogger.logProgress(id.toString());
|
|
155
156
|
return this.get(id, undefined, undefined, undefined, loadOpts).catch(err => {
|
|
156
|
-
if (
|
|
157
|
+
if (_component2().default.isComponentInvalidByErrorType(err) && !throwOnFailure) {
|
|
158
|
+
invalidComponents.push({
|
|
159
|
+
id,
|
|
160
|
+
err
|
|
161
|
+
});
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
if (this.isComponentNotExistsError(err) || err instanceof _componentNotFoundInPath().default) {
|
|
157
165
|
errors.push({
|
|
158
166
|
id,
|
|
159
167
|
err
|
|
@@ -171,7 +179,10 @@ class WorkspaceComponentLoader {
|
|
|
171
179
|
// remove errored components
|
|
172
180
|
const filteredComponents = (0, _lodash().compact)(components);
|
|
173
181
|
longProcessLogger.end();
|
|
174
|
-
return
|
|
182
|
+
return {
|
|
183
|
+
components: filteredComponents,
|
|
184
|
+
invalidComponents
|
|
185
|
+
};
|
|
175
186
|
}
|
|
176
187
|
async getInvalid(ids) {
|
|
177
188
|
const idsWithoutEmpty = (0, _lodash().compact)(ids);
|
|
@@ -308,7 +319,7 @@ class WorkspaceComponentLoader {
|
|
|
308
319
|
}
|
|
309
320
|
}
|
|
310
321
|
isComponentNotExistsError(err) {
|
|
311
|
-
return err instanceof _exceptions2().ComponentNotFound || err instanceof _exceptions().MissingBitMapComponent
|
|
322
|
+
return err instanceof _exceptions2().ComponentNotFound || err instanceof _exceptions().MissingBitMapComponent;
|
|
312
323
|
}
|
|
313
324
|
async executeLoadSlot(component, loadOpts) {
|
|
314
325
|
if (component.state._consumer.removed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_lodash","_component2","_exceptions","_utils","_componentIssues","_bitId","_exceptions2","_dependencyResolver","_envs","_config","_inMemoryCache","_cacheFactory","_componentNotFoundInPath","_workspaceComponent","_mergeConfigConflict","WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","_defineProperty2","default","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","loadOpts","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","undefined","catch","err","isComponentNotExistsError","push","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLaneIncludeRemoved","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","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","some","MergeConfigConflict","MergeConfigHasConflict","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","updatedComp","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","originatedFromHarmony","removedComponents","loadComponents","BitIds","fromArray","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","_consumer","removed","envsData","calcDescriptor","skipWarnings","inInstallContext","policy","mergeVariantPolicies","config","dependenciesList","extractDepsFromLegacy","depResolverData","packageName","calcPackageName","serialize","Promise","all","upsertExtensionData","EnvsAspect","DependencyResolverAspect","aspectListWithEnvsAndDeps","aspects","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","updatedAspectList","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","exports","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 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 { BitIds } from '@teambit/legacy/dist/bit-id';\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';\nimport { MergeConfigConflict } from '../exceptions/merge-config-conflict';\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>, loadOpts?: ComponentLoadOptions): 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, undefined, undefined, undefined, loadOpts).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.bitmapIdsFromCurrentLaneIncludeRemoved,\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, loadOpts));\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, errors } = await this.workspace.componentExtensions(id, componentFromScope);\n if (errors?.some((err) => err instanceof MergeConfigConflict)) {\n consumerComponent.issues.getOrCreate(IssuesClasses.MergeConfigHasConflict).data = true;\n }\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 = extensions;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensions),\n await this.workspace.createAspectList(extensions),\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 const updatedComp = await this.executeLoadSlot(workspaceComponent, loadOpts);\n return updatedComp;\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 async getConsumerComponent(\n id: ComponentID,\n loadOpts: ComponentLoadOptions = {}\n ): Promise<ConsumerComponent | undefined> {\n loadOpts.originatedFromHarmony = true;\n try {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(\n BitIds.fromArray([id._legacy]),\n true,\n loadOpts\n );\n return components?.[0] || removedComponents?.[0];\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 if (component.state._consumer.removed) {\n // if it was soft-removed now, the component is not in the FS. loading aspects such as composition ends up with\n // errors as they try to read component files from the filesystem.\n return component;\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.envs.calcDescriptor(component, { skipWarnings: !!this.workspace.inInstallContext });\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(\n component.config.extensions,\n component.id._legacy,\n component.state._consumer.files\n );\n const dependenciesList = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n packageName: this.dependencyResolver.calcPackageName(component),\n dependencies: dependenciesList.serialize(),\n policy: policy.serialize(),\n };\n\n // Make sure we are adding the envs / deps data first because other on load events might depend on it\n await Promise.all([\n this.upsertExtensionData(component, EnvsAspect.id, envsData),\n this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData),\n ]);\n\n // We are updating the component state with the envs and deps data here, so in case we have other slots that depend on this data\n // they will be able to get it, as it's very common use case that during on load someone want to access to the component env for example\n const aspectListWithEnvsAndDeps = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = aspectListWithEnvsAndDeps;\n\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 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 if (!data) return;\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension) {\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":["_component","data","require","_pMapSeries","_interopRequireDefault","_lodash","_component2","_exceptions","_utils","_componentIssues","_bitId","_exceptions2","_dependencyResolver","_envs","_config","_inMemoryCache","_cacheFactory","_componentNotFoundInPath","_workspaceComponent","_mergeConfigConflict","WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","_defineProperty2","default","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","loadOpts","throwOnFailure","idsWithoutEmpty","compact","errors","invalidComponents","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","undefined","catch","err","ConsumerComponent","isComponentInvalidByErrorType","push","isComponentNotExistsError","ComponentNotFoundInPath","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","componentId","legacyComponent","useCache","storeInCache","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLaneIncludeRemoved","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","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","some","MergeConfigConflict","MergeConfigHasConflict","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","updatedComp","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","originatedFromHarmony","removedComponents","loadComponents","BitIds","fromArray","debug","name","message","ComponentNotFound","_consumer","removed","envsData","calcDescriptor","skipWarnings","inInstallContext","policy","mergeVariantPolicies","config","dependenciesList","extractDepsFromLegacy","depResolverData","packageName","calcPackageName","serialize","Promise","all","upsertExtensionData","EnvsAspect","DependencyResolverAspect","aspectListWithEnvsAndDeps","aspects","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","updatedAspectList","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","exports","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 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 { BitIds } from '@teambit/legacy/dist/bit-id';\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';\nimport { MergeConfigConflict } from '../exceptions/merge-config-conflict';\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(\n ids: Array<ComponentID>,\n loadOpts?: ComponentLoadOptions,\n throwOnFailure = true\n ): Promise<{\n components: Component[];\n invalidComponents: InvalidComponent[];\n }> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const invalidComponents: InvalidComponent[] = [];\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, undefined, undefined, undefined, loadOpts).catch((err) => {\n if (ConsumerComponent.isComponentInvalidByErrorType(err) && !throwOnFailure) {\n invalidComponents.push({\n id,\n err,\n });\n return undefined;\n }\n if (this.isComponentNotExistsError(err) || err instanceof ComponentNotFoundInPath) {\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 { components: filteredComponents, invalidComponents };\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.bitmapIdsFromCurrentLaneIncludeRemoved,\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, loadOpts));\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, errors } = await this.workspace.componentExtensions(id, componentFromScope);\n if (errors?.some((err) => err instanceof MergeConfigConflict)) {\n consumerComponent.issues.getOrCreate(IssuesClasses.MergeConfigHasConflict).data = true;\n }\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 = extensions;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensions),\n await this.workspace.createAspectList(extensions),\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 const updatedComp = await this.executeLoadSlot(workspaceComponent, loadOpts);\n return updatedComp;\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(\n id: ComponentID,\n loadOpts: ComponentLoadOptions = {}\n ): Promise<ConsumerComponent | undefined> {\n loadOpts.originatedFromHarmony = true;\n try {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(\n BitIds.fromArray([id._legacy]),\n true,\n loadOpts\n );\n return components?.[0] || removedComponents?.[0];\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 err instanceof ComponentNotFound || err instanceof MissingBitMapComponent;\n }\n\n private async executeLoadSlot(component: Component, loadOpts?: ComponentLoadOptions) {\n if (component.state._consumer.removed) {\n // if it was soft-removed now, the component is not in the FS. loading aspects such as composition ends up with\n // errors as they try to read component files from the filesystem.\n return component;\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.envs.calcDescriptor(component, { skipWarnings: !!this.workspace.inInstallContext });\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(\n component.config.extensions,\n component.id._legacy,\n component.state._consumer.files\n );\n const dependenciesList = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n packageName: this.dependencyResolver.calcPackageName(component),\n dependencies: dependenciesList.serialize(),\n policy: policy.serialize(),\n };\n\n // Make sure we are adding the envs / deps data first because other on load events might depend on it\n await Promise.all([\n this.upsertExtensionData(component, EnvsAspect.id, envsData),\n this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData),\n ]);\n\n // We are updating the component state with the envs and deps data here, so in case we have other slots that depend on this data\n // they will be able to get it, as it's very common use case that during on load someone want to access to the component env for example\n const aspectListWithEnvsAndDeps = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = aspectListWithEnvsAndDeps;\n\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 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 if (!data) return;\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension) {\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
|
@@ -186,6 +186,10 @@ export declare class Workspace implements ComponentFactory {
|
|
|
186
186
|
offset: number;
|
|
187
187
|
limit: number;
|
|
188
188
|
}, loadOpts?: ComponentLoadOptions): Promise<Component[]>;
|
|
189
|
+
listWithInvalid(loadOpts?: ComponentLoadOptions): Promise<{
|
|
190
|
+
components: Component[];
|
|
191
|
+
invalidComponents: InvalidComponent[];
|
|
192
|
+
}>;
|
|
189
193
|
/**
|
|
190
194
|
* list all invalid components.
|
|
191
195
|
* (see the invalid criteria in ConsumerComponent.isComponentInvalidByErrorType())
|
|
@@ -382,12 +386,14 @@ export declare class Workspace implements ComponentFactory {
|
|
|
382
386
|
*/
|
|
383
387
|
setDefaultScopeToComponents(componentIds: ComponentID[], scopeName: string): Promise<ComponentID[]>;
|
|
384
388
|
setDefaultScope(scopeName: string): Promise<void>;
|
|
385
|
-
addSpecificComponentConfig(id: ComponentID, aspectId: string, config?: Record<string, any>, shouldMergeWithExisting
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
389
|
+
addSpecificComponentConfig(id: ComponentID, aspectId: string, config?: Record<string, any>, { shouldMergeWithExisting, shouldMergeWithPrevious, }?: {
|
|
390
|
+
shouldMergeWithExisting?: boolean;
|
|
391
|
+
/**
|
|
392
|
+
* relevant only when writing to .bitmap.
|
|
393
|
+
* eject config of the given aspect-id, so then it won't override previous config. (see "adding prod dep, tagging then adding devDep" e2e-test)
|
|
394
|
+
*/
|
|
395
|
+
shouldMergeWithPrevious?: boolean;
|
|
396
|
+
}): Promise<void>;
|
|
391
397
|
removeSpecificComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist?: boolean): Promise<void>;
|
|
392
398
|
getAspectIdFromConfig(componentId: ComponentID, aspectIdStr: string, ignoreAspectVersion?: boolean): Promise<string | undefined>;
|
|
393
399
|
getSpecificComponentConfig(id: ComponentID, aspectId: string): Promise<any>;
|
package/dist/workspace.js
CHANGED
|
@@ -512,6 +512,11 @@ class Workspace {
|
|
|
512
512
|
const idsToGet = filter && filter.limit ? (0, _lodash().slice)(ids, filter.offset, filter.offset + filter.limit) : ids;
|
|
513
513
|
return this.getMany(idsToGet, loadOpts);
|
|
514
514
|
}
|
|
515
|
+
async listWithInvalid(loadOpts) {
|
|
516
|
+
const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();
|
|
517
|
+
const ids = await this.resolveMultipleComponentIds(legacyIds);
|
|
518
|
+
return this.componentLoader.getMany(ids, loadOpts, false);
|
|
519
|
+
}
|
|
515
520
|
|
|
516
521
|
/**
|
|
517
522
|
* list all invalid components.
|
|
@@ -553,7 +558,9 @@ class Workspace {
|
|
|
553
558
|
*/
|
|
554
559
|
async filterIds(ids) {
|
|
555
560
|
const workspaceIds = await this.listIds();
|
|
556
|
-
return ids.filter(id => workspaceIds.find(wsId => wsId.isEqual(id
|
|
561
|
+
return ids.filter(id => workspaceIds.find(wsId => wsId.isEqual(id, {
|
|
562
|
+
ignoreVersion: !id.hasVersion()
|
|
563
|
+
})));
|
|
557
564
|
}
|
|
558
565
|
|
|
559
566
|
/**
|
|
@@ -1043,7 +1050,10 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
1043
1050
|
return (foundEnv === null || foundEnv === void 0 ? void 0 : foundEnv.components) || [];
|
|
1044
1051
|
}
|
|
1045
1052
|
async getMany(ids, loadOpts) {
|
|
1046
|
-
|
|
1053
|
+
const {
|
|
1054
|
+
components
|
|
1055
|
+
} = await this.componentLoader.getMany(ids, loadOpts);
|
|
1056
|
+
return components;
|
|
1047
1057
|
}
|
|
1048
1058
|
getManyByLegacy(components, loadOpts) {
|
|
1049
1059
|
return (0, _pMapSeries().default)(components, async component => {
|
|
@@ -1088,7 +1098,7 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
1088
1098
|
reFetchUnBuiltVersion: shouldReFetchUnBuiltVersion(),
|
|
1089
1099
|
preferDependencyGraph: true
|
|
1090
1100
|
});
|
|
1091
|
-
return this.
|
|
1101
|
+
return this.getMany(ids);
|
|
1092
1102
|
}
|
|
1093
1103
|
async importCurrentLaneIfMissing() {
|
|
1094
1104
|
const laneId = this.getCurrentLaneId();
|
|
@@ -1313,12 +1323,13 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
1313
1323
|
dir: _path2().default.dirname(config.workspaceConfig.path)
|
|
1314
1324
|
}));
|
|
1315
1325
|
}
|
|
1316
|
-
async addSpecificComponentConfig(id, aspectId, config = {},
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1326
|
+
async addSpecificComponentConfig(id, aspectId, config = {}, {
|
|
1327
|
+
shouldMergeWithExisting,
|
|
1328
|
+
shouldMergeWithPrevious
|
|
1329
|
+
} = {
|
|
1330
|
+
shouldMergeWithExisting: false,
|
|
1331
|
+
shouldMergeWithPrevious: false
|
|
1332
|
+
}) {
|
|
1322
1333
|
const componentConfigFile = await this.componentConfigFile(id);
|
|
1323
1334
|
if (componentConfigFile) {
|
|
1324
1335
|
await componentConfigFile.addAspect(aspectId, config, this.resolveComponentId.bind(this), shouldMergeWithExisting);
|