@tanstack/vue-query 5.0.0-alpha.79 → 5.0.0-alpha.81

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.
@@ -117,7 +117,8 @@ function setupDevtools(app, queryClient) {
117
117
  queryCache.subscribe(event => {
118
118
  api.sendInspectorTree(pluginId);
119
119
  api.sendInspectorState(pluginId);
120
- if (['added', 'removed', 'updated'].includes(event.type)) {
120
+ const queryEvents = ['added', 'removed', 'updated'];
121
+ if (queryEvents.includes(event.type)) {
121
122
  api.addTimelineEvent({
122
123
  layerId: pluginId,
123
124
  event: {
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.cjs","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (['added', 'removed', 'updated'].includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
1
+ {"version":3,"file":"devtools.cjs","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n const queryEvents: QueryCacheNotifyEvent['type'][] = [\n 'added',\n 'removed',\n 'updated',\n ]\n\n if (queryEvents.includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","queryEvents","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../../src/devtools/devtools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAWjD,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,QAwO/D"}
1
+ {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../../src/devtools/devtools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAWjD,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,QA8O/D"}
@@ -115,7 +115,8 @@ function setupDevtools(app, queryClient) {
115
115
  queryCache.subscribe(event => {
116
116
  api.sendInspectorTree(pluginId);
117
117
  api.sendInspectorState(pluginId);
118
- if (['added', 'removed', 'updated'].includes(event.type)) {
118
+ const queryEvents = ['added', 'removed', 'updated'];
119
+ if (queryEvents.includes(event.type)) {
119
120
  api.addTimelineEvent({
120
121
  layerId: pluginId,
121
122
  event: {
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (['added', 'removed', 'updated'].includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n const queryEvents: QueryCacheNotifyEvent['type'][] = [\n 'added',\n 'removed',\n 'updated',\n ]\n\n if (queryEvents.includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","queryEvents","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":";;;;;AAaA,MAAMA,QAAQ,GAAG,WAAW,CAAA;AAC5B,MAAMC,UAAU,GAAG,WAAW,CAAA;AAEvB,SAASC,aAAaA,CAACC,GAAQ,EAAEC,WAAwB,EAAE;AAChEC,EAAAA,mBAAmB,CACjB;AACEC,IAAAA,EAAE,EAAEN,QAAQ;AACZO,IAAAA,KAAK,EAAEN,UAAU;AACjBO,IAAAA,WAAW,EAAE,WAAW;AACxBC,IAAAA,QAAQ,EAAE,mCAAmC;AAC7CC,IAAAA,IAAI,EAAE,8FAA8F;IACpGP,GAAG;AACHQ,IAAAA,QAAQ,EAAE;AACRC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,SAAS,EAAE,cAAc;AACzBP,QAAAA,KAAK,EAAE,oBAAoB;AAC3BQ,QAAAA,OAAO,EAAE,CACP;AACER,UAAAA,KAAK,EAAE,KAAK;AACZS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,EACD;AACET,UAAAA,KAAK,EAAE,MAAM;AACbS,UAAAA,KAAK,EAAE,CAAC,CAAA;AACV,SAAC,CACF;AACDC,QAAAA,YAAY,EAAE,CAAA;OACf;AACDC,MAAAA,MAAM,EAAE;AACNL,QAAAA,IAAI,EAAE,QAAQ;AACdN,QAAAA,KAAK,EAAE,eAAe;QACtBQ,OAAO,EAAEI,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,CAACC,GAAG,CAAEC,GAAG,KAAM;AAC1ChB,UAAAA,KAAK,EAAEgB,GAAG;AACVP,UAAAA,KAAK,EAAEO,GAAAA;AACT,SAAC,CAAC,CAAC;QACHN,YAAY,EAAEE,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC,CAAA;OACrC;AACDG,MAAAA,UAAU,EAAE;AACVX,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,SAAS,EAAE,cAAc;AACzBP,QAAAA,KAAK,EAAE,aAAa;AACpBQ,QAAAA,OAAO,EAAE,CACP;AACER,UAAAA,KAAK,EAAE,QAAQ;AACfS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,EACD;AACET,UAAAA,KAAK,EAAE,SAAS;AAChBS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,CACF;AACDC,QAAAA,YAAY,EAAE,CAAA;AAChB,OAAA;AACF,KAAA;GACD,EACAQ,GAAG,IAAK;AACP,IAAA,MAAMC,eAAe,GAAGD,GAAG,CAACE,WAAW,EAAE,CAAA;AACzCC,IAAAA,aAAa,CAACC,SAAS,CAACC,OAAO,CAACJ,eAAe,CAACF,UAAU,CAACO,OAAO,EAAE,CAAC,CAAC,CAAA;AAEtE,IAAA,MAAMC,UAAU,GAAG5B,WAAW,CAAC6B,aAAa,EAAE,CAAA;IAE9CR,GAAG,CAACS,YAAY,CAAC;AACf5B,MAAAA,EAAE,EAAEN,QAAQ;AACZO,MAAAA,KAAK,EAAEN,UAAU;AACjBkC,MAAAA,IAAI,EAAE,KAAK;AACXC,MAAAA,WAAW,EAAE,CACX;AACED,QAAAA,IAAI,EAAE,eAAe;AACrBE,QAAAA,OAAO,EAAE,SAAS;QAClBC,MAAM,EAAGC,SAAiB,IAAK;UAC7BP,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAC,EAAEE,KAAK,EAAE,CAAA;AACpC,SAAA;AACF,OAAC,EACD;AACEN,QAAAA,IAAI,EAAE,OAAO;AACbE,QAAAA,OAAO,EAAE,YAAY;QACrBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMG,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAU,CAAA;AAChDnC,UAAAA,WAAW,CAACuC,iBAAiB,CAACD,KAAK,CAAC,CAAA;AACtC,SAAA;AACF,OAAC,EACD;AACEP,QAAAA,IAAI,EAAE,yBAAyB;AAC/BE,QAAAA,OAAO,EAAE,OAAO;QAChBC,MAAM,EAAGC,SAAiB,IAAK;UAC7BP,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAC,EAAEK,KAAK,EAAE,CAAA;AACpC,SAAA;AACF,OAAC,EACD;AACET,QAAAA,IAAI,EAAE,QAAQ;AACdE,QAAAA,OAAO,EAAE,QAAQ;QACjBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMG,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAU,CAAA;AAChDP,UAAAA,UAAU,CAACa,MAAM,CAACH,KAAK,CAAC,CAAA;AAC1B,SAAA;AACF,OAAC,EACD;AACEP,QAAAA,IAAI,EAAE,iBAAiB;AACvBE,QAAAA,OAAO,EAAE,eAAe;QACxBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMG,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAU,CAAA;UAEhDG,KAAK,CAACI,QAAQ,CAAC;AACbC,YAAAA,IAAI,EAAEC,SAAS;AACfC,YAAAA,MAAM,EAAE,SAAA;AACV,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAC,EACD;AACEd,QAAAA,IAAI,EAAE,eAAe;AACrBE,QAAAA,OAAO,EAAE,aAAa;QACtBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMG,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAU,CAAA;UAEhDG,KAAK,CAACI,QAAQ,CAAC;AACbC,YAAAA,IAAI,EAAEC,SAAS;AACfC,YAAAA,MAAM,EAAE,OAAO;AACfC,YAAAA,KAAK,EAAE,IAAIC,KAAK,CAAC,6BAA6B,CAAA;AAChD,WAAC,CAAC,CAAA;AACJ,SAAA;OACD,CAAA;AAEL,KAAC,CAAC,CAAA;IAEF1B,GAAG,CAAC2B,gBAAgB,CAAC;AACnB9C,MAAAA,EAAE,EAAEN,QAAQ;AACZO,MAAAA,KAAK,EAAEN,UAAU;AACjBoD,MAAAA,KAAK,EAAE,QAAA;AACT,KAAC,CAAC,CAAA;AAEFrB,IAAAA,UAAU,CAACsB,SAAS,CAAEC,KAAK,IAAK;AAC9B9B,MAAAA,GAAG,CAAC+B,iBAAiB,CAACxD,QAAQ,CAAC,CAAA;AAC/ByB,MAAAA,GAAG,CAACgC,kBAAkB,CAACzD,QAAQ,CAAC,CAAA;MAEhC,MAAM0D,WAA4C,GAAG,CACnD,OAAO,EACP,SAAS,EACT,SAAS,CACV,CAAA;MAED,IAAIA,WAAW,CAACC,QAAQ,CAACJ,KAAK,CAAC1C,IAAI,CAAC,EAAE;QACpCY,GAAG,CAACmC,gBAAgB,CAAC;AACnBC,UAAAA,OAAO,EAAE7D,QAAQ;AACjBuD,UAAAA,KAAK,EAAE;YACLO,KAAK,EAAEP,KAAK,CAAC1C,IAAI;AACjBkD,YAAAA,QAAQ,EAAER,KAAK,CAACb,KAAK,CAACH,SAAS;AAC/ByB,YAAAA,IAAI,EAAEvC,GAAG,CAACwC,GAAG,EAAE;AACflB,YAAAA,IAAI,EAAE;AACJR,cAAAA,SAAS,EAAEgB,KAAK,CAACb,KAAK,CAACH,SAAS;cAChC,GAAGgB,KAAAA;AACL,aAAA;AACF,WAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;AAEF9B,IAAAA,GAAG,CAACyC,EAAE,CAACC,iBAAiB,CAAEC,OAAO,IAAK;AACpC,MAAA,IAAIA,OAAO,CAAC7C,GAAG,KAAK,YAAY,EAAE;QAChCK,aAAa,CAACC,SAAS,CAACC,OAAO,CAACsC,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAA;AACpD,OAAA;AACF,KAAC,CAAC,CAAA;AAEF5C,IAAAA,GAAG,CAACyC,EAAE,CAACI,gBAAgB,CAAEF,OAAO,IAAK;AACnC,MAAA,IAAIA,OAAO,CAACG,WAAW,KAAKvE,QAAQ,EAAE;AACpC,QAAA,MAAMwE,OAAO,GAAGxC,UAAU,CAACyC,MAAM,EAAE,CAAA;AACnC,QAAA,MAAM9D,QAAQ,GAAGc,GAAG,CAACE,WAAW,EAAE,CAAA;AAElC,QAAA,MAAM+C,QAAQ,GAAGN,OAAO,CAACO,MAAM,GAC3BH,OAAO,CAACG,MAAM,CACXC,IAAI,IAAKC,QAAQ,CAACD,IAAI,CAACrC,SAAS,EAAE6B,OAAO,CAACO,MAAM,CAAC,CAACG,MACrD,CAAC,GACD,CAAC,GAAGN,OAAO,CAAC,CAAA;QAEhB,MAAMO,MAAM,GAAGL,QAAQ,CAACM,IAAI,CAC1B,CAACC,CAAC,EAAEC,CAAC,KAAK7D,OAAO,CAACV,QAAQ,CAACO,MAAM,CAAC,CAAE+D,CAAC,EAAEC,CAAC,CAAC,GAAGvE,QAAQ,CAACC,QACvD,CAAC,CAAA;AAED,QAAA,MAAMuE,KAA4B,GAAGJ,MAAM,CAACzD,GAAG,CAAEoB,KAAK,IAAK;AACzD,UAAA,MAAM0C,UAAU,GAAGC,kBAAkB,CAAC3C,KAAK,CAAC,CAAA;UAE5C,OAAO;YACLpC,EAAE,EAAEoC,KAAK,CAACH,SAAS;YACnBhC,KAAK,EAAEmC,KAAK,CAACH,SAAS;AACtB+C,YAAAA,IAAI,EAAE,CACJ;cACE/E,KAAK,EAAG,GAAE6E,UAAW,CAAA,EAAA,EAAI1C,KAAK,CAAC6C,iBAAiB,EAAG,CAAE,CAAA,CAAA;AACrDC,cAAAA,SAAS,EAAEC,gBAAgB,CAAC/C,KAAK,CAAC;cAClCgD,eAAe,EAAEC,gBAAgB,CAACjD,KAAK,CAAA;aACxC,CAAA;WAEJ,CAAA;AACH,SAAC,CAAC,CAAA;QACF0B,OAAO,CAACwB,SAAS,GAAGT,KAAK,CAAA;AAC3B,OAAA;AACF,KAAC,CAAC,CAAA;AAEF1D,IAAAA,GAAG,CAACyC,EAAE,CAAC2B,iBAAiB,CAAEzB,OAAO,IAAK;AACpC,MAAA,IAAIA,OAAO,CAACG,WAAW,KAAKvE,QAAQ,EAAE;QACpC,MAAM0C,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAAC4B,OAAO,CAAC0B,MAAM,CAAC,CAAA;QAE5C,IAAI,CAACpD,KAAK,EAAE;AACV,UAAA,OAAA;AACF,SAAA;QAEA0B,OAAO,CAAC2B,KAAK,GAAG;AACd,UAAA,gBAAgB,EAAE,CAChB;AACExE,YAAAA,GAAG,EAAE,WAAW;YAChBP,KAAK,EAAE0B,KAAK,CAACH,SAAAA;AACf,WAAC,EACD;AACEhB,YAAAA,GAAG,EAAE,cAAc;YACnBP,KAAK,EAAEqE,kBAAkB,CAAC3C,KAAK,CAAA;AACjC,WAAC,EACD;AACEnB,YAAAA,GAAG,EAAE,WAAW;AAChBP,YAAAA,KAAK,EAAE0B,KAAK,CAAC6C,iBAAiB,EAAC;AACjC,WAAC,EACD;AACEhE,YAAAA,GAAG,EAAE,cAAc;AACnBP,YAAAA,KAAK,EAAE,IAAIgF,IAAI,CAACtD,KAAK,CAACqD,KAAK,CAACE,aAAa,CAAC,CAACC,kBAAkB,EAAC;AAChE,WAAC,CACF;AACD,UAAA,eAAe,EAAE,CACf;AACE3E,YAAAA,GAAG,EAAE,MAAM;AACXP,YAAAA,KAAK,EAAE0B,KAAK,CAACqD,KAAK,CAAChD,IAAAA;AACrB,WAAC,CACF;AACD,UAAA,gBAAgB,EAAE,CAChB;AACExB,YAAAA,GAAG,EAAE,OAAO;AACZP,YAAAA,KAAK,EAAE0B,KAAAA;WACR,CAAA;SAEJ,CAAA;AACH,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GACF,CAAC,CAAA;AACH;;;;"}
@@ -119,7 +119,8 @@ function setupDevtools(app, queryClient) {
119
119
  queryCache.subscribe(event => {
120
120
  api.sendInspectorTree(pluginId);
121
121
  api.sendInspectorState(pluginId);
122
- if (['added', 'removed', 'updated'].includes(event.type)) {
122
+ const queryEvents = ['added', 'removed', 'updated'];
123
+ if (queryEvents.includes(event.type)) {
123
124
  api.addTimelineEvent({
124
125
  layerId: pluginId,
125
126
  event: {
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.legacy.cjs","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (['added', 'removed', 'updated'].includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","_queryCache$get","get","fetch","query","invalidateQueries","_queryCache$get2","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
1
+ {"version":3,"file":"devtools.legacy.cjs","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n const queryEvents: QueryCacheNotifyEvent['type'][] = [\n 'added',\n 'removed',\n 'updated',\n ]\n\n if (queryEvents.includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","_queryCache$get","get","fetch","query","invalidateQueries","_queryCache$get2","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","queryEvents","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
@@ -117,7 +117,8 @@ function setupDevtools(app, queryClient) {
117
117
  queryCache.subscribe(event => {
118
118
  api.sendInspectorTree(pluginId);
119
119
  api.sendInspectorState(pluginId);
120
- if (['added', 'removed', 'updated'].includes(event.type)) {
120
+ const queryEvents = ['added', 'removed', 'updated'];
121
+ if (queryEvents.includes(event.type)) {
121
122
  api.addTimelineEvent({
122
123
  layerId: pluginId,
123
124
  event: {
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.legacy.js","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (['added', 'removed', 'updated'].includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","_queryCache$get","get","fetch","query","invalidateQueries","_queryCache$get2","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":";;;;;AAaA,MAAMA,QAAQ,GAAG,WAAW,CAAA;AAC5B,MAAMC,UAAU,GAAG,WAAW,CAAA;AAEvB,SAASC,aAAaA,CAACC,GAAQ,EAAEC,WAAwB,EAAE;AAChEC,EAAAA,mBAAmB,CACjB;AACEC,IAAAA,EAAE,EAAEN,QAAQ;AACZO,IAAAA,KAAK,EAAEN,UAAU;AACjBO,IAAAA,WAAW,EAAE,WAAW;AACxBC,IAAAA,QAAQ,EAAE,mCAAmC;AAC7CC,IAAAA,IAAI,EAAE,8FAA8F;IACpGP,GAAG;AACHQ,IAAAA,QAAQ,EAAE;AACRC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,SAAS,EAAE,cAAc;AACzBP,QAAAA,KAAK,EAAE,oBAAoB;AAC3BQ,QAAAA,OAAO,EAAE,CACP;AACER,UAAAA,KAAK,EAAE,KAAK;AACZS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,EACD;AACET,UAAAA,KAAK,EAAE,MAAM;AACbS,UAAAA,KAAK,EAAE,CAAC,CAAA;AACV,SAAC,CACF;AACDC,QAAAA,YAAY,EAAE,CAAA;OACf;AACDC,MAAAA,MAAM,EAAE;AACNL,QAAAA,IAAI,EAAE,QAAQ;AACdN,QAAAA,KAAK,EAAE,eAAe;QACtBQ,OAAO,EAAEI,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,CAACC,GAAG,CAAEC,GAAG,KAAM;AAC1ChB,UAAAA,KAAK,EAAEgB,GAAG;AACVP,UAAAA,KAAK,EAAEO,GAAAA;AACT,SAAC,CAAC,CAAC;QACHN,YAAY,EAAEE,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC,CAAA;OACrC;AACDG,MAAAA,UAAU,EAAE;AACVX,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,SAAS,EAAE,cAAc;AACzBP,QAAAA,KAAK,EAAE,aAAa;AACpBQ,QAAAA,OAAO,EAAE,CACP;AACER,UAAAA,KAAK,EAAE,QAAQ;AACfS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,EACD;AACET,UAAAA,KAAK,EAAE,SAAS;AAChBS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,CACF;AACDC,QAAAA,YAAY,EAAE,CAAA;AAChB,OAAA;AACF,KAAA;GACD,EACAQ,GAAG,IAAK;AACP,IAAA,MAAMC,eAAe,GAAGD,GAAG,CAACE,WAAW,EAAE,CAAA;AACzCC,IAAAA,aAAa,CAACC,SAAS,CAACC,OAAO,CAACJ,eAAe,CAACF,UAAU,CAACO,OAAO,EAAE,CAAC,CAAC,CAAA;AAEtE,IAAA,MAAMC,UAAU,GAAG5B,WAAW,CAAC6B,aAAa,EAAE,CAAA;IAE9CR,GAAG,CAACS,YAAY,CAAC;AACf5B,MAAAA,EAAE,EAAEN,QAAQ;AACZO,MAAAA,KAAK,EAAEN,UAAU;AACjBkC,MAAAA,IAAI,EAAE,KAAK;AACXC,MAAAA,WAAW,EAAE,CACX;AACED,QAAAA,IAAI,EAAE,eAAe;AACrBE,QAAAA,OAAO,EAAE,SAAS;QAClBC,MAAM,EAAGC,SAAiB,IAAK;AAAA,UAAA,IAAAC,eAAA,CAAA;AAC7B,UAAA,CAAAA,eAAA,GAAAR,UAAU,CAACS,GAAG,CAACF,SAAS,CAAC,KAAzBC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAA2BE,KAAK,EAAE,CAAA;AACpC,SAAA;AACF,OAAC,EACD;AACEP,QAAAA,IAAI,EAAE,OAAO;AACbE,QAAAA,OAAO,EAAE,YAAY;QACrBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMI,KAAK,GAAGX,UAAU,CAACS,GAAG,CAACF,SAAS,CAAU,CAAA;AAChDnC,UAAAA,WAAW,CAACwC,iBAAiB,CAACD,KAAK,CAAC,CAAA;AACtC,SAAA;AACF,OAAC,EACD;AACER,QAAAA,IAAI,EAAE,yBAAyB;AAC/BE,QAAAA,OAAO,EAAE,OAAO;QAChBC,MAAM,EAAGC,SAAiB,IAAK;AAAA,UAAA,IAAAM,gBAAA,CAAA;AAC7B,UAAA,CAAAA,gBAAA,GAAAb,UAAU,CAACS,GAAG,CAACF,SAAS,CAAC,KAAzBM,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAA2BC,KAAK,EAAE,CAAA;AACpC,SAAA;AACF,OAAC,EACD;AACEX,QAAAA,IAAI,EAAE,QAAQ;AACdE,QAAAA,OAAO,EAAE,QAAQ;QACjBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMI,KAAK,GAAGX,UAAU,CAACS,GAAG,CAACF,SAAS,CAAU,CAAA;AAChDP,UAAAA,UAAU,CAACe,MAAM,CAACJ,KAAK,CAAC,CAAA;AAC1B,SAAA;AACF,OAAC,EACD;AACER,QAAAA,IAAI,EAAE,iBAAiB;AACvBE,QAAAA,OAAO,EAAE,eAAe;QACxBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMI,KAAK,GAAGX,UAAU,CAACS,GAAG,CAACF,SAAS,CAAU,CAAA;UAEhDI,KAAK,CAACK,QAAQ,CAAC;AACbC,YAAAA,IAAI,EAAEC,SAAS;AACfC,YAAAA,MAAM,EAAE,SAAA;AACV,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAC,EACD;AACEhB,QAAAA,IAAI,EAAE,eAAe;AACrBE,QAAAA,OAAO,EAAE,aAAa;QACtBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMI,KAAK,GAAGX,UAAU,CAACS,GAAG,CAACF,SAAS,CAAU,CAAA;UAEhDI,KAAK,CAACK,QAAQ,CAAC;AACbC,YAAAA,IAAI,EAAEC,SAAS;AACfC,YAAAA,MAAM,EAAE,OAAO;AACfC,YAAAA,KAAK,EAAE,IAAIC,KAAK,CAAC,6BAA6B,CAAA;AAChD,WAAC,CAAC,CAAA;AACJ,SAAA;OACD,CAAA;AAEL,KAAC,CAAC,CAAA;IAEF5B,GAAG,CAAC6B,gBAAgB,CAAC;AACnBhD,MAAAA,EAAE,EAAEN,QAAQ;AACZO,MAAAA,KAAK,EAAEN,UAAU;AACjBsD,MAAAA,KAAK,EAAE,QAAA;AACT,KAAC,CAAC,CAAA;AAEFvB,IAAAA,UAAU,CAACwB,SAAS,CAAEC,KAAK,IAAK;AAC9BhC,MAAAA,GAAG,CAACiC,iBAAiB,CAAC1D,QAAQ,CAAC,CAAA;AAC/ByB,MAAAA,GAAG,CAACkC,kBAAkB,CAAC3D,QAAQ,CAAC,CAAA;AAEhC,MAAA,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC4D,QAAQ,CAACH,KAAK,CAAC5C,IAAI,CAAC,EAAE;QACxDY,GAAG,CAACoC,gBAAgB,CAAC;AACnBC,UAAAA,OAAO,EAAE9D,QAAQ;AACjByD,UAAAA,KAAK,EAAE;YACLM,KAAK,EAAEN,KAAK,CAAC5C,IAAI;AACjBmD,YAAAA,QAAQ,EAAEP,KAAK,CAACd,KAAK,CAACJ,SAAS;AAC/B0B,YAAAA,IAAI,EAAExC,GAAG,CAACyC,GAAG,EAAE;AACfjB,YAAAA,IAAI,EAAE;AACJV,cAAAA,SAAS,EAAEkB,KAAK,CAACd,KAAK,CAACJ,SAAS;cAChC,GAAGkB,KAAAA;AACL,aAAA;AACF,WAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;AAEFhC,IAAAA,GAAG,CAAC0C,EAAE,CAACC,iBAAiB,CAAEC,OAAO,IAAK;AACpC,MAAA,IAAIA,OAAO,CAAC9C,GAAG,KAAK,YAAY,EAAE;QAChCK,aAAa,CAACC,SAAS,CAACC,OAAO,CAACuC,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAA;AACpD,OAAA;AACF,KAAC,CAAC,CAAA;AAEF7C,IAAAA,GAAG,CAAC0C,EAAE,CAACI,gBAAgB,CAAEF,OAAO,IAAK;AACnC,MAAA,IAAIA,OAAO,CAACG,WAAW,KAAKxE,QAAQ,EAAE;AACpC,QAAA,MAAMyE,OAAO,GAAGzC,UAAU,CAAC0C,MAAM,EAAE,CAAA;AACnC,QAAA,MAAM/D,QAAQ,GAAGc,GAAG,CAACE,WAAW,EAAE,CAAA;AAElC,QAAA,MAAMgD,QAAQ,GAAGN,OAAO,CAACO,MAAM,GAC3BH,OAAO,CAACG,MAAM,CACXC,IAAI,IAAKC,QAAQ,CAACD,IAAI,CAACtC,SAAS,EAAE8B,OAAO,CAACO,MAAM,CAAC,CAACG,MACrD,CAAC,GACD,CAAC,GAAGN,OAAO,CAAC,CAAA;QAEhB,MAAMO,MAAM,GAAGL,QAAQ,CAACM,IAAI,CAC1B,CAACC,CAAC,EAAEC,CAAC,KAAK9D,OAAO,CAACV,QAAQ,CAACO,MAAM,CAAC,CAAEgE,CAAC,EAAEC,CAAC,CAAC,GAAGxE,QAAQ,CAACC,QACvD,CAAC,CAAA;AAED,QAAA,MAAMwE,KAA4B,GAAGJ,MAAM,CAAC1D,GAAG,CAAEqB,KAAK,IAAK;AACzD,UAAA,MAAM0C,UAAU,GAAGC,kBAAkB,CAAC3C,KAAK,CAAC,CAAA;UAE5C,OAAO;YACLrC,EAAE,EAAEqC,KAAK,CAACJ,SAAS;YACnBhC,KAAK,EAAEoC,KAAK,CAACJ,SAAS;AACtBgD,YAAAA,IAAI,EAAE,CACJ;cACEhF,KAAK,EAAG,GAAE8E,UAAW,CAAA,EAAA,EAAI1C,KAAK,CAAC6C,iBAAiB,EAAG,CAAE,CAAA,CAAA;AACrDC,cAAAA,SAAS,EAAEC,gBAAgB,CAAC/C,KAAK,CAAC;cAClCgD,eAAe,EAAEC,gBAAgB,CAACjD,KAAK,CAAA;aACxC,CAAA;WAEJ,CAAA;AACH,SAAC,CAAC,CAAA;QACF0B,OAAO,CAACwB,SAAS,GAAGT,KAAK,CAAA;AAC3B,OAAA;AACF,KAAC,CAAC,CAAA;AAEF3D,IAAAA,GAAG,CAAC0C,EAAE,CAAC2B,iBAAiB,CAAEzB,OAAO,IAAK;AACpC,MAAA,IAAIA,OAAO,CAACG,WAAW,KAAKxE,QAAQ,EAAE;QACpC,MAAM2C,KAAK,GAAGX,UAAU,CAACS,GAAG,CAAC4B,OAAO,CAAC0B,MAAM,CAAC,CAAA;QAE5C,IAAI,CAACpD,KAAK,EAAE;AACV,UAAA,OAAA;AACF,SAAA;QAEA0B,OAAO,CAAC2B,KAAK,GAAG;AACd,UAAA,gBAAgB,EAAE,CAChB;AACEzE,YAAAA,GAAG,EAAE,WAAW;YAChBP,KAAK,EAAE2B,KAAK,CAACJ,SAAAA;AACf,WAAC,EACD;AACEhB,YAAAA,GAAG,EAAE,cAAc;YACnBP,KAAK,EAAEsE,kBAAkB,CAAC3C,KAAK,CAAA;AACjC,WAAC,EACD;AACEpB,YAAAA,GAAG,EAAE,WAAW;AAChBP,YAAAA,KAAK,EAAE2B,KAAK,CAAC6C,iBAAiB,EAAC;AACjC,WAAC,EACD;AACEjE,YAAAA,GAAG,EAAE,cAAc;AACnBP,YAAAA,KAAK,EAAE,IAAIiF,IAAI,CAACtD,KAAK,CAACqD,KAAK,CAACE,aAAa,CAAC,CAACC,kBAAkB,EAAC;AAChE,WAAC,CACF;AACD,UAAA,eAAe,EAAE,CACf;AACE5E,YAAAA,GAAG,EAAE,MAAM;AACXP,YAAAA,KAAK,EAAE2B,KAAK,CAACqD,KAAK,CAAC/C,IAAAA;AACrB,WAAC,CACF;AACD,UAAA,gBAAgB,EAAE,CAChB;AACE1B,YAAAA,GAAG,EAAE,OAAO;AACZP,YAAAA,KAAK,EAAE2B,KAAAA;WACR,CAAA;SAEJ,CAAA;AACH,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GACF,CAAC,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"devtools.legacy.js","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { onlineManager } from '@tanstack/query-core'\nimport type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/latest',\n logo: 'https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n onlineMode: {\n type: 'choice',\n component: 'button-group',\n label: 'Online mode',\n options: [\n {\n label: 'Online',\n value: 1,\n },\n {\n label: 'Offline',\n value: 0,\n },\n ],\n defaultValue: 1,\n },\n },\n },\n (api) => {\n const initialSettings = api.getSettings()\n onlineManager.setOnline(Boolean(initialSettings.onlineMode.valueOf()))\n\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'file_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n {\n icon: 'hourglass_empty',\n tooltip: 'Force loading',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'pending',\n })\n },\n },\n {\n icon: 'error_outline',\n tooltip: 'Force error',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n\n query.setState({\n data: undefined,\n status: 'error',\n error: new Error('Unknown error from devtools'),\n })\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n const queryEvents: QueryCacheNotifyEvent['type'][] = [\n 'added',\n 'removed',\n 'updated',\n ]\n\n if (queryEvents.includes(event.type)) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.setPluginSettings((payload) => {\n if (payload.key === 'onlineMode') {\n onlineManager.setOnline(Boolean(payload.newValue))\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","onlineMode","api","initialSettings","getSettings","onlineManager","setOnline","Boolean","valueOf","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","_queryCache$get","get","fetch","query","invalidateQueries","_queryCache$get2","reset","remove","setState","data","undefined","status","error","Error","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","queryEvents","includes","addTimelineEvent","layerId","title","subtitle","time","now","on","setPluginSettings","payload","newValue","getInspectorTree","inspectorId","queries","getAll","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
@@ -48,7 +48,8 @@ function useQueries({
48
48
  });
49
49
  vueDemi.watch([defaultedQueries], () => {
50
50
  observer.setQueries(defaultedQueries.value, options);
51
- state.value = observer.getCurrentResult();
51
+ const [, getCombinedResultPersisted] = observer.getOptimisticResult(defaultedQueries.value);
52
+ state.value = getCombinedResultPersisted();
52
53
  }, {
53
54
  deep: true
54
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,gBAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;IACD,MAAM,GAAGwB,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,IAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,GAAC,EACD;AAAEG,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOS,gBAAQ,CAACX,KAAK,CAAC,CAAA;AACxB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.d.ts","sourceRoot":"","sources":["../../src/useQueries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQueries.d.ts","sourceRoot":"","sources":["../../src/useQueries.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,8 @@ function useQueries({
46
46
  });
47
47
  watch([defaultedQueries], () => {
48
48
  observer.setQueries(defaultedQueries.value, options);
49
- state.value = observer.getCurrentResult();
49
+ const [, getCombinedResultPersisted] = observer.getOptimisticResult(defaultedQueries.value);
50
+ state.value = getCombinedResultPersisted();
50
51
  }, {
51
52
  deep: true
52
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,QAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;IACD,MAAM,GAAGwB,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,IAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,GAAC,EACD;AAAEG,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOS,QAAQ,CAACX,KAAK,CAAC,CAAA;AACxB;;;;"}
@@ -48,7 +48,8 @@ function useQueries({
48
48
  });
49
49
  vueDemi.watch([defaultedQueries], () => {
50
50
  observer.setQueries(defaultedQueries.value, options);
51
- state.value = observer.getCurrentResult();
51
+ const [, getCombinedResultPersisted] = observer.getOptimisticResult(defaultedQueries.value);
52
+ state.value = getCombinedResultPersisted();
52
53
  }, {
53
54
  deep: true
54
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.legacy.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,gBAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.legacy.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;IACD,MAAM,GAAGwB,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,IAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,GAAC,EACD;AAAEG,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOS,gBAAQ,CAACX,KAAK,CAAC,CAAA;AACxB;;;;"}
@@ -46,7 +46,8 @@ function useQueries({
46
46
  });
47
47
  watch([defaultedQueries], () => {
48
48
  observer.setQueries(defaultedQueries.value, options);
49
- state.value = observer.getCurrentResult();
49
+ const [, getCombinedResultPersisted] = observer.getOptimisticResult(defaultedQueries.value);
50
+ state.value = getCombinedResultPersisted();
50
51
  }, {
51
52
  deep: true
52
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.legacy.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,QAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.legacy.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptionsForUseQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;IACD,MAAM,GAAGwB,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,IAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,GAAC,EACD;AAAEG,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOS,QAAQ,CAACX,KAAK,CAAC,CAAA;AACxB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/vue-query",
3
- "version": "5.0.0-alpha.79",
3
+ "version": "5.0.0-alpha.81",
4
4
  "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
5
5
  "author": "Damian Osipiuk",
6
6
  "license": "MIT",
@@ -45,7 +45,7 @@
45
45
  "@tanstack/match-sorter-utils": "^8.8.4",
46
46
  "@vue/devtools-api": "^6.5.0",
47
47
  "vue-demi": "^0.13.11",
48
- "@tanstack/query-core": "5.0.0-alpha.70"
48
+ "@tanstack/query-core": "5.0.0-alpha.81"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@vue/composition-api": "1.7.1",
@@ -313,8 +313,11 @@ describe('VueQueryPlugin', () => {
313
313
  vi.fn(),
314
314
  new Promise((resolve) => {
315
315
  setTimeout(() => {
316
- client.setQueryData(['persist'], () => ({
317
- foo: 'bar',
316
+ client.setQueryData(['persist1'], () => ({
317
+ foo1: 'bar1',
318
+ }))
319
+ client.setQueryData(['persist2'], () => ({
320
+ foo2: 'bar2',
318
321
  }))
319
322
  resolve()
320
323
  }, 0)
@@ -324,11 +327,19 @@ describe('VueQueryPlugin', () => {
324
327
 
325
328
  const fnSpy = vi.fn()
326
329
 
330
+ const query = useQuery(
331
+ {
332
+ queryKey: ['persist1'],
333
+ queryFn: fnSpy,
334
+ },
335
+ customClient,
336
+ )
337
+
327
338
  const queries = useQueries(
328
339
  {
329
340
  queries: [
330
341
  {
331
- queryKey: ['persist'],
342
+ queryKey: ['persist2'],
332
343
  queryFn: fnSpy,
333
344
  },
334
345
  ],
@@ -337,6 +348,10 @@ describe('VueQueryPlugin', () => {
337
348
  )
338
349
 
339
350
  expect(customClient.isRestoring.value).toBeTruthy()
351
+
352
+ expect(query.isFetching.value).toBeFalsy()
353
+ expect(query.data.value).toStrictEqual(undefined)
354
+
340
355
  expect(queries.value[0].isFetching).toBeFalsy()
341
356
  expect(queries.value[0].data).toStrictEqual(undefined)
342
357
  expect(fnSpy).toHaveBeenCalledTimes(0)
@@ -344,7 +359,8 @@ describe('VueQueryPlugin', () => {
344
359
  await flushPromises()
345
360
 
346
361
  expect(customClient.isRestoring.value).toBeFalsy()
347
- expect(queries.value[0].data).toStrictEqual({ foo: 'bar' })
362
+ expect(query.data.value).toStrictEqual({ foo1: 'bar1' })
363
+ expect(queries.value[0].data).toStrictEqual({ foo2: 'bar2' })
348
364
  expect(fnSpy).toHaveBeenCalledTimes(0)
349
365
  })
350
366
  })
@@ -2,7 +2,7 @@ import { setupDevtoolsPlugin } from '@vue/devtools-api'
2
2
  import type { CustomInspectorNode } from '@vue/devtools-api'
3
3
  import { rankItem } from '@tanstack/match-sorter-utils'
4
4
  import { onlineManager } from '@tanstack/query-core'
5
- import type { Query } from '@tanstack/query-core'
5
+ import type { Query, QueryCacheNotifyEvent } from '@tanstack/query-core'
6
6
  import type { QueryClient } from '../queryClient'
7
7
  import {
8
8
  getQueryStateLabel,
@@ -146,7 +146,13 @@ export function setupDevtools(app: any, queryClient: QueryClient) {
146
146
  api.sendInspectorTree(pluginId)
147
147
  api.sendInspectorState(pluginId)
148
148
 
149
- if (['added', 'removed', 'updated'].includes(event.type)) {
149
+ const queryEvents: QueryCacheNotifyEvent['type'][] = [
150
+ 'added',
151
+ 'removed',
152
+ 'updated',
153
+ ]
154
+
155
+ if (queryEvents.includes(event.type)) {
150
156
  api.addTimelineEvent({
151
157
  layerId: pluginId,
152
158
  event: {
package/src/useQueries.ts CHANGED
@@ -214,7 +214,10 @@ export function useQueries<
214
214
  defaultedQueries.value,
215
215
  options as QueriesObserverOptions<TCombinedResult>,
216
216
  )
217
- state.value = observer.getCurrentResult()
217
+ const [, getCombinedResultPersisted] = observer.getOptimisticResult(
218
+ defaultedQueries.value,
219
+ )
220
+ state.value = getCombinedResultPersisted()
218
221
  },
219
222
  { deep: true },
220
223
  )