@teambit/workspace 1.0.1044 → 1.0.1046

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.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1044/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1044/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1046/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1046/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,28 +1,14 @@
1
1
  import { ComponentModel } from '@teambit/component';
2
+ import { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';
2
3
  import { ComponentID } from '@teambit/component-id';
3
4
  import { Workspace } from './workspace-model';
5
+ type UseWorkspaceResult = Omit<ReturnType<typeof useDataQuery>, 'data' | 'previousData'> & {
6
+ workspace: Workspace | undefined;
7
+ };
4
8
  type UseWorkspaceOptions = {
5
9
  onComponentAdded?: (component: ComponentModel[]) => void;
6
10
  onComponentUpdated?: (component: ComponentModel[]) => void;
7
11
  onComponentRemoved?: (compId: ComponentID[]) => void;
8
12
  };
9
- export declare function useWorkspace(options?: UseWorkspaceOptions): {
10
- errors?: ReadonlyArray<import("graphql").GraphQLFormattedError> | undefined;
11
- error?: import("@apollo/client").ApolloError | undefined;
12
- client: import("@apollo/client").ApolloClient<any>;
13
- loading: boolean;
14
- variables: import("@apollo/client").OperationVariables | undefined;
15
- observable: import("@apollo/client").ObservableQuery<any, import("@apollo/client").OperationVariables>;
16
- networkStatus: import("@apollo/client").NetworkStatus;
17
- called: boolean;
18
- startPolling: (pollInterval: number) => void;
19
- stopPolling: () => void;
20
- updateQuery: (mapFn: import("@apollo/client").UpdateQueryMapFn<any, import("@apollo/client").OperationVariables>) => void;
21
- reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("@apollo/client").OperationVariables, any>> | undefined, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
22
- previousData?: any;
23
- fetchMore: (options: import("@apollo/client").FetchMoreQueryOptions<import("@apollo/client").OperationVariables, any>) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
24
- refetch: (variables?: Partial<import("@apollo/client").OperationVariables> | undefined) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
25
- workspace: Workspace | undefined;
26
- subscribeToMore: import("@apollo/client").SubscribeToMoreFunction<any, import("@apollo/client").OperationVariables>;
27
- };
13
+ export declare function useWorkspace(options?: UseWorkspaceOptions): UseWorkspaceResult;
28
14
  export {};
@@ -53,7 +53,7 @@ function _workspaceModel() {
53
53
  };
54
54
  return data;
55
55
  }
56
- const _excluded = ["data", "subscribeToMore"];
56
+ const _excluded = ["data", "previousData", "subscribeToMore"];
57
57
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
58
58
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
59
59
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -169,9 +169,12 @@ const COMPONENT_SERVER_STARTED = (0, _client().gql)`
169
169
  }
170
170
  `;
171
171
  function useWorkspace(options = {}) {
172
+ // `previousData` is destructured out (not spread into `...rest`) so the returned shape matches
173
+ // UseWorkspaceResult, which omits it (along with `data`, replaced by `workspace`).
172
174
  const _useDataQuery = (0, _uiFoundationUiHooks().useDataQuery)(WORKSPACE),
173
175
  {
174
176
  data,
177
+ previousData: _previousData,
175
178
  subscribeToMore
176
179
  } = _useDataQuery,
177
180
  rest = _objectWithoutProperties(_useDataQuery, _excluded);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","require","_component","_latest","_interopRequireDefault","_uiFoundationUiHooks","_client","_componentId","_workspaceModel","_excluded","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","COMPONENT_SERVER_STARTED","useWorkspace","options","_useDataQuery","useDataQuery","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","onComponentRemoved","fromObject","every","unSubServerStarted","serverInfo","componentServerStarted","updatedComponents","env","server","url","host","basePath","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 type { ComponentIdObj } from '@teambit/component-id';\nimport { ComponentID } 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 aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n aspectId: id\n data\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 buildStatus\n preview {\n includesEnvTemplate\n legacyHeader\n isScaling\n skipIncludes\n }\n deprecation {\n isDeprecate\n newId\n range\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\nconst COMPONENT_SERVER_STARTED = gql`\n subscription OnComponentServerStarted {\n componentServerStarted {\n env\n url\n host\n basePath\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 const unSubServerStarted = subscribeToMore({\n document: COMPONENT_SERVER_STARTED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const serverInfo = update.componentServerStarted;\n if (!serverInfo || serverInfo.length === 0) return prev;\n\n const updatedComponents = prev.workspace.components.map((component) => {\n if (component.env?.id === serverInfo[0].env) {\n return {\n ...component,\n server: {\n env: serverInfo[0].env,\n url: serverInfo[0].url,\n host: serverInfo[0].host,\n basePath: serverInfo[0].basePath,\n },\n };\n }\n return component;\n });\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: updatedComponents,\n },\n };\n },\n });\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n unSubServerStarted();\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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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","require","_component","_latest","_interopRequireDefault","_uiFoundationUiHooks","_client","_componentId","_workspaceModel","_excluded","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","COMPONENT_SERVER_STARTED","useWorkspace","options","_useDataQuery","useDataQuery","previousData","_previousData","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","onComponentRemoved","fromObject","every","unSubServerStarted","serverInfo","componentServerStarted","updatedComponents","env","server","url","host","basePath","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 type { ComponentIdObj } from '@teambit/component-id';\nimport { ComponentID } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceResult = Omit<ReturnType<typeof useDataQuery>, 'data' | 'previousData'> & {\n workspace: Workspace | undefined;\n};\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 aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n aspectId: id\n data\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 buildStatus\n preview {\n includesEnvTemplate\n legacyHeader\n isScaling\n skipIncludes\n }\n deprecation {\n isDeprecate\n newId\n range\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\nconst COMPONENT_SERVER_STARTED = gql`\n subscription OnComponentServerStarted {\n componentServerStarted {\n env\n url\n host\n basePath\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}): UseWorkspaceResult {\n // `previousData` is destructured out (not spread into `...rest`) so the returned shape matches\n // UseWorkspaceResult, which omits it (along with `data`, replaced by `workspace`).\n const { data, previousData: _previousData, 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 const unSubServerStarted = subscribeToMore({\n document: COMPONENT_SERVER_STARTED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const serverInfo = update.componentServerStarted;\n if (!serverInfo || serverInfo.length === 0) return prev;\n\n const updatedComponents = prev.workspace.components.map((component) => {\n if (component.env?.id === serverInfo[0].env) {\n return {\n ...component,\n server: {\n env: serverInfo[0].env,\n url: serverInfo[0].url,\n host: serverInfo[0].host,\n basePath: serverInfo[0].basePath,\n },\n };\n }\n return component;\n });\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: updatedComponents,\n },\n };\n },\n });\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n unSubServerStarted();\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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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "1.0.1044",
3
+ "version": "1.0.1046",
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.1044"
9
+ "version": "1.0.1046"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -29,45 +29,27 @@
29
29
  "pluralize": "8.0.0",
30
30
  "reset-css": "5.0.1",
31
31
  "@teambit/component-id": "1.2.4",
32
- "@teambit/harmony": "0.4.11",
33
- "@teambit/legacy.extension-data": "0.0.133",
34
- "@teambit/legacy.scope": "0.0.131",
32
+ "@teambit/harmony": "0.4.12",
35
33
  "@teambit/component-version": "1.0.4",
36
- "@teambit/legacy.consumer-component": "0.0.132",
37
- "@teambit/legacy.consumer": "0.0.131",
38
34
  "@teambit/bit-error": "0.0.404",
39
35
  "@teambit/lane-id": "0.0.312",
40
- "@teambit/legacy.bit-map": "0.0.188",
41
36
  "@teambit/toolbox.fs.last-modified": "0.0.15",
42
37
  "@teambit/toolbox.path.path": "0.0.17",
43
38
  "@teambit/graph.cleargraph": "0.0.11",
44
- "@teambit/logger": "0.0.1438",
45
- "@teambit/cli": "0.0.1345",
46
- "@teambit/config-store": "0.0.226",
47
39
  "@teambit/legacy.constants": "0.0.31",
48
40
  "@teambit/component.ui.component-status-resolver": "0.0.510",
49
41
  "@teambit/harmony.modules.load-trace": "0.0.3",
50
42
  "@teambit/harmony.modules.resolved-component": "0.0.515",
51
43
  "@teambit/legacy.utils": "0.0.39",
52
- "@teambit/scope.remotes": "0.0.131",
53
- "@teambit/config": "0.0.1520",
54
44
  "@teambit/harmony.modules.requireable-component": "0.0.515",
55
45
  "@teambit/toolbox.modules.module-resolver": "0.0.20",
56
- "@teambit/workspace.modules.node-modules-linker": "0.0.362",
57
- "@teambit/global-config": "0.0.1349",
58
- "@teambit/legacy.consumer-config": "0.0.131",
59
- "@teambit/variants": "0.0.1613",
60
46
  "@teambit/component-issues": "0.0.174",
61
- "@teambit/component.sources": "0.0.183",
62
47
  "@teambit/dependencies.modules.packages-excluder": "1.0.8",
63
48
  "@teambit/git.modules.git-executable": "0.0.32",
64
49
  "@teambit/harmony.modules.in-memory-cache": "0.0.35",
65
50
  "@teambit/legacy-bit-id": "1.1.3",
66
- "@teambit/legacy.component-list": "0.0.185",
67
- "@teambit/legacy.scope-api": "0.0.186",
68
51
  "@teambit/toolbox.path.is-path-inside": "0.0.509",
69
52
  "@teambit/workspace.modules.match-pattern": "0.0.522",
70
- "@teambit/component.ui.component-drawer": "0.0.487",
71
53
  "@teambit/design.ui.tree": "0.0.16",
72
54
  "@teambit/lanes.hooks.use-lane-components": "0.0.305",
73
55
  "@teambit/lanes.hooks.use-lanes": "0.0.293",
@@ -80,7 +62,6 @@
80
62
  "@teambit/design.ui.surfaces.menu.link-item": "1.0.13",
81
63
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.505",
82
64
  "@teambit/ui-foundation.ui.menu": "0.0.503",
83
- "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.525",
84
65
  "@teambit/ui-foundation.ui.tree.drawer": "1.0.0",
85
66
  "@teambit/harmony.modules.concurrency": "0.0.32",
86
67
  "@teambit/toolbox.promise.map-pool": "0.0.15",
@@ -108,23 +89,42 @@
108
89
  "@teambit/cloud.hooks.use-cloud-scopes": "0.0.22",
109
90
  "@teambit/explorer.ui.gallery.component-grid": "0.0.496",
110
91
  "@teambit/workspace.ui.empty-workspace": "0.0.509",
111
- "@teambit/component": "1.0.1044",
112
- "@teambit/dependency-resolver": "1.0.1044",
113
- "@teambit/envs": "1.0.1044",
114
- "@teambit/objects": "0.0.551",
115
- "@teambit/scope": "1.0.1044",
116
- "@teambit/graph": "1.0.1044",
117
- "@teambit/isolator": "1.0.1044",
118
- "@teambit/component-tree": "1.0.1044",
119
- "@teambit/watcher": "1.0.1044",
120
- "@teambit/aspect-loader": "1.0.1044",
121
- "@teambit/graphql": "1.0.1044",
122
- "@teambit/bundler": "1.0.1044",
123
- "@teambit/ui": "1.0.1044",
124
- "@teambit/command-bar": "1.0.1044",
125
- "@teambit/sidebar": "1.0.1044",
126
- "@teambit/pubsub": "1.0.1044",
127
- "@teambit/deprecation": "1.0.1044"
92
+ "@teambit/component": "1.0.1046",
93
+ "@teambit/dependency-resolver": "1.0.1046",
94
+ "@teambit/envs": "1.0.1046",
95
+ "@teambit/legacy.extension-data": "0.0.134",
96
+ "@teambit/legacy.scope": "0.0.132",
97
+ "@teambit/legacy.consumer-component": "0.0.133",
98
+ "@teambit/legacy.consumer": "0.0.132",
99
+ "@teambit/legacy.bit-map": "0.0.189",
100
+ "@teambit/logger": "0.0.1439",
101
+ "@teambit/objects": "0.0.553",
102
+ "@teambit/scope": "1.0.1046",
103
+ "@teambit/graph": "1.0.1046",
104
+ "@teambit/cli": "0.0.1346",
105
+ "@teambit/config-store": "0.0.227",
106
+ "@teambit/isolator": "1.0.1046",
107
+ "@teambit/component-tree": "1.0.1046",
108
+ "@teambit/watcher": "1.0.1046",
109
+ "@teambit/scope.remotes": "0.0.132",
110
+ "@teambit/aspect-loader": "1.0.1046",
111
+ "@teambit/config": "0.0.1521",
112
+ "@teambit/workspace.modules.node-modules-linker": "0.0.363",
113
+ "@teambit/graphql": "1.0.1046",
114
+ "@teambit/bundler": "1.0.1046",
115
+ "@teambit/global-config": "0.0.1350",
116
+ "@teambit/legacy.consumer-config": "0.0.132",
117
+ "@teambit/ui": "1.0.1046",
118
+ "@teambit/variants": "0.0.1614",
119
+ "@teambit/component.sources": "0.0.184",
120
+ "@teambit/legacy.component-list": "0.0.186",
121
+ "@teambit/legacy.scope-api": "0.0.187",
122
+ "@teambit/component.ui.component-drawer": "0.0.488",
123
+ "@teambit/command-bar": "1.0.1046",
124
+ "@teambit/sidebar": "1.0.1046",
125
+ "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.526",
126
+ "@teambit/pubsub": "1.0.1046",
127
+ "@teambit/deprecation": "1.0.1046"
128
128
  },
129
129
  "devDependencies": {
130
130
  "@types/lodash": "4.14.165",
@@ -8,6 +8,10 @@ import { ComponentID } from '@teambit/component-id';
8
8
 
9
9
  import { Workspace } from './workspace-model';
10
10
 
11
+ type UseWorkspaceResult = Omit<ReturnType<typeof useDataQuery>, 'data' | 'previousData'> & {
12
+ workspace: Workspace | undefined;
13
+ };
14
+
11
15
  type UseWorkspaceOptions = {
12
16
  onComponentAdded?: (component: ComponentModel[]) => void;
13
17
  onComponentUpdated?: (component: ComponentModel[]) => void;
@@ -127,8 +131,10 @@ const COMPONENT_SERVER_STARTED = gql`
127
131
  }
128
132
  `;
129
133
 
130
- export function useWorkspace(options: UseWorkspaceOptions = {}) {
131
- const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);
134
+ export function useWorkspace(options: UseWorkspaceOptions = {}): UseWorkspaceResult {
135
+ // `previousData` is destructured out (not spread into `...rest`) so the returned shape matches
136
+ // UseWorkspaceResult, which omits it (along with `data`, replaced by `workspace`).
137
+ const { data, previousData: _previousData, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);
132
138
  const optionsRef = useLatest(options);
133
139
 
134
140
  useEffect(() => {