@tanstack/query-core 4.29.23 → 4.29.25

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.
Files changed (102) hide show
  1. package/build/lib/focusManager.d.ts.map +1 -0
  2. package/build/lib/hydration.d.ts.map +1 -0
  3. package/build/lib/index.d.ts.map +1 -0
  4. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  5. package/build/lib/infiniteQueryObserver.d.ts +1 -1
  6. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  7. package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
  8. package/build/lib/infiniteQueryObserver.js.map +1 -1
  9. package/build/lib/infiniteQueryObserver.mjs.map +1 -1
  10. package/build/lib/logger.d.ts.map +1 -0
  11. package/build/lib/logger.native.d.ts.map +1 -0
  12. package/build/lib/mutation.d.ts +2 -2
  13. package/build/lib/mutation.d.ts.map +1 -0
  14. package/build/lib/mutation.esm.js.map +1 -1
  15. package/build/lib/mutation.js.map +1 -1
  16. package/build/lib/mutation.mjs.map +1 -1
  17. package/build/lib/mutationCache.d.ts +2 -2
  18. package/build/lib/mutationCache.d.ts.map +1 -0
  19. package/build/lib/mutationCache.esm.js.map +1 -1
  20. package/build/lib/mutationCache.js.map +1 -1
  21. package/build/lib/mutationCache.mjs.map +1 -1
  22. package/build/lib/mutationObserver.d.ts +3 -3
  23. package/build/lib/mutationObserver.d.ts.map +1 -0
  24. package/build/lib/mutationObserver.esm.js.map +1 -1
  25. package/build/lib/mutationObserver.js.map +1 -1
  26. package/build/lib/mutationObserver.mjs.map +1 -1
  27. package/build/lib/notifyManager.d.ts.map +1 -0
  28. package/build/lib/onlineManager.d.ts.map +1 -0
  29. package/build/lib/queriesObserver.d.ts +2 -2
  30. package/build/lib/queriesObserver.d.ts.map +1 -0
  31. package/build/lib/queriesObserver.esm.js.map +1 -1
  32. package/build/lib/queriesObserver.js.map +1 -1
  33. package/build/lib/queriesObserver.mjs.map +1 -1
  34. package/build/lib/query.d.ts +2 -2
  35. package/build/lib/query.d.ts.map +1 -0
  36. package/build/lib/query.esm.js.map +1 -1
  37. package/build/lib/query.js.map +1 -1
  38. package/build/lib/query.mjs.map +1 -1
  39. package/build/lib/queryCache.d.ts +2 -2
  40. package/build/lib/queryCache.d.ts.map +1 -0
  41. package/build/lib/queryCache.esm.js.map +1 -1
  42. package/build/lib/queryCache.js.map +1 -1
  43. package/build/lib/queryCache.mjs.map +1 -1
  44. package/build/lib/queryClient.d.ts +3 -3
  45. package/build/lib/queryClient.d.ts.map +1 -0
  46. package/build/lib/queryClient.esm.js.map +1 -1
  47. package/build/lib/queryClient.js.map +1 -1
  48. package/build/lib/queryClient.mjs.map +1 -1
  49. package/build/lib/queryObserver.d.ts +3 -3
  50. package/build/lib/queryObserver.d.ts.map +1 -0
  51. package/build/lib/queryObserver.esm.js.map +1 -1
  52. package/build/lib/queryObserver.js.map +1 -1
  53. package/build/lib/queryObserver.mjs.map +1 -1
  54. package/build/lib/removable.d.ts.map +1 -0
  55. package/build/lib/retryer.d.ts.map +1 -0
  56. package/build/lib/subscribable.d.ts.map +1 -0
  57. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  58. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  59. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  60. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  61. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  62. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  63. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  64. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  65. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  66. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  67. package/build/lib/tests/query.test.d.ts.map +1 -0
  68. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  69. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  70. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  71. package/build/lib/tests/utils.d.ts +1 -1
  72. package/build/lib/tests/utils.d.ts.map +1 -0
  73. package/build/lib/tests/utils.test.d.ts.map +1 -0
  74. package/build/lib/types.d.ts +2 -2
  75. package/build/lib/types.d.ts.map +1 -0
  76. package/build/lib/utils.d.ts.map +1 -0
  77. package/build/umd/index.development.js.map +1 -1
  78. package/build/umd/index.production.js.map +1 -1
  79. package/package.json +1 -1
  80. package/src/infiniteQueryObserver.ts +6 -6
  81. package/src/mutation.ts +5 -5
  82. package/src/mutationCache.ts +4 -4
  83. package/src/mutationObserver.ts +4 -4
  84. package/src/queriesObserver.ts +3 -3
  85. package/src/query.ts +8 -8
  86. package/src/queryCache.ts +4 -4
  87. package/src/queryClient.ts +14 -14
  88. package/src/queryObserver.ts +5 -5
  89. package/src/tests/hydration.test.tsx +2 -2
  90. package/src/tests/infiniteQueryBehavior.test.tsx +3 -3
  91. package/src/tests/infiniteQueryObserver.test.tsx +1 -1
  92. package/src/tests/mutationCache.test.tsx +1 -1
  93. package/src/tests/mutationObserver.test.tsx +1 -1
  94. package/src/tests/mutations.test.tsx +3 -3
  95. package/src/tests/queriesObserver.test.tsx +2 -2
  96. package/src/tests/query.test.tsx +6 -6
  97. package/src/tests/queryCache.test.tsx +3 -3
  98. package/src/tests/queryClient.test.tsx +4 -4
  99. package/src/tests/queryObserver.test.tsx +4 -4
  100. package/src/tests/utils.test.tsx +4 -4
  101. package/src/tests/utils.ts +1 -1
  102. package/src/types.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"mutation.mjs","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.defaultOptions = config.defaultOptions\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.observers = this.observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return this.retryer?.continue() ?? this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.retryer.promise\n }\n\n const restored = this.state.status === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\n\n this.dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.mutationCache.config.onError?.(\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n undefined,\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n throw error\n } finally {\n this.dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n private dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","setOptions","options","scheduleGc","updateCacheTime","cacheTime","meta","setState","dispatch","type","addObserver","observer","includes","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","process","env","NODE_ENV","undefined","action","reducer","failureReason","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
1
+ {"version":3,"file":"mutation.mjs","sources":["../../src/mutation.ts"],"sourcesContent":["import { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { canFetch, createRetryer } from './retryer'\nimport type { MutationMeta, MutationOptions, MutationStatus } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Logger } from './logger'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.defaultOptions = config.defaultOptions\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.observers = this.observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return this.retryer?.continue() ?? this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.retryer.promise\n }\n\n const restored = this.state.status === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n await this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\n\n this.dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.mutationCache.config.onError?.(\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n // Notify cache callback\n await this.mutationCache.config.onSettled?.(\n undefined,\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n throw error\n } finally {\n this.dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n private dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","setOptions","options","scheduleGc","updateCacheTime","cacheTime","meta","setState","dispatch","type","addObserver","observer","includes","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","process","env","NODE_ENV","undefined","action","reducer","failureReason","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
+ import { Mutation } from './mutation';
2
+ import { Subscribable } from './subscribable';
1
3
  import type { MutationObserver } from './mutationObserver';
2
4
  import type { MutationOptions, NotifyEvent } from './types';
3
5
  import type { QueryClient } from './queryClient';
4
6
  import type { Action, MutationState } from './mutation';
5
- import { Mutation } from './mutation';
6
7
  import type { MutationFilters } from './utils';
7
- import { Subscribable } from './subscribable';
8
8
  interface MutationCacheConfig {
9
9
  onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation<unknown, unknown, unknown>) => Promise<unknown> | unknown;
10
10
  onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation<unknown, unknown, unknown>) => Promise<unknown> | unknown;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationCache.d.ts","sourceRoot":"","sources":["../../src/mutationCache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutationCache.esm.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
1
+ {"version":3,"file":"mutationCache.esm.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
1
+ {"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
1
+ {"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n private resuming: Promise<unknown> | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","resuming","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { Action } from './mutation';
2
- import type { QueryClient } from './queryClient';
3
1
  import { Subscribable } from './subscribable';
4
- import type { MutateOptions, MutationObserverResult, MutationObserverOptions } from './types';
2
+ import type { QueryClient } from './queryClient';
3
+ import type { MutateOptions, MutationObserverOptions, MutationObserverResult } from './types';
4
+ import type { Action } from './mutation';
5
5
  declare type MutationObserverListener<TData, TError, TVariables, TContext> = (result: MutationObserverResult<TData, TError, TVariables, TContext>) => void;
6
6
  export declare class MutationObserver<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends Subscribable<MutationObserverListener<TData, TError, TVariables, TContext>> {
7
7
  options: MutationObserverOptions<TData, TError, TVariables, TContext>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationObserver.d.ts","sourceRoot":"","sources":["../../src/mutationObserver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EACV,aAAa,EAEb,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,YAAY,CAAA;AAIlD,aAAK,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,IAAI,CACnE,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,KAChE,IAAI,CAAA;AAUT,qBAAa,gBAAgB,CAC3B,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,CAClB,SAAQ,YAAY,CACpB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAC9D;IACC,OAAO,EAAG,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAEtE,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,aAAa,CAKpB;IACD,OAAO,CAAC,eAAe,CAAC,CAA+C;IACvE,OAAO,CAAC,aAAa,CAAC,CAAoD;gBAGxE,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAUvE,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B,UAAU,CACR,OAAO,CAAC,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAcxE,SAAS,CAAC,aAAa,IAAI,IAAI;IAM/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI;IAiB3E,gBAAgB,IAAI,sBAAsB,CACxC,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,CACT;IAID,KAAK,IAAI,IAAI;IAMb,MAAM,CACJ,SAAS,CAAC,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,GAC3D,OAAO,CAAC,KAAK,CAAC;IAkBjB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,MAAM;CAuCf"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutationObserver.esm.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverResult,\n MutationObserverOptions,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","currentMutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","notifyOptions","listeners","onSuccess","onError","getCurrentResult","currentResult","undefined","variables","mutateOptions","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
1
+ {"version":3,"file":"mutationObserver.esm.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport { shallowEqualObjects } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverOptions,\n MutationObserverResult,\n} from './types'\nimport type { Action, Mutation } from './mutation'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","currentMutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","notifyOptions","listeners","onSuccess","onError","getCurrentResult","currentResult","undefined","variables","mutateOptions","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutationObserver.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverResult,\n MutationObserverOptions,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","currentMutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","notifyOptions","listeners","onSuccess","onError","getCurrentResult","currentResult","undefined","variables","mutateOptions","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
1
+ {"version":3,"file":"mutationObserver.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport { shallowEqualObjects } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverOptions,\n MutationObserverResult,\n} from './types'\nimport type { Action, Mutation } from './mutation'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","currentMutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","notifyOptions","listeners","onSuccess","onError","getCurrentResult","currentResult","undefined","variables","mutateOptions","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutationObserver.mjs","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverResult,\n MutationObserverOptions,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","currentMutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","notifyOptions","listeners","onSuccess","onError","getCurrentResult","currentResult","undefined","variables","mutateOptions","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
1
+ {"version":3,"file":"mutationObserver.mjs","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport { shallowEqualObjects } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverOptions,\n MutationObserverResult,\n} from './types'\nimport type { Action, Mutation } from './mutation'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this,\n })\n }\n this.currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach(({ listener }) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","currentMutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","notifyOptions","listeners","onSuccess","onError","getCurrentResult","currentResult","undefined","variables","mutateOptions","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifyManager.d.ts","sourceRoot":"","sources":["../../src/notifyManager.ts"],"names":[],"mappings":"AAIA,aAAK,cAAc,GAAG,MAAM,IAAI,CAAA;AAEhC,aAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAEpD,aAAK,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAEzD,aAAK,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAEnE,wBAAgB,mBAAmB;;;kCAwBL,cAAc,KAAG,IAAI;qCAyClB,cAAc;0CAQT,mBAAmB;EAWxD;AAGD,eAAO,MAAM,aAAa;;;kCA/DI,cAAc,KAAG,IAAI;qCAyClB,cAAc;0CAQT,mBAAmB;CAcP,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onlineManager.d.ts","sourceRoot":"","sources":["../../src/onlineManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,aAAK,OAAO,GAAG,CACb,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,KAClC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;AAI7B,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAY;IAE5B,OAAO,CAAC,KAAK,CAAS;;IA0BtB,SAAS,CAAC,WAAW,IAAI,IAAI;IAM7B,SAAS,CAAC,aAAa;IAOvB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAYtC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IASjC,QAAQ,IAAI,IAAI;IAMhB,QAAQ,IAAI,OAAO;CAcpB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAA"}
@@ -1,8 +1,8 @@
1
+ import { QueryObserver } from './queryObserver';
2
+ import { Subscribable } from './subscribable';
1
3
  import type { QueryObserverOptions, QueryObserverResult } from './types';
2
4
  import type { QueryClient } from './queryClient';
3
5
  import type { NotifyOptions } from './queryObserver';
4
- import { QueryObserver } from './queryObserver';
5
- import { Subscribable } from './subscribable';
6
6
  declare type QueriesObserverListener = (result: QueryObserverResult[]) => void;
7
7
  export declare class QueriesObserver extends Subscribable<QueriesObserverListener> {
8
8
  private client;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queriesObserver.d.ts","sourceRoot":"","sources":["../../src/queriesObserver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,aAAK,uBAAuB,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAA;AAEtE,qBAAa,eAAgB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IACxE,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,oBAAoB,EAAE;IAcjE,SAAS,CAAC,WAAW,IAAI,IAAI;IAU7B,SAAS,CAAC,aAAa,IAAI,IAAI;IAM/B,OAAO,IAAI,IAAI;IAOf,UAAU,CACR,OAAO,EAAE,oBAAoB,EAAE,EAC/B,aAAa,CAAC,EAAE,aAAa,GAC5B,IAAI;IAkDP,gBAAgB,IAAI,mBAAmB,EAAE;IAIzC,UAAU;IAIV,YAAY;IAIZ,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,mBAAmB,EAAE;IAM3E,OAAO,CAAC,qBAAqB;IAwE7B,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,MAAM;CAOf"}
@@ -1 +1 @@
1
- {"version":3,"file":"queriesObserver.esm.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { difference, replaceAt } from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport class QueriesObserver extends Subscribable<QueriesObserverListener> {\n private client: QueryClient\n private result: QueryObserverResult[]\n private queries: QueryObserverOptions[]\n private observers: QueryObserver[]\n private observersMap: Record<string, QueryObserver>\n\n constructor(client: QueryClient, queries?: QueryObserverOptions[]) {\n super()\n\n this.client = client\n this.queries = []\n this.result = []\n this.observers = []\n this.observersMap = {}\n\n if (queries) {\n this.setQueries(queries)\n }\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n notifyOptions?: NotifyOptions,\n ): void {\n this.queries = queries\n\n notifyManager.batch(() => {\n const prevObservers = this.observers\n\n const newObserverMatches = this.findMatchingObservers(this.queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newObserversMap = Object.fromEntries(\n newObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.observers = newObservers\n this.observersMap = newObserversMap\n this.result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.onUpdate(observer, result)\n })\n })\n\n this.notify()\n })\n }\n\n getCurrentResult(): QueryObserverResult[] {\n return this.result\n }\n\n getQueries() {\n return this.observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.observers\n }\n\n getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {\n return this.findMatchingObservers(queries).map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n }\n\n private findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const matchingObserversSet = new Set(\n matchingObservers.map((match) => match.observer),\n )\n const unmatchedObservers = prevObservers.filter(\n (prevObserver) => !matchingObserversSet.has(prevObserver),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.client.defaultQueryOptions(options)\n const currentObserver = this.observersMap[defaultedOptions.queryHash!]\n return currentObserver ?? new QueryObserver(this.client, defaultedOptions)\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options, index) => {\n if (options.keepPreviousData) {\n // return previous data from one of the observers that no longer match\n const previouslyUsedObserver = unmatchedObservers[index]\n if (previouslyUsedObserver !== undefined) {\n return {\n defaultedQueryOptions: options,\n observer: previouslyUsedObserver,\n }\n }\n }\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n private onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.observers.indexOf(observer)\n if (index !== -1) {\n this.result = replaceAt(this.result, index, result)\n this.notify()\n }\n }\n\n private notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(this.result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["QueriesObserver","Subscribable","constructor","client","queries","result","observers","observersMap","setQueries","onSubscribe","listeners","size","forEach","observer","subscribe","onUpdate","onUnsubscribe","destroy","Set","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","findMatchingObservers","match","setOptions","defaultedQueryOptions","newObservers","map","newObserversMap","Object","fromEntries","options","queryHash","newResult","getCurrentResult","hasIndexChange","some","index","length","hasListeners","difference","notify","getQueries","getCurrentQuery","getObservers","getOptimisticResult","prevObserversMap","Map","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","unmatchedQueries","filter","has","matchingObserversSet","unmatchedObservers","prevObserver","getObserver","currentObserver","QueryObserver","newOrReusedObservers","keepPreviousData","previouslyUsedObserver","undefined","sortMatchesByOrderOfQueries","a","b","indexOf","concat","sort","replaceAt","listener"],"mappings":"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"}
1
+ {"version":3,"file":"queriesObserver.esm.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { difference, replaceAt } from './utils'\nimport { notifyManager } from './notifyManager'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport type {\n DefaultedQueryObserverOptions,\n QueryObserverOptions,\n QueryObserverResult,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport class QueriesObserver extends Subscribable<QueriesObserverListener> {\n private client: QueryClient\n private result: QueryObserverResult[]\n private queries: QueryObserverOptions[]\n private observers: QueryObserver[]\n private observersMap: Record<string, QueryObserver>\n\n constructor(client: QueryClient, queries?: QueryObserverOptions[]) {\n super()\n\n this.client = client\n this.queries = []\n this.result = []\n this.observers = []\n this.observersMap = {}\n\n if (queries) {\n this.setQueries(queries)\n }\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n notifyOptions?: NotifyOptions,\n ): void {\n this.queries = queries\n\n notifyManager.batch(() => {\n const prevObservers = this.observers\n\n const newObserverMatches = this.findMatchingObservers(this.queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newObserversMap = Object.fromEntries(\n newObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.observers = newObservers\n this.observersMap = newObserversMap\n this.result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.onUpdate(observer, result)\n })\n })\n\n this.notify()\n })\n }\n\n getCurrentResult(): QueryObserverResult[] {\n return this.result\n }\n\n getQueries() {\n return this.observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.observers\n }\n\n getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {\n return this.findMatchingObservers(queries).map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n }\n\n private findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const matchingObserversSet = new Set(\n matchingObservers.map((match) => match.observer),\n )\n const unmatchedObservers = prevObservers.filter(\n (prevObserver) => !matchingObserversSet.has(prevObserver),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.client.defaultQueryOptions(options)\n const currentObserver = this.observersMap[defaultedOptions.queryHash!]\n return currentObserver ?? new QueryObserver(this.client, defaultedOptions)\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options, index) => {\n if (options.keepPreviousData) {\n // return previous data from one of the observers that no longer match\n const previouslyUsedObserver = unmatchedObservers[index]\n if (previouslyUsedObserver !== undefined) {\n return {\n defaultedQueryOptions: options,\n observer: previouslyUsedObserver,\n }\n }\n }\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n private onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.observers.indexOf(observer)\n if (index !== -1) {\n this.result = replaceAt(this.result, index, result)\n this.notify()\n }\n }\n\n private notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(this.result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["QueriesObserver","Subscribable","constructor","client","queries","result","observers","observersMap","setQueries","onSubscribe","listeners","size","forEach","observer","subscribe","onUpdate","onUnsubscribe","destroy","Set","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","findMatchingObservers","match","setOptions","defaultedQueryOptions","newObservers","map","newObserversMap","Object","fromEntries","options","queryHash","newResult","getCurrentResult","hasIndexChange","some","index","length","hasListeners","difference","notify","getQueries","getCurrentQuery","getObservers","getOptimisticResult","prevObserversMap","Map","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","unmatchedQueries","filter","has","matchingObserversSet","unmatchedObservers","prevObserver","getObserver","currentObserver","QueryObserver","newOrReusedObservers","keepPreviousData","previouslyUsedObserver","undefined","sortMatchesByOrderOfQueries","a","b","indexOf","concat","sort","replaceAt","listener"],"mappings":"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"}