@teambit/workspace 1.0.123 → 1.0.125

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.
@@ -135,7 +135,7 @@ const WorkspaceMain = exports.WorkspaceMain = {
135
135
  name: _constants().EXT_NAME,
136
136
  runtime: _cli().MainRuntime,
137
137
  dependencies: [_pubsub().PubsubAspect, _cli().CLIAspect, _scope().ScopeAspect, _component().ComponentAspect, _isolator().IsolatorAspect, _dependencyResolver().DependencyResolverAspect, _variants().VariantsAspect, _logger().LoggerAspect, _graphql().GraphqlAspect, _ui().UIAspect, _bundler().BundlerAspect, _aspectLoader().AspectLoaderAspect, _envs().EnvsAspect, _globalConfig().default],
138
- slots: [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()],
138
+ slots: [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()],
139
139
  provider: _workspace2().default,
140
140
  defineRuntime: 'browser'
141
141
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_pubsub","data","require","_aspectLoader","_bundler","_cli","_component","_dependencyResolver","_envs","_graphql","_harmony","_isolator","_logger","_scope","_ui","_variants","_globalConfig","_interopRequireDefault","_constants","_workspace","_workspace2","obj","__esModule","default","WorkspaceMain","exports","name","EXT_NAME","runtime","MainRuntime","dependencies","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","DependencyResolverAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","GlobalConfigAspect","slots","Slot","withType","provider","workspaceProvider","defineRuntime","WorkspaceAspect","addRuntime","_default"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { EnvsAspect } from '@teambit/envs';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Slot } from '@teambit/harmony';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport { LoggerAspect } from '@teambit/logger';\nimport { ScopeAspect } from '@teambit/scope';\nimport { UIAspect } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\nimport GlobalConfigAspect from '@teambit/global-config';\n\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport workspaceProvider, { OnAspectsResolve, OnBitmapChange, OnRootAspectAdded } from './workspace.provider';\n\nexport const WorkspaceMain = {\n name: EXT_NAME,\n runtime: MainRuntime,\n dependencies: [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n GlobalConfigAspect,\n ],\n slots: [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnAspectsResolve>(),\n Slot.withType<OnRootAspectAdded>(),\n Slot.withType<OnBitmapChange>(),\n ],\n provider: workspaceProvider,\n defineRuntime: 'browser',\n};\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_pubsub","data","require","_aspectLoader","_bundler","_cli","_component","_dependencyResolver","_envs","_graphql","_harmony","_isolator","_logger","_scope","_ui","_variants","_globalConfig","_interopRequireDefault","_constants","_workspace","_workspace2","obj","__esModule","default","WorkspaceMain","exports","name","EXT_NAME","runtime","MainRuntime","dependencies","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","DependencyResolverAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","GlobalConfigAspect","slots","Slot","withType","provider","workspaceProvider","defineRuntime","WorkspaceAspect","addRuntime","_default"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { EnvsAspect } from '@teambit/envs';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Slot } from '@teambit/harmony';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport { LoggerAspect } from '@teambit/logger';\nimport { ScopeAspect } from '@teambit/scope';\nimport { UIAspect } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\nimport GlobalConfigAspect from '@teambit/global-config';\n\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport workspaceProvider, {\n OnAspectsResolve,\n OnBitmapChange,\n OnRootAspectAdded,\n OnWorkspaceConfigChange,\n} from './workspace.provider';\n\nexport const WorkspaceMain = {\n name: EXT_NAME,\n runtime: MainRuntime,\n dependencies: [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n GlobalConfigAspect,\n ],\n slots: [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnAspectsResolve>(),\n Slot.withType<OnRootAspectAdded>(),\n Slot.withType<OnBitmapChange>(),\n Slot.withType<OnWorkspaceConfigChange>(),\n ],\n provider: workspaceProvider,\n defineRuntime: 'browser',\n};\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":"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"}
@@ -39,16 +39,19 @@ export type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;
39
39
  export type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;
40
40
  export type OnBitmapChange = () => Promise<void>;
41
41
  export type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;
42
+ export type OnWorkspaceConfigChange = () => Promise<void>;
43
+ export type OnWorkspaceConfigChangeSlot = SlotRegistry<OnWorkspaceConfigChange>;
42
44
  export type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;
43
45
  export type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;
44
46
  export type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;
45
47
  export type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;
46
- export default function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs, globalConfig,]: WorkspaceDeps, config: WorkspaceExtConfig, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, onBitmapChangeSlot,]: [
48
+ export default function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs, globalConfig,]: WorkspaceDeps, config: WorkspaceExtConfig, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, onBitmapChangeSlot, onWorkspaceConfigChangeSlot,]: [
47
49
  OnComponentLoadSlot,
48
50
  OnComponentChangeSlot,
49
51
  OnComponentAddSlot,
50
52
  OnComponentRemoveSlot,
51
53
  OnAspectsResolveSlot,
52
54
  OnRootAspectAddedSlot,
53
- OnBitmapChangeSlot
55
+ OnBitmapChangeSlot,
56
+ OnWorkspaceConfigChangeSlot
54
57
  ], harmony: Harmony): Promise<Workspace>;
@@ -131,7 +131,7 @@ function _envsUpdate() {
131
131
  return data;
132
132
  }
133
133
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
134
- async function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs, globalConfig], config, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, onBitmapChangeSlot], harmony) {
134
+ async function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs, globalConfig], config, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, onBitmapChangeSlot, onWorkspaceConfigChangeSlot], harmony) {
135
135
  const bitConfig = harmony.config.get('teambit.harmony/bit');
136
136
  const consumer = await getConsumer(bitConfig.cwd);
137
137
  if (!consumer) {
@@ -141,7 +141,7 @@ async function provideWorkspace([pubsub, cli, scope, component, isolator, depend
141
141
  }
142
142
  // TODO: get the 'workspace' name in a better way
143
143
  const logger = loggerExt.createLogger(_constants().EXT_NAME);
144
- const workspace = new (_workspace().Workspace)(pubsub, config, consumer, scope, component, dependencyResolver, variants, aspectLoader, logger, undefined, harmony, onComponentLoadSlot, onComponentChangeSlot, envs, globalConfig, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, graphql, onBitmapChangeSlot);
144
+ const workspace = new (_workspace().Workspace)(pubsub, config, consumer, scope, component, dependencyResolver, variants, aspectLoader, logger, undefined, harmony, onComponentLoadSlot, onComponentChangeSlot, envs, globalConfig, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, graphql, onBitmapChangeSlot, onWorkspaceConfigChangeSlot);
145
145
  const configMergeFile = workspace.getConflictMergeFile();
146
146
  await configMergeFile.loadIfNeeded();
147
147
  const getWorkspacePolicyFromPackageJson = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_dependencyResolver","data","require","_consumer","_component","_interopRequireDefault","_extensionData","_componentLoader","_constants","_ejectConf","_workspace","_workspace2","_workspace3","_capsule","_envsSet","_envsUnset","_pattern","_envsReplace","_scopeSet","_use","_envsUpdate","obj","__esModule","default","provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","globalConfig","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","onBitmapChangeSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","capsuleCmd","getCapsulesCommands","undefined","register","logger","createLogger","EXT_NAME","workspace","Workspace","configMergeFile","getConflictMergeFile","loadIfNeeded","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","getWorkspacePolicyFromMergeConfig","wsConfigMerge","getWorkspaceJsonConflictFromMergeConfig","policy","DependencyResolverAspect","id","forEach","depField","reduce","acc","current","name","version","wsPolicy","getWorkspacePolicyFromConfigObject","getRootPolicy","pkgJsonPolicy","configMergePolicy","mergeWorkspacePolices","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","originatedFromHarmony","resolveComponentId","newComponent","state","ConsumerComponent","registerOnComponentConfigLoading","loadOpts","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","registerPreStart","setComponentPathsRegExps","commands","EjectConfCmd","UseCmd","PatternCommand","registerHost","registerOnStart","_hasWorkspace","currentCommand","inInstallContext","importCurrentLaneIfMissing","loadAspectsOpts","runSubscribers","skipDeps","autoLoadAspectsDeps","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","CapsuleCmd","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentConfigLoadOptions } from '@teambit/legacy/dist/consumer/config';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport LegacyComponentLoader, { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentID } from '@teambit/component-id';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n GlobalConfigMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnBitmapChange = () => Promise<void>;\nexport type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;\n\nexport type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;\nexport type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;\n\nexport type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;\nexport type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n globalConfig,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n onBitmapChangeSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnAspectsResolveSlot,\n OnRootAspectAddedSlot,\n OnBitmapChangeSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) {\n const capsuleCmd = getCapsulesCommands(isolator, scope, undefined);\n cli.register(capsuleCmd);\n return undefined;\n }\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n globalConfig,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n graphql,\n onBitmapChangeSlot\n );\n\n const configMergeFile = workspace.getConflictMergeFile();\n await configMergeFile.loadIfNeeded();\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n const getWorkspacePolicyFromMergeConfig = () => {\n const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();\n const policy = wsConfigMerge.data?.[DependencyResolverAspect.id]?.policy || {};\n ['dependencies', 'peerDependencies'].forEach((depField) => {\n if (!policy[depField]) return;\n policy[depField] = policy[depField].reduce((acc, current) => {\n acc[current.name] = current.version;\n return acc;\n }, {});\n });\n const wsPolicy = dependencyResolver.getWorkspacePolicyFromConfigObject(policy);\n return wsPolicy;\n };\n\n const getRootPolicy = () => {\n const pkgJsonPolicy = getWorkspacePolicyFromPackageJson();\n const configMergePolicy = getWorkspacePolicyFromMergeConfig();\n return dependencyResolver.mergeWorkspacePolices([pkgJsonPolicy, configMergePolicy]);\n };\n\n dependencyResolver.registerRootPolicy(getRootPolicy());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: ComponentLoadOptions) => {\n if (opts?.originatedFromHarmony) return legacyComponent;\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id, loadOpts: ComponentConfigLoadOptions) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope, undefined, loadOpts);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n legacyEntry.newExtensionId = legacyEntry.extensionId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n ui.registerPreStart(async () => {\n return workspace.setComponentPathsRegExps();\n });\n graphql.register(workspaceSchema);\n const capsuleCmd = getCapsulesCommands(isolator, scope, workspace);\n const commands: CommandList = [new EjectConfCmd(workspace), capsuleCmd, new UseCmd(workspace)];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async (_hasWorkspace: boolean, currentCommand: string) => {\n if (currentCommand === 'mini-status' || currentCommand === 'ms') {\n return; // mini-status should be super fast.\n }\n if (currentCommand === 'install') {\n workspace.inInstallContext = true;\n }\n await workspace.importCurrentLaneIfMissing();\n const loadAspectsOpts = {\n runSubscribers: false,\n skipDeps: !config.autoLoadAspectsDeps,\n };\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'teambit.workspace/workspace (cli.registerOnStart)',\n loadAspectsOpts\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\nfunction getCapsulesCommands(isolator: IsolatorMain, scope: ScopeMain, workspace?: Workspace) {\n const capsuleCmd = new CapsuleCmd(isolator, workspace, scope);\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace, scope),\n new CapsuleCreateCmd(workspace, scope, isolator),\n new CapsuleDeleteCmd(isolator, scope, workspace),\n ];\n return capsuleCmd;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dependencyResolver","data","require","_consumer","_component","_interopRequireDefault","_extensionData","_componentLoader","_constants","_ejectConf","_workspace","_workspace2","_workspace3","_capsule","_envsSet","_envsUnset","_pattern","_envsReplace","_scopeSet","_use","_envsUpdate","obj","__esModule","default","provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","globalConfig","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","onBitmapChangeSlot","onWorkspaceConfigChangeSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","capsuleCmd","getCapsulesCommands","undefined","register","logger","createLogger","EXT_NAME","workspace","Workspace","configMergeFile","getConflictMergeFile","loadIfNeeded","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","getWorkspacePolicyFromMergeConfig","wsConfigMerge","getWorkspaceJsonConflictFromMergeConfig","policy","DependencyResolverAspect","id","forEach","depField","reduce","acc","current","name","version","wsPolicy","getWorkspacePolicyFromConfigObject","getRootPolicy","pkgJsonPolicy","configMergePolicy","mergeWorkspacePolices","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","originatedFromHarmony","resolveComponentId","newComponent","state","ConsumerComponent","registerOnComponentConfigLoading","loadOpts","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","registerPreStart","setComponentPathsRegExps","commands","EjectConfCmd","UseCmd","PatternCommand","registerHost","registerOnStart","_hasWorkspace","currentCommand","inInstallContext","importCurrentLaneIfMissing","loadAspectsOpts","runSubscribers","skipDeps","autoLoadAspectsDeps","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","CapsuleCmd","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentConfigLoadOptions } from '@teambit/legacy/dist/consumer/config';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport LegacyComponentLoader, { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentID } from '@teambit/component-id';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n GlobalConfigMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnBitmapChange = () => Promise<void>;\nexport type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;\n\nexport type OnWorkspaceConfigChange = () => Promise<void>;\nexport type OnWorkspaceConfigChangeSlot = SlotRegistry<OnWorkspaceConfigChange>;\n\nexport type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;\nexport type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;\n\nexport type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;\nexport type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n globalConfig,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n onBitmapChangeSlot,\n onWorkspaceConfigChangeSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnAspectsResolveSlot,\n OnRootAspectAddedSlot,\n OnBitmapChangeSlot,\n OnWorkspaceConfigChangeSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) {\n const capsuleCmd = getCapsulesCommands(isolator, scope, undefined);\n cli.register(capsuleCmd);\n return undefined;\n }\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n globalConfig,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n graphql,\n onBitmapChangeSlot,\n onWorkspaceConfigChangeSlot\n );\n\n const configMergeFile = workspace.getConflictMergeFile();\n await configMergeFile.loadIfNeeded();\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n const getWorkspacePolicyFromMergeConfig = () => {\n const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();\n const policy = wsConfigMerge.data?.[DependencyResolverAspect.id]?.policy || {};\n ['dependencies', 'peerDependencies'].forEach((depField) => {\n if (!policy[depField]) return;\n policy[depField] = policy[depField].reduce((acc, current) => {\n acc[current.name] = current.version;\n return acc;\n }, {});\n });\n const wsPolicy = dependencyResolver.getWorkspacePolicyFromConfigObject(policy);\n return wsPolicy;\n };\n\n const getRootPolicy = () => {\n const pkgJsonPolicy = getWorkspacePolicyFromPackageJson();\n const configMergePolicy = getWorkspacePolicyFromMergeConfig();\n return dependencyResolver.mergeWorkspacePolices([pkgJsonPolicy, configMergePolicy]);\n };\n\n dependencyResolver.registerRootPolicy(getRootPolicy());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: ComponentLoadOptions) => {\n if (opts?.originatedFromHarmony) return legacyComponent;\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id, loadOpts: ComponentConfigLoadOptions) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope, undefined, loadOpts);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n legacyEntry.newExtensionId = legacyEntry.extensionId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n ui.registerPreStart(async () => {\n return workspace.setComponentPathsRegExps();\n });\n graphql.register(workspaceSchema);\n const capsuleCmd = getCapsulesCommands(isolator, scope, workspace);\n const commands: CommandList = [new EjectConfCmd(workspace), capsuleCmd, new UseCmd(workspace)];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async (_hasWorkspace: boolean, currentCommand: string) => {\n if (currentCommand === 'mini-status' || currentCommand === 'ms') {\n return; // mini-status should be super fast.\n }\n if (currentCommand === 'install') {\n workspace.inInstallContext = true;\n }\n await workspace.importCurrentLaneIfMissing();\n const loadAspectsOpts = {\n runSubscribers: false,\n skipDeps: !config.autoLoadAspectsDeps,\n };\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'teambit.workspace/workspace (cli.registerOnStart)',\n loadAspectsOpts\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\nfunction getCapsulesCommands(isolator: IsolatorMain, scope: ScopeMain, workspace?: Workspace) {\n const capsuleCmd = new CapsuleCmd(isolator, workspace, scope);\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace, scope),\n new CapsuleCreateCmd(workspace, scope, isolator),\n new CapsuleDeleteCmd(isolator, scope, workspace),\n ];\n return capsuleCmd;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "1.0.123",
3
+ "version": "1.0.125",
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.123"
9
+ "version": "1.0.125"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -60,35 +60,35 @@
60
60
  "@teambit/explorer.ui.component-card": "0.0.30",
61
61
  "@teambit/explorer.ui.gallery.component-grid": "0.0.496",
62
62
  "@teambit/workspace.ui.empty-workspace": "0.0.508",
63
- "@teambit/component": "1.0.123",
64
- "@teambit/dependency-resolver": "1.0.123",
65
- "@teambit/envs": "1.0.123",
63
+ "@teambit/component": "1.0.125",
64
+ "@teambit/dependency-resolver": "1.0.125",
65
+ "@teambit/envs": "1.0.125",
66
66
  "@teambit/logger": "0.0.938",
67
- "@teambit/scope": "1.0.123",
68
- "@teambit/graph": "1.0.123",
67
+ "@teambit/scope": "1.0.125",
68
+ "@teambit/graph": "1.0.125",
69
69
  "@teambit/cli": "0.0.845",
70
- "@teambit/isolator": "1.0.123",
71
- "@teambit/component-tree": "1.0.123",
70
+ "@teambit/isolator": "1.0.125",
71
+ "@teambit/component-tree": "1.0.125",
72
72
  "@teambit/harmony.modules.resolved-component": "0.0.497",
73
- "@teambit/watcher": "1.0.123",
74
- "@teambit/aspect-loader": "1.0.123",
75
- "@teambit/config": "0.0.874",
73
+ "@teambit/watcher": "1.0.125",
74
+ "@teambit/aspect-loader": "1.0.125",
75
+ "@teambit/config": "0.0.876",
76
76
  "@teambit/global-config": "0.0.848",
77
77
  "@teambit/harmony.modules.requireable-component": "0.0.497",
78
78
  "@teambit/toolbox.modules.module-resolver": "0.0.7",
79
- "@teambit/workspace.modules.node-modules-linker": "0.0.161",
80
- "@teambit/graphql": "1.0.123",
81
- "@teambit/bundler": "1.0.123",
82
- "@teambit/pubsub": "1.0.123",
83
- "@teambit/ui": "1.0.123",
84
- "@teambit/variants": "0.0.967",
79
+ "@teambit/workspace.modules.node-modules-linker": "0.0.162",
80
+ "@teambit/graphql": "1.0.125",
81
+ "@teambit/bundler": "1.0.125",
82
+ "@teambit/pubsub": "1.0.125",
83
+ "@teambit/ui": "1.0.125",
84
+ "@teambit/variants": "0.0.969",
85
85
  "@teambit/component-issues": "0.0.140",
86
86
  "@teambit/workspace.modules.match-pattern": "0.0.504",
87
87
  "@teambit/component.ui.component-drawer": "0.0.385",
88
88
  "@teambit/lanes.hooks.use-lane-components": "0.0.255",
89
- "@teambit/command-bar": "1.0.123",
90
- "@teambit/sidebar": "1.0.123",
91
- "@teambit/deprecation": "1.0.123",
89
+ "@teambit/command-bar": "1.0.125",
90
+ "@teambit/sidebar": "1.0.125",
91
+ "@teambit/deprecation": "1.0.125",
92
92
  "@teambit/component-descriptor": "0.0.412",
93
93
  "@teambit/cloud.hooks.use-cloud-scopes": "0.0.3",
94
94
  "@teambit/preview.ui.preview-placeholder": "0.0.508",
@@ -0,0 +1,135 @@
1
+ import mapSeries from 'p-map-series';
2
+ import { ComponentID, ComponentIdList } from '@teambit/component-id';
3
+ import { BitError } from '@teambit/bit-error';
4
+ import { VERSION_ZERO } from '@teambit/legacy/dist/scope/models/model-component';
5
+ import { Consumer } from '@teambit/legacy/dist/consumer';
6
+ import { LATEST } from '@teambit/legacy/dist/constants';
7
+ import { ModelComponent } from '@teambit/legacy/dist/scope/models';
8
+ import { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';
9
+ import ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';
10
+ import ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';
11
+ import MissingFilesFromComponent from '@teambit/legacy/dist/consumer/component/exceptions/missing-files-from-component';
12
+ import ComponentOutOfSync from '@teambit/legacy/dist/consumer/exceptions/component-out-of-sync';
13
+ import { Workspace } from '..';
14
+
15
+ export type ComponentStatusLegacy = {
16
+ modified: boolean;
17
+ newlyCreated: boolean;
18
+ deleted: boolean;
19
+ staged: boolean;
20
+ notExist: boolean;
21
+ missingFromScope: boolean;
22
+ };
23
+
24
+ export type ComponentStatusResult = { id: ComponentID; status: ComponentStatusLegacy };
25
+
26
+ export class ComponentStatusLoader {
27
+ private _componentsStatusCache: Record<string, any> = {}; // cache loaded components
28
+ constructor(private workspace: Workspace) {}
29
+
30
+ get consumer(): Consumer {
31
+ return this.workspace.consumer;
32
+ }
33
+
34
+ async getManyComponentsStatuses(ids: ComponentID[]): Promise<ComponentStatusResult[]> {
35
+ const results: ComponentStatusResult[] = [];
36
+ await mapSeries(ids, async (id) => {
37
+ const status = await this.getComponentStatusById(id);
38
+ results.push({ id, status });
39
+ });
40
+ return results;
41
+ }
42
+
43
+ /**
44
+ * Get a component status by ID. Return a ComponentStatus object.
45
+ * Keep in mind that a result can be a partial object of ComponentStatus, e.g. { notExist: true }.
46
+ * Each one of the ComponentStatus properties can be undefined, true or false.
47
+ * As a result, in order to check whether a component is not modified use (status.modified === false).
48
+ * Don't use (!status.modified) because a component may not exist and the status.modified will be undefined.
49
+ *
50
+ * The status may have 'true' for several properties. For example, a component can be staged and modified at the
51
+ * same time.
52
+ *
53
+ * The result is cached per ID and can be called several times with no penalties.
54
+ */
55
+ async getComponentStatusById(id: ComponentID): Promise<ComponentStatusLegacy> {
56
+ if (!this._componentsStatusCache[id.toString()]) {
57
+ this._componentsStatusCache[id.toString()] = await this.getStatus(id);
58
+ }
59
+ return this._componentsStatusCache[id.toString()];
60
+ }
61
+
62
+ private async getStatus(id: ComponentID) {
63
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
64
+ const status: ComponentStatusLegacy = {};
65
+ const componentFromModel: ModelComponent | undefined = await this.consumer.scope.getModelComponentIfExist(id);
66
+ let componentFromFileSystem;
67
+ try {
68
+ // change to 'latest' before loading from FS. don't change to null, otherwise, it'll cause
69
+ // loadOne to not find model component as it assumes there is no version
70
+ // also, don't leave the id as is, otherwise, it'll cause issues with import --merge, when
71
+ // imported version is bigger than .bitmap, it won't find it and will consider as deleted
72
+ const { components, removedComponents } = await this.consumer.loadComponents(
73
+ new ComponentIdList(id.changeVersion(LATEST))
74
+ );
75
+ if (removedComponents.length) {
76
+ status.deleted = true;
77
+ return status;
78
+ }
79
+ componentFromFileSystem = components[0];
80
+ } catch (err: any) {
81
+ if (
82
+ err instanceof MissingFilesFromComponent ||
83
+ err instanceof ComponentNotFoundInPath ||
84
+ err instanceof MissingBitMapComponent
85
+ ) {
86
+ // the file/s have been deleted or the component doesn't exist in bit.map file
87
+ if (componentFromModel) status.deleted = true;
88
+ else status.notExist = true;
89
+ return status;
90
+ }
91
+ if (err instanceof ComponentsPendingImport) {
92
+ status.missingFromScope;
93
+ return status;
94
+ }
95
+ throw err;
96
+ }
97
+ if (!componentFromModel) {
98
+ status.newlyCreated = true;
99
+ return status;
100
+ }
101
+ if (componentFromModel.getHeadRegardlessOfLaneAsTagOrHash(true) === VERSION_ZERO) {
102
+ status.newlyCreated = true;
103
+ return status;
104
+ }
105
+
106
+ const lane = await this.consumer.getCurrentLaneObject();
107
+ await componentFromModel.setDivergeData(this.consumer.scope.objects);
108
+ status.staged = await componentFromModel.isLocallyChanged(this.consumer.scope.objects, lane);
109
+ const versionFromFs = componentFromFileSystem.id.version;
110
+ const idStr = id.toString();
111
+ if (!componentFromFileSystem.id.hasVersion()) {
112
+ throw new ComponentOutOfSync(idStr);
113
+ }
114
+ // TODO: instead of doing that like this we should use:
115
+ // const versionFromModel = await componentFromModel.loadVersion(versionFromFs, this.consumer.scope.objects);
116
+ // it looks like it's exactly the same code but it's not working from some reason
117
+ const versionRef = componentFromModel.getRef(versionFromFs);
118
+ if (!versionRef) throw new BitError(`version ${versionFromFs} was not found in ${idStr}`);
119
+ const versionFromModel = await this.consumer.scope.getObject(versionRef.hash);
120
+ if (!versionFromModel) {
121
+ throw new BitError(`failed loading version ${versionFromFs} of ${idStr} from the scope`);
122
+ }
123
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
124
+ status.modified = await this.consumer.isComponentModified(versionFromModel, componentFromFileSystem);
125
+ return status;
126
+ }
127
+
128
+ clearOneComponentCache(id: ComponentID) {
129
+ delete this._componentsStatusCache[id.toString()];
130
+ }
131
+
132
+ clearCache() {
133
+ this._componentsStatusCache = {};
134
+ }
135
+ }
@@ -1,4 +1,4 @@
1
- import { ComponentStatus as LegacyComponentStatus } from '@teambit/legacy/dist/consumer/component-ops/component-status-loader';
1
+ import { ComponentStatusLegacy } from './component-status-loader';
2
2
 
3
3
  export type ModifyInfo = {
4
4
  hasModifiedFiles: boolean;
@@ -49,7 +49,7 @@ export class ComponentStatus {
49
49
  readonly nested?: boolean
50
50
  ) {}
51
51
 
52
- static fromLegacy(status: LegacyComponentStatus, hasModifiedDependencies: boolean, isOutdated: boolean) {
52
+ static fromLegacy(status: ComponentStatusLegacy, hasModifiedDependencies: boolean, isOutdated: boolean) {
53
53
  const modify: ModifyInfo = {
54
54
  hasModifiedFiles: !!status.modified,
55
55
  hasModifiedDependencies,