@teambit/workspace 0.0.844 → 0.0.847
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/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ui/workspace/use-workspace.js +3 -0
- package/dist/ui/workspace/use-workspace.js.map +1 -1
- package/dist/workspace-component/workspace-component-loader.js +6 -0
- package/dist/workspace-component/workspace-component-loader.js.map +1 -1
- package/dist/workspace.d.ts +9 -60
- package/dist/workspace.js +29 -411
- package/dist/workspace.js.map +1 -1
- package/dist/workspace.main.runtime.js +1 -11
- package/dist/workspace.main.runtime.js.map +1 -1
- package/dist/workspace.provider.d.ts +2 -4
- package/dist/workspace.provider.js +3 -66
- package/dist/workspace.provider.js.map +1 -1
- package/dist/workspace.ui.runtime.d.ts +2 -1
- package/dist/workspace.ui.runtime.js +27 -6
- package/dist/workspace.ui.runtime.js.map +1 -1
- package/package-tar/teambit-workspace-0.0.847.tgz +0 -0
- package/package.json +33 -42
- package/{preview-1662281577904.js → preview-1662694416892.js} +2 -2
- package/ui/workspace/use-workspace.ts +3 -0
- package/workspace-component/workspace-component-loader.ts +5 -0
- package/workspace.ui.runtime.tsx +16 -6
- package/__snapshots__/pick-outdated-pkgs.spec.ts.snap +0 -171
- package/dist/__snapshots__/pick-outdated-pkgs.spec.js.snap +0 -171
- package/dist/__snapshots__/pick-outdated-pkgs.spec.ts.snap +0 -171
- package/dist/exceptions/dependency-type-not-supported-in-policy.d.ts +0 -4
- package/dist/exceptions/dependency-type-not-supported-in-policy.js +0 -27
- package/dist/exceptions/dependency-type-not-supported-in-policy.js.map +0 -1
- package/dist/exceptions/index.d.ts +0 -1
- package/dist/exceptions/index.js +0 -23
- package/dist/exceptions/index.js.map +0 -1
- package/dist/install.cmd.d.ts +0 -44
- package/dist/install.cmd.js +0 -85
- package/dist/install.cmd.js.map +0 -1
- package/dist/link/component-list-links.d.ts +0 -7
- package/dist/link/component-list-links.js +0 -98
- package/dist/link/component-list-links.js.map +0 -1
- package/dist/link/core-aspects-links.d.ts +0 -7
- package/dist/link/core-aspects-links.js +0 -95
- package/dist/link/core-aspects-links.js.map +0 -1
- package/dist/link/get-package-name-from-target.d.ts +0 -1
- package/dist/link/get-package-name-from-target.js +0 -16
- package/dist/link/get-package-name-from-target.js.map +0 -1
- package/dist/link/index.d.ts +0 -1
- package/dist/link/index.js +0 -23
- package/dist/link/index.js.map +0 -1
- package/dist/link/link-row.d.ts +0 -12
- package/dist/link/link-row.js +0 -38
- package/dist/link/link-row.js.map +0 -1
- package/dist/link/link-to-dir.d.ts +0 -2
- package/dist/link/link-to-dir.js +0 -45
- package/dist/link/link-to-dir.js.map +0 -1
- package/dist/link/link.cmd.d.ts +0 -44
- package/dist/link/link.cmd.js +0 -176
- package/dist/link/link.cmd.js.map +0 -1
- package/dist/link/nested-deps-in-nm-links.d.ts +0 -7
- package/dist/link/nested-deps-in-nm-links.js +0 -74
- package/dist/link/nested-deps-in-nm-links.js.map +0 -1
- package/dist/link/rewire-row.d.ts +0 -6
- package/dist/link/rewire-row.js +0 -31
- package/dist/link/rewire-row.js.map +0 -1
- package/dist/pick-outdated-pkgs.d.ts +0 -16
- package/dist/pick-outdated-pkgs.js +0 -308
- package/dist/pick-outdated-pkgs.js.map +0 -1
- package/dist/pick-outdated-pkgs.spec.d.ts +0 -1
- package/dist/pick-outdated-pkgs.spec.js +0 -121
- package/dist/pick-outdated-pkgs.spec.js.map +0 -1
- package/dist/uninstall.cmd.d.ts +0 -19
- package/dist/uninstall.cmd.js +0 -47
- package/dist/uninstall.cmd.js.map +0 -1
- package/dist/update.cmd.d.ts +0 -23
- package/dist/update.cmd.js +0 -47
- package/dist/update.cmd.js.map +0 -1
- package/exceptions/dependency-type-not-supported-in-policy.ts +0 -7
- package/exceptions/index.ts +0 -1
- package/install.cmd.tsx +0 -72
- package/link/component-list-links.ts +0 -50
- package/link/core-aspects-links.ts +0 -50
- package/link/get-package-name-from-target.ts +0 -5
- package/link/index.ts +0 -1
- package/link/link-row.ts +0 -20
- package/link/link-to-dir.ts +0 -13
- package/link/link.cmd.ts +0 -100
- package/link/nested-deps-in-nm-links.ts +0 -47
- package/link/rewire-row.ts +0 -17
- package/package-tar/teambit-workspace-0.0.844.tgz +0 -0
- package/uninstall.cmd.tsx +0 -23
- package/update.cmd.tsx +0 -29
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export { ComponentStatus } from './workspace-component';
|
|
|
12
12
|
export { WorkspaceModelComponent } from './ui/workspace/workspace-model';
|
|
13
13
|
export { WorkspaceContext } from './ui/workspace/workspace-context';
|
|
14
14
|
export type { WorkspaceComponent } from './workspace-component';
|
|
15
|
+
export type { ComponentConfigFile } from './component-config-file';
|
|
15
16
|
export { WorkspaceAspect };
|
|
16
17
|
export default WorkspaceAspect;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WorkspaceAspect"],"sources":["index.ts"],"sourcesContent":["import { WorkspaceAspect } from './workspace.aspect';\n// eslint-disable-next-line import/prefer-default-export\nexport type { default as Workspace, ExtensionsOrigin } from './workspace';\n// TODO: change to module path once track the utils folder\nexport type { ResolvedComponent } from '@teambit/harmony.modules.resolved-component';\nexport type { AlreadyExistsError as ComponentConfigFileAlreadyExistsError } from './component-config-file';\nexport type { WorkspaceMain } from './workspace.main.runtime';\nexport type { WatchOptions } from './watch/watcher';\nexport { CheckTypes } from './watch/check-types';\nexport * from './events';\nexport type { WorkspaceUI } from './workspace.ui.runtime';\nexport type { SerializableResults, OnComponentLoad, OnComponentEventResult } from './on-component-events';\nexport { ComponentStatus } from './workspace-component';\nexport { WorkspaceModelComponent } from './ui/workspace/workspace-model';\nexport { WorkspaceContext } from './ui/workspace/workspace-context';\nexport type { WorkspaceComponent } from './workspace-component';\n\nexport { WorkspaceAspect };\nexport default WorkspaceAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAQA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;
|
|
1
|
+
{"version":3,"names":["WorkspaceAspect"],"sources":["index.ts"],"sourcesContent":["import { WorkspaceAspect } from './workspace.aspect';\n// eslint-disable-next-line import/prefer-default-export\nexport type { default as Workspace, ExtensionsOrigin } from './workspace';\n// TODO: change to module path once track the utils folder\nexport type { ResolvedComponent } from '@teambit/harmony.modules.resolved-component';\nexport type { AlreadyExistsError as ComponentConfigFileAlreadyExistsError } from './component-config-file';\nexport type { WorkspaceMain } from './workspace.main.runtime';\nexport type { WatchOptions } from './watch/watcher';\nexport { CheckTypes } from './watch/check-types';\nexport * from './events';\nexport type { WorkspaceUI } from './workspace.ui.runtime';\nexport type { SerializableResults, OnComponentLoad, OnComponentEventResult } from './on-component-events';\nexport { ComponentStatus } from './workspace-component';\nexport { WorkspaceModelComponent } from './ui/workspace/workspace-model';\nexport { WorkspaceContext } from './ui/workspace/workspace-context';\nexport type { WorkspaceComponent } from './workspace-component';\nexport type { ComponentConfigFile } from './component-config-file';\n\nexport { WorkspaceAspect };\nexport default WorkspaceAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAQA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eAKeA,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","useWorkspace","options","useDataQuery","data","subscribeToMore","rest","optionsRef","useLatest","useEffect","unSubCompAddition","document","updateQuery","prev","subscriptionData","update","addedComponent","componentAdded","component","componentExists","workspace","components","find","ComponentID","isEqualObj","id","ignoreVersion","setTimeout","current","onComponentAdded","ComponentModel","from","unSubCompChange","updatedComponent","componentChanged","onComponentUpdated","map","name","unSubCompRemoved","idsToRemove","componentRemoved","componentIds","length","onComponentRemoved","fromObject","filter","every","useMemo","Workspace","undefined"],"sources":["use-workspace.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ComponentModel } from '@teambit/component';\nimport useLatest from '@react-hook/latest';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { gql } from '@apollo/client';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceOptions = {\n onComponentAdded?: (component: ComponentModel[]) => void;\n onComponentUpdated?: (component: ComponentModel[]) => void;\n onComponentRemoved?: (compId: ComponentID[]) => void;\n};\ntype RawComponent = { id: ComponentIdObj };\n\nconst wcComponentFields = gql`\n fragment wcComponentFields on Component {\n id {\n name\n version\n scope\n }\n compositions {\n identifier\n }\n description\n issuesCount\n status {\n isOutdated\n isNew\n isInScope\n isStaged\n modifyInfo {\n hasModifiedFiles\n hasModifiedDependencies\n }\n isDeleted\n }\n deprecation {\n isDeprecate\n newId\n }\n server {\n env\n url\n }\n env {\n id\n icon\n }\n }\n`;\n\nconst WORKSPACE = gql`\n query workspace {\n workspace {\n name\n path\n icon\n components {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n name\n version\n scope\n }\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}) {\n const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);\n const optionsRef = useLatest(options);\n\n useEffect(() => {\n const unSubCompAddition = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n const addedComponent = update?.componentAdded?.component;\n if (!addedComponent) return prev;\n\n const componentExists = prev.workspace.components.find((component: any) =>\n ComponentID.isEqualObj(component.id, addedComponent.id, { ignoreVersion: true })\n );\n if (componentExists) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentAdded?.([ComponentModel.from(addedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: [...prev.workspace.components, addedComponent],\n },\n };\n },\n });\n\n const unSubCompChange = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const updatedComponent = update.componentChanged.component;\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentUpdated?.([ComponentModel.from(updatedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.map((component) =>\n component.id.name === updatedComponent.id.name ? updatedComponent : component\n ),\n },\n };\n },\n });\n\n const unSubCompRemoved = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n const idsToRemove: ComponentIdObj[] | undefined = subscriptionData.data?.componentRemoved?.componentIds;\n if (!idsToRemove || idsToRemove.length === 0) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map((id) => ComponentID.fromObject(id))));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.filter((component: RawComponent) =>\n idsToRemove.every((id) => !ComponentID.isEqualObj(id, component.id))\n ),\n },\n };\n },\n });\n\n // TODO - sub to component removal\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n };\n }, [optionsRef]);\n\n const workspace = useMemo(() => {\n return data?.workspace ? Workspace.from(data?.workspace) : undefined;\n }, [data?.workspace]);\n\n return {\n workspace,\n subscribeToMore,\n ...rest,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AASA,MAAMA,iBAAiB,GAAG,IAAAC,aAAA,CAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"names":["wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","useWorkspace","options","useDataQuery","data","subscribeToMore","rest","optionsRef","useLatest","useEffect","unSubCompAddition","document","updateQuery","prev","subscriptionData","update","addedComponent","componentAdded","component","componentExists","workspace","components","find","ComponentID","isEqualObj","id","ignoreVersion","setTimeout","current","onComponentAdded","ComponentModel","from","unSubCompChange","updatedComponent","componentChanged","onComponentUpdated","map","name","unSubCompRemoved","idsToRemove","componentRemoved","componentIds","length","onComponentRemoved","fromObject","filter","every","useMemo","Workspace","undefined"],"sources":["use-workspace.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ComponentModel } from '@teambit/component';\nimport useLatest from '@react-hook/latest';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { gql } from '@apollo/client';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceOptions = {\n onComponentAdded?: (component: ComponentModel[]) => void;\n onComponentUpdated?: (component: ComponentModel[]) => void;\n onComponentRemoved?: (compId: ComponentID[]) => void;\n};\ntype RawComponent = { id: ComponentIdObj };\n\nconst wcComponentFields = gql`\n fragment wcComponentFields on Component {\n id {\n name\n version\n scope\n }\n compositions {\n identifier\n }\n description\n issuesCount\n status {\n isOutdated\n isNew\n isInScope\n isStaged\n modifyInfo {\n hasModifiedFiles\n hasModifiedDependencies\n }\n isDeleted\n }\n preview {\n isScaling\n }\n deprecation {\n isDeprecate\n newId\n }\n server {\n env\n url\n }\n env {\n id\n icon\n }\n }\n`;\n\nconst WORKSPACE = gql`\n query workspace {\n workspace {\n name\n path\n icon\n components {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n name\n version\n scope\n }\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}) {\n const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);\n const optionsRef = useLatest(options);\n\n useEffect(() => {\n const unSubCompAddition = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n const addedComponent = update?.componentAdded?.component;\n if (!addedComponent) return prev;\n\n const componentExists = prev.workspace.components.find((component: any) =>\n ComponentID.isEqualObj(component.id, addedComponent.id, { ignoreVersion: true })\n );\n if (componentExists) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentAdded?.([ComponentModel.from(addedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: [...prev.workspace.components, addedComponent],\n },\n };\n },\n });\n\n const unSubCompChange = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const updatedComponent = update.componentChanged.component;\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentUpdated?.([ComponentModel.from(updatedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.map((component) =>\n component.id.name === updatedComponent.id.name ? updatedComponent : component\n ),\n },\n };\n },\n });\n\n const unSubCompRemoved = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n const idsToRemove: ComponentIdObj[] | undefined = subscriptionData.data?.componentRemoved?.componentIds;\n if (!idsToRemove || idsToRemove.length === 0) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map((id) => ComponentID.fromObject(id))));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.filter((component: RawComponent) =>\n idsToRemove.every((id) => !ComponentID.isEqualObj(id, component.id))\n ),\n },\n };\n },\n });\n\n // TODO - sub to component removal\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n };\n }, [optionsRef]);\n\n const workspace = useMemo(() => {\n return data?.workspace ? Workspace.from(data?.workspace) : undefined;\n }, [data?.workspace]);\n\n return {\n workspace,\n subscribeToMore,\n ...rest,\n };\n}\n"],"mappings":"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"}
|
|
@@ -385,6 +385,12 @@ class WorkspaceComponentLoader {
|
|
|
385
385
|
}
|
|
386
386
|
|
|
387
387
|
async executeLoadSlot(component, loadOpts) {
|
|
388
|
+
if (component.state._consumer.removed) {
|
|
389
|
+
// if it was soft-removed now, the component is not in the FS. loading aspects such as composition ends up with
|
|
390
|
+
// errors as they try to read component files from the filesystem.
|
|
391
|
+
return component;
|
|
392
|
+
}
|
|
393
|
+
|
|
388
394
|
const entries = this.workspace.onComponentLoadSlot.toArray();
|
|
389
395
|
const promises = entries.map(async ([extension, onLoad]) => {
|
|
390
396
|
const data = await onLoad(component, loadOpts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","catch","err","isComponentNotExistsError","push","undefined","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","loadOpts","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","uniq","map","env","state","issues","getOrCreate","IssuesClasses","MultipleEnvs","data","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","upsertExtensionData","envsData","getEnvSystemDescriptor","policy","mergeVariantPolicies","config","extractDepsFromLegacy","depResolverData","serialize","EnvsAspect","DependencyResolverAspect","Promise","all","updatedAspectList","aspects","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","JSON","stringify","sortKeys","obj","fromPairs","sort","k1","k2","localeCompare"],"sources":["workspace-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, InvalidComponent, State, TagMap } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport mapSeries from 'p-map-series';\nimport { compact, fromPairs, uniq } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport { getLatestVersionNumber } from '@teambit/legacy/dist/utils';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private envs: EnvsMain\n ) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n async getMany(ids: Array<ComponentID>): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n return this.get(id).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLane,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, loadOpts);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id));\n // in case of out-of-sync, the id may changed during the load process\n const updatedId = consumerComponent ? ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;\n const component = await this.loadOne(updatedId, consumerComponent, loadOpts);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, loadOpts);\n }\n return component;\n }\n\n async getIfExist(componentId: ComponentID) {\n try {\n return await this.get(componentId);\n } catch (err: any) {\n if (this.isComponentNotExistsError(err)) {\n return undefined;\n }\n throw err;\n }\n }\n\n private addMultipleEnvsIssueIfNeeded(component: Component) {\n const envs = this.envs.getAllEnvsConfiguredOnComponent(component);\n const envIds = uniq(envs.map((env) => env.id));\n if (envIds.length < 2) {\n return;\n }\n component.state.issues.getOrCreate(IssuesClasses.MultipleEnvs).data = envIds;\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n for (const cacheKey of this.componentsCache.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCache.delete(cacheKey);\n }\n }\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent, loadOpts?: ComponentLoadOptions) {\n const componentFromScope = await this.workspace.scope.get(id);\n if (!consumerComponent) {\n if (!componentFromScope) throw new MissingBitMapComponent(id.toString());\n return componentFromScope;\n }\n const { extensions } = await this.workspace.componentExtensions(id, componentFromScope);\n const extensionsFromConsumerComponent = consumerComponent.extensions || new ExtensionDataList();\n // Merge extensions added by the legacy code in memory (for example data of dependency resolver)\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConsumerComponent,\n extensions,\n ]).filterRemovedExtensions();\n\n // temporarily mutate consumer component extensions until we remove all direct access from legacy to extensions data\n // TODO: remove this once we remove all direct access from legacy code to extensions data\n consumerComponent.extensions = extensionDataList;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensionDataList),\n await this.workspace.createAspectList(extensionDataList),\n ComponentFS.fromVinyls(consumerComponent.files),\n consumerComponent.dependencies,\n consumerComponent\n );\n if (componentFromScope) {\n // Removed by @gilad. do not mutate the component from the scope\n // componentFromScope.state = state;\n // const workspaceComponent = WorkspaceComponent.fromComponent(componentFromScope, this.workspace);\n const workspaceComponent = new WorkspaceComponent(\n componentFromScope.id,\n componentFromScope.head,\n state,\n componentFromScope.tags,\n this.workspace\n );\n return this.executeLoadSlot(workspaceComponent, loadOpts);\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);\n }\n\n private saveInCache(component: Component, loadOpts?: ComponentLoadOptions): void {\n const cacheKey = createComponentCacheKey(component.id, loadOpts);\n this.componentsCache.set(cacheKey, component);\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID, loadOpts?: ComponentLoadOptions): Component | undefined {\n const cacheKey = createComponentCacheKey(id, loadOpts);\n const fromCache = this.componentsCache.get(cacheKey);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private async getConsumerComponent(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n // don't return undefined for any error. otherwise, if the component is invalid (e.g. main\n // file is missing) it returns the model component later unexpectedly, or if it's new, it\n // shows MissingBitMapComponent error incorrectly.\n if (this.isComponentNotExistsError(err)) {\n this.logger.debug(\n `failed loading component \"${id.toString()}\" from the workspace due to \"${err.name}\" error\\n${err.message}`\n );\n return undefined;\n }\n throw err;\n }\n }\n\n private isComponentNotExistsError(err: Error): boolean {\n return (\n err instanceof ComponentNotFound ||\n err instanceof MissingBitMapComponent ||\n err instanceof ComponentNotFoundInPath\n );\n }\n\n private async executeLoadSlot(component: Component, loadOpts?: ComponentLoadOptions) {\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component, loadOpts);\n return this.upsertExtensionData(component, extension, data);\n });\n\n // Special load events which runs from the workspace but should run from the correct aspect\n // TODO: remove this once those extensions dependent on workspace\n const envsData = await this.workspace.getEnvSystemDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(component.config.extensions);\n const dependencies = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n dependencies,\n policy: policy.serialize(),\n };\n\n promises.push(this.upsertExtensionData(component, EnvsAspect.id, envsData));\n promises.push(this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData));\n\n await Promise.all(promises);\n\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n const updatedAspectList = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = updatedAspectList;\n return component;\n }\n\n private newComponentFromState(id: ComponentID, state: State): Component {\n return new WorkspaceComponent(id, null, state, new TagMap(), this.workspace);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension && data) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state.config.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n}\n\nfunction createComponentCacheKey(id: ComponentID, loadOpts?: ComponentLoadOptions): string {\n return `${id.toString()}:${JSON.stringify(sortKeys(loadOpts ?? {}))}`;\n}\n\nfunction sortKeys(obj: Object) {\n return fromPairs(Object.entries(obj).sort(([k1], [k2]) => k1.localeCompare(k2)));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","catch","err","isComponentNotExistsError","push","undefined","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","loadOpts","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","uniq","map","env","state","issues","getOrCreate","IssuesClasses","MultipleEnvs","data","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","_consumer","removed","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","upsertExtensionData","envsData","getEnvSystemDescriptor","policy","mergeVariantPolicies","config","extractDepsFromLegacy","depResolverData","serialize","EnvsAspect","DependencyResolverAspect","Promise","all","updatedAspectList","aspects","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","JSON","stringify","sortKeys","obj","fromPairs","sort","k1","k2","localeCompare"],"sources":["workspace-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, InvalidComponent, State, TagMap } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport mapSeries from 'p-map-series';\nimport { compact, fromPairs, uniq } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport { getLatestVersionNumber } from '@teambit/legacy/dist/utils';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private envs: EnvsMain\n ) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n async getMany(ids: Array<ComponentID>): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n return this.get(id).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLane,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, loadOpts);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id));\n // in case of out-of-sync, the id may changed during the load process\n const updatedId = consumerComponent ? ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;\n const component = await this.loadOne(updatedId, consumerComponent, loadOpts);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, loadOpts);\n }\n return component;\n }\n\n async getIfExist(componentId: ComponentID) {\n try {\n return await this.get(componentId);\n } catch (err: any) {\n if (this.isComponentNotExistsError(err)) {\n return undefined;\n }\n throw err;\n }\n }\n\n private addMultipleEnvsIssueIfNeeded(component: Component) {\n const envs = this.envs.getAllEnvsConfiguredOnComponent(component);\n const envIds = uniq(envs.map((env) => env.id));\n if (envIds.length < 2) {\n return;\n }\n component.state.issues.getOrCreate(IssuesClasses.MultipleEnvs).data = envIds;\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n for (const cacheKey of this.componentsCache.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCache.delete(cacheKey);\n }\n }\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent, loadOpts?: ComponentLoadOptions) {\n const componentFromScope = await this.workspace.scope.get(id);\n if (!consumerComponent) {\n if (!componentFromScope) throw new MissingBitMapComponent(id.toString());\n return componentFromScope;\n }\n const { extensions } = await this.workspace.componentExtensions(id, componentFromScope);\n const extensionsFromConsumerComponent = consumerComponent.extensions || new ExtensionDataList();\n // Merge extensions added by the legacy code in memory (for example data of dependency resolver)\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConsumerComponent,\n extensions,\n ]).filterRemovedExtensions();\n\n // temporarily mutate consumer component extensions until we remove all direct access from legacy to extensions data\n // TODO: remove this once we remove all direct access from legacy code to extensions data\n consumerComponent.extensions = extensionDataList;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensionDataList),\n await this.workspace.createAspectList(extensionDataList),\n ComponentFS.fromVinyls(consumerComponent.files),\n consumerComponent.dependencies,\n consumerComponent\n );\n if (componentFromScope) {\n // Removed by @gilad. do not mutate the component from the scope\n // componentFromScope.state = state;\n // const workspaceComponent = WorkspaceComponent.fromComponent(componentFromScope, this.workspace);\n const workspaceComponent = new WorkspaceComponent(\n componentFromScope.id,\n componentFromScope.head,\n state,\n componentFromScope.tags,\n this.workspace\n );\n return this.executeLoadSlot(workspaceComponent, loadOpts);\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);\n }\n\n private saveInCache(component: Component, loadOpts?: ComponentLoadOptions): void {\n const cacheKey = createComponentCacheKey(component.id, loadOpts);\n this.componentsCache.set(cacheKey, component);\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID, loadOpts?: ComponentLoadOptions): Component | undefined {\n const cacheKey = createComponentCacheKey(id, loadOpts);\n const fromCache = this.componentsCache.get(cacheKey);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private async getConsumerComponent(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n // don't return undefined for any error. otherwise, if the component is invalid (e.g. main\n // file is missing) it returns the model component later unexpectedly, or if it's new, it\n // shows MissingBitMapComponent error incorrectly.\n if (this.isComponentNotExistsError(err)) {\n this.logger.debug(\n `failed loading component \"${id.toString()}\" from the workspace due to \"${err.name}\" error\\n${err.message}`\n );\n return undefined;\n }\n throw err;\n }\n }\n\n private isComponentNotExistsError(err: Error): boolean {\n return (\n err instanceof ComponentNotFound ||\n err instanceof MissingBitMapComponent ||\n err instanceof ComponentNotFoundInPath\n );\n }\n\n private async executeLoadSlot(component: Component, loadOpts?: ComponentLoadOptions) {\n 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 const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component, loadOpts);\n return this.upsertExtensionData(component, extension, data);\n });\n\n // Special load events which runs from the workspace but should run from the correct aspect\n // TODO: remove this once those extensions dependent on workspace\n const envsData = await this.workspace.getEnvSystemDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(component.config.extensions);\n const dependencies = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n dependencies,\n policy: policy.serialize(),\n };\n\n promises.push(this.upsertExtensionData(component, EnvsAspect.id, envsData));\n promises.push(this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData));\n\n await Promise.all(promises);\n\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n const updatedAspectList = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = updatedAspectList;\n return component;\n }\n\n private newComponentFromState(id: ComponentID, state: State): Component {\n return new WorkspaceComponent(id, null, state, new TagMap(), this.workspace);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension && data) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state.config.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n}\n\nfunction createComponentCacheKey(id: ComponentID, loadOpts?: ComponentLoadOptions): string {\n return `${id.toString()}:${JSON.stringify(sortKeys(loadOpts ?? {}))}`;\n}\n\nfunction sortKeys(obj: Object) {\n return fromPairs(Object.entries(obj).sort(([k1], [k2]) => k1.localeCompare(k2)));\n}\n"],"mappings":"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"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { PubsubMain } from '@teambit/pubsub';
|
|
2
2
|
import { IssuesList } from '@teambit/component-issues';
|
|
3
3
|
import type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';
|
|
4
|
-
import { ComponentMain, Component, ComponentFactory, ComponentID,
|
|
4
|
+
import { ComponentMain, Component, ComponentFactory, ComponentID, AspectList, AspectData, InvalidComponent, ResolveAspectsOptions } from '@teambit/component';
|
|
5
5
|
import { ComponentScopeDirMap } from '@teambit/config';
|
|
6
|
-
import {
|
|
6
|
+
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
7
7
|
import { EnvsMain } from '@teambit/envs';
|
|
8
8
|
import { GraphqlMain } from '@teambit/graphql';
|
|
9
9
|
import { Harmony } from '@teambit/harmony';
|
|
10
|
-
import { IsolatorMain } from '@teambit/isolator';
|
|
11
10
|
import { Logger } from '@teambit/logger';
|
|
12
11
|
import type { ScopeMain } from '@teambit/scope';
|
|
13
12
|
import { RequireableComponent } from '@teambit/harmony.modules.requireable-component';
|
|
@@ -27,6 +26,7 @@ import type { ComponentLog } from '@teambit/legacy/dist/scope/models/model-compo
|
|
|
27
26
|
import { CompilationInitiator } from '@teambit/compiler';
|
|
28
27
|
import { Lane } from '@teambit/legacy/dist/scope/models';
|
|
29
28
|
import { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';
|
|
29
|
+
import { ComponentConfigFile } from './component-config-file';
|
|
30
30
|
import { OnComponentAdd, OnComponentChange, OnComponentEventResult, OnComponentLoad, OnComponentRemove } from './on-component-events';
|
|
31
31
|
import { WorkspaceExtConfig } from './types';
|
|
32
32
|
import { Watcher, WatchOptions } from './watch/watcher';
|
|
@@ -46,19 +46,6 @@ export interface EjectConfOptions {
|
|
|
46
46
|
propagate?: boolean;
|
|
47
47
|
override?: boolean;
|
|
48
48
|
}
|
|
49
|
-
export declare type WorkspaceInstallOptions = {
|
|
50
|
-
addMissingPeers?: boolean;
|
|
51
|
-
variants?: string;
|
|
52
|
-
lifecycleType?: WorkspaceDependencyLifecycleType;
|
|
53
|
-
dedupe: boolean;
|
|
54
|
-
import: boolean;
|
|
55
|
-
copyPeerToRuntimeOnRoot?: boolean;
|
|
56
|
-
copyPeerToRuntimeOnComponents?: boolean;
|
|
57
|
-
updateExisting: boolean;
|
|
58
|
-
savePrefix?: string;
|
|
59
|
-
};
|
|
60
|
-
export declare type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;
|
|
61
|
-
export declare type WorkspaceLinkOptions = LinkingOptions;
|
|
62
49
|
export declare type TrackData = {
|
|
63
50
|
rootDir: PathOsBasedRelative;
|
|
64
51
|
componentName?: string;
|
|
@@ -95,7 +82,6 @@ export declare class Workspace implements ComponentFactory {
|
|
|
95
82
|
* access to the `ComponentProvider` instance
|
|
96
83
|
*/
|
|
97
84
|
private componentAspect;
|
|
98
|
-
private isolator;
|
|
99
85
|
private dependencyResolver;
|
|
100
86
|
private variants;
|
|
101
87
|
private aspectLoader;
|
|
@@ -145,7 +131,7 @@ export declare class Workspace implements ComponentFactory {
|
|
|
145
131
|
/**
|
|
146
132
|
* access to the `ComponentProvider` instance
|
|
147
133
|
*/
|
|
148
|
-
componentAspect: ComponentMain,
|
|
134
|
+
componentAspect: ComponentMain, dependencyResolver: DependencyResolverMain, variants: VariantsMain, aspectLoader: AspectLoaderMain, logger: Logger, componentList: ComponentsList,
|
|
149
135
|
/**
|
|
150
136
|
* private reference to the instance of Harmony.
|
|
151
137
|
*/
|
|
@@ -405,7 +391,11 @@ export declare class Workspace implements ComponentFactory {
|
|
|
405
391
|
* return the component config from its folder (component.json)
|
|
406
392
|
* @param componentId
|
|
407
393
|
*/
|
|
408
|
-
|
|
394
|
+
componentConfigFile(id: ComponentID): Promise<ComponentConfigFile | undefined>;
|
|
395
|
+
/**
|
|
396
|
+
* @param componentPath can be relative or absolute. supports Linux and Windows
|
|
397
|
+
*/
|
|
398
|
+
getComponentIdByPath(componentPath: PathOsBased): Promise<ComponentID | undefined>;
|
|
409
399
|
private componentConfigFileFromComponentDirAndName;
|
|
410
400
|
getAspectsGraphWithoutCore(components: Component[], isAspect?: ShouldLoadFunc): Promise<LegacyGraph>;
|
|
411
401
|
/**
|
|
@@ -433,40 +423,6 @@ export declare class Workspace implements ComponentFactory {
|
|
|
433
423
|
*/
|
|
434
424
|
getTempDir(id: string): string;
|
|
435
425
|
requireComponents(components: Component[]): Promise<RequireableComponent[]>;
|
|
436
|
-
private getComponentsDirectory;
|
|
437
|
-
/**
|
|
438
|
-
* Install dependencies for all components in the workspace
|
|
439
|
-
*
|
|
440
|
-
* @returns
|
|
441
|
-
* @memberof Workspace
|
|
442
|
-
*/
|
|
443
|
-
install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>>;
|
|
444
|
-
private _addPackages;
|
|
445
|
-
private _getComponentsWithDependencyPolicies;
|
|
446
|
-
/**
|
|
447
|
-
* Updates out-of-date dependencies in the workspace.
|
|
448
|
-
*
|
|
449
|
-
* @param options.all {Boolean} updates all outdated dependencies without showing a prompt.
|
|
450
|
-
*/
|
|
451
|
-
updateDependencies(options: {
|
|
452
|
-
all: boolean;
|
|
453
|
-
}): Promise<ComponentMap<string>>;
|
|
454
|
-
private _variantPatternsToDepPolicesDict;
|
|
455
|
-
private _updateVariantsPolicies;
|
|
456
|
-
private _saveManyComponentConfigFiles;
|
|
457
|
-
private _installModules;
|
|
458
|
-
link(options?: WorkspaceLinkOptions): Promise<LinkResults>;
|
|
459
|
-
/**
|
|
460
|
-
* @param componentPath can be relative or absolute. supports Linux and Windows
|
|
461
|
-
*/
|
|
462
|
-
getComponentIdByPath(componentPath: PathOsBased): Promise<ComponentID | undefined>;
|
|
463
|
-
/**
|
|
464
|
-
* Generate a filter to pass to the installer
|
|
465
|
-
* This will filter deps which are come from remotes which defined in scope.json
|
|
466
|
-
* those components comes from local remotes, usually doesn't have a package in a registry
|
|
467
|
-
* so no reason to try to install them (it will fail)
|
|
468
|
-
*/
|
|
469
|
-
private generateFilterFnForDepsFromLocalRemote;
|
|
470
426
|
/**
|
|
471
427
|
* whether a scope is hosted by Bit cloud.
|
|
472
428
|
* otherwise, it is self-hosted
|
|
@@ -476,7 +432,6 @@ export declare class Workspace implements ComponentFactory {
|
|
|
476
432
|
* same as `this.importAndGetMany()` with a specific error handling of ComponentNotFound
|
|
477
433
|
*/
|
|
478
434
|
private importAndGetAspects;
|
|
479
|
-
private importObjects;
|
|
480
435
|
/**
|
|
481
436
|
* this should be rarely in-use.
|
|
482
437
|
* it's currently used by watch extension as a quick workaround to load .bitmap and the components
|
|
@@ -510,12 +465,6 @@ export declare class Workspace implements ComponentFactory {
|
|
|
510
465
|
* @memberof Workspace
|
|
511
466
|
*/
|
|
512
467
|
addDefaultScopeToExtensionsList(extensions: ExtensionDataList): Promise<void[]>;
|
|
513
|
-
/**
|
|
514
|
-
* Uninstall the specified packages from dependencies.
|
|
515
|
-
*
|
|
516
|
-
* @param {string[]} the list of packages that should be removed from dependencies.
|
|
517
|
-
*/
|
|
518
|
-
uninstallDependencies(packages: string[]): Promise<ComponentMap<string>>;
|
|
519
468
|
/**
|
|
520
469
|
* configure an environment to the given components in the .bitmap file, this configuration overrides other, such as
|
|
521
470
|
* overrides in workspace.jsonc.
|