@tanstack/query-core 5.0.0-alpha.34 → 5.0.0-alpha.42

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 (128) hide show
  1. package/build/lib/focusManager.d.ts +1 -1
  2. package/build/lib/focusManager.d.ts.map +1 -0
  3. package/build/lib/focusManager.esm.js.map +1 -1
  4. package/build/lib/focusManager.js.map +1 -1
  5. package/build/lib/focusManager.mjs.map +1 -1
  6. package/build/lib/hydration.d.ts.map +1 -0
  7. package/build/lib/hydration.esm.js.map +1 -1
  8. package/build/lib/hydration.js.map +1 -1
  9. package/build/lib/hydration.mjs.map +1 -1
  10. package/build/lib/index.d.ts.map +1 -0
  11. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  12. package/build/lib/infiniteQueryBehavior.esm.js.map +1 -1
  13. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  14. package/build/lib/infiniteQueryBehavior.mjs.map +1 -1
  15. package/build/lib/infiniteQueryObserver.d.ts +1 -1
  16. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  17. package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
  18. package/build/lib/infiniteQueryObserver.js.map +1 -1
  19. package/build/lib/infiniteQueryObserver.mjs.map +1 -1
  20. package/build/lib/mutation.d.ts +1 -1
  21. package/build/lib/mutation.d.ts.map +1 -0
  22. package/build/lib/mutation.esm.js.map +1 -1
  23. package/build/lib/mutation.js.map +1 -1
  24. package/build/lib/mutation.mjs.map +1 -1
  25. package/build/lib/mutationCache.d.ts +2 -2
  26. package/build/lib/mutationCache.d.ts.map +1 -0
  27. package/build/lib/mutationCache.esm.js.map +1 -1
  28. package/build/lib/mutationCache.js.map +1 -1
  29. package/build/lib/mutationCache.mjs.map +1 -1
  30. package/build/lib/mutationObserver.d.ts +1 -1
  31. package/build/lib/mutationObserver.d.ts.map +1 -0
  32. package/build/lib/mutationObserver.esm.js.map +1 -1
  33. package/build/lib/mutationObserver.js.map +1 -1
  34. package/build/lib/mutationObserver.mjs.map +1 -1
  35. package/build/lib/notifyManager.d.ts +3 -3
  36. package/build/lib/notifyManager.d.ts.map +1 -0
  37. package/build/lib/notifyManager.esm.js.map +1 -1
  38. package/build/lib/notifyManager.js.map +1 -1
  39. package/build/lib/notifyManager.mjs.map +1 -1
  40. package/build/lib/onlineManager.d.ts +1 -1
  41. package/build/lib/onlineManager.d.ts.map +1 -0
  42. package/build/lib/onlineManager.esm.js.map +1 -1
  43. package/build/lib/onlineManager.js.map +1 -1
  44. package/build/lib/onlineManager.mjs.map +1 -1
  45. package/build/lib/queriesObserver.d.ts +1 -1
  46. package/build/lib/queriesObserver.d.ts.map +1 -0
  47. package/build/lib/queriesObserver.esm.js.map +1 -1
  48. package/build/lib/queriesObserver.js.map +1 -1
  49. package/build/lib/queriesObserver.mjs.map +1 -1
  50. package/build/lib/query.d.ts +2 -2
  51. package/build/lib/query.d.ts.map +1 -0
  52. package/build/lib/query.esm.js.map +1 -1
  53. package/build/lib/query.js.map +1 -1
  54. package/build/lib/query.mjs.map +1 -1
  55. package/build/lib/queryCache.d.ts +2 -2
  56. package/build/lib/queryCache.d.ts.map +1 -0
  57. package/build/lib/queryCache.esm.js +1 -0
  58. package/build/lib/queryCache.esm.js.map +1 -1
  59. package/build/lib/queryCache.js +1 -0
  60. package/build/lib/queryCache.js.map +1 -1
  61. package/build/lib/queryCache.mjs +2 -0
  62. package/build/lib/queryCache.mjs.map +1 -1
  63. package/build/lib/queryClient.d.ts +1 -2
  64. package/build/lib/queryClient.d.ts.map +1 -0
  65. package/build/lib/queryClient.esm.js +1 -0
  66. package/build/lib/queryClient.esm.js.map +1 -1
  67. package/build/lib/queryClient.js +1 -0
  68. package/build/lib/queryClient.js.map +1 -1
  69. package/build/lib/queryClient.mjs +2 -0
  70. package/build/lib/queryClient.mjs.map +1 -1
  71. package/build/lib/queryObserver.d.ts +2 -3
  72. package/build/lib/queryObserver.d.ts.map +1 -0
  73. package/build/lib/queryObserver.esm.js +2 -3
  74. package/build/lib/queryObserver.esm.js.map +1 -1
  75. package/build/lib/queryObserver.js +2 -3
  76. package/build/lib/queryObserver.js.map +1 -1
  77. package/build/lib/queryObserver.mjs.map +1 -1
  78. package/build/lib/removable.d.ts.map +1 -0
  79. package/build/lib/removable.esm.js.map +1 -1
  80. package/build/lib/removable.js.map +1 -1
  81. package/build/lib/removable.mjs.map +1 -1
  82. package/build/lib/retryer.d.ts +4 -4
  83. package/build/lib/retryer.d.ts.map +1 -0
  84. package/build/lib/retryer.esm.js +2 -0
  85. package/build/lib/retryer.esm.js.map +1 -1
  86. package/build/lib/retryer.js +2 -0
  87. package/build/lib/retryer.js.map +1 -1
  88. package/build/lib/retryer.mjs +2 -0
  89. package/build/lib/retryer.mjs.map +1 -1
  90. package/build/lib/subscribable.d.ts +1 -1
  91. package/build/lib/subscribable.d.ts.map +1 -0
  92. package/build/lib/subscribable.esm.js.map +1 -1
  93. package/build/lib/subscribable.js.map +1 -1
  94. package/build/lib/subscribable.mjs.map +1 -1
  95. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  96. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  97. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  98. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  99. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  100. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  101. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  102. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  103. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  104. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  105. package/build/lib/tests/query.test.d.ts.map +1 -0
  106. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  107. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  108. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  109. package/build/lib/tests/utils.d.ts +2 -2
  110. package/build/lib/tests/utils.d.ts.map +1 -0
  111. package/build/lib/tests/utils.test.d.ts.map +1 -0
  112. package/build/lib/types.d.ts +30 -31
  113. package/build/lib/types.d.ts.map +1 -0
  114. package/build/lib/utils.d.ts +3 -3
  115. package/build/lib/utils.d.ts.map +1 -0
  116. package/build/lib/utils.esm.js.map +1 -1
  117. package/build/lib/utils.js.map +1 -1
  118. package/build/lib/utils.mjs.map +1 -1
  119. package/build/umd/index.development.js +6 -0
  120. package/build/umd/index.development.js.map +1 -1
  121. package/build/umd/index.production.js +1 -1
  122. package/build/umd/index.production.js.map +1 -1
  123. package/package.json +3 -1
  124. package/src/queryClient.ts +2 -1
  125. package/src/queryObserver.ts +11 -10
  126. package/src/tests/queryCache.test.tsx +1 -2
  127. package/src/tests/queryClient.test.tsx +6 -2
  128. package/src/types.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"retryer.js","sources":["../../src/retryer.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n"],"names":["defaultRetryDelay","failureCount","Math","min","canFetch","networkMode","onlineManager","isOnline","CancelledError","constructor","options","revert","silent","isCancelledError","value","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","Promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","focusManager","isFocused","resolve","onSuccess","onError","pause","continueResolve","canContinue","onPause","then","undefined","onContinue","run","promiseOrValue","fn","error","catch","retry","retryDelay","delay","shouldRetry","onFail","sleep","continue","didContinue"],"mappings":"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"}
1
+ {"version":3,"file":"retryer.js","sources":["../../src/retryer.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n"],"names":["defaultRetryDelay","failureCount","Math","min","canFetch","networkMode","onlineManager","isOnline","CancelledError","constructor","options","revert","silent","isCancelledError","value","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","Promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","focusManager","isFocused","resolve","onSuccess","onError","pause","continueResolve","canContinue","onPause","then","undefined","onContinue","run","promiseOrValue","fn","error","catch","_config$retry","_config$retryDelay","retry","retryDelay","delay","shouldRetry","onFail","sleep","continue","didContinue"],"mappings":"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"}
@@ -2,6 +2,8 @@ import { focusManager } from './focusManager.mjs';
2
2
  import { onlineManager } from './onlineManager.mjs';
3
3
  import { sleep } from './utils.mjs';
4
4
 
5
+ // TYPES
6
+
5
7
  function defaultRetryDelay(failureCount) {
6
8
  return Math.min(1000 * 2 ** failureCount, 30000);
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retryer.mjs","sources":["../../src/retryer.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n"],"names":["defaultRetryDelay","failureCount","Math","min","canFetch","networkMode","onlineManager","isOnline","CancelledError","constructor","options","revert","silent","isCancelledError","value","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","Promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","focusManager","isFocused","resolve","onSuccess","onError","pause","continueResolve","canContinue","onPause","then","undefined","onContinue","run","promiseOrValue","fn","error","catch","retry","retryDelay","delay","shouldRetry","onFail","sleep","continue","didContinue"],"mappings":"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"}
1
+ {"version":3,"file":"retryer.mjs","sources":["../../src/retryer.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n"],"names":["defaultRetryDelay","failureCount","Math","min","canFetch","networkMode","onlineManager","isOnline","CancelledError","constructor","options","revert","silent","isCancelledError","value","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","Promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","focusManager","isFocused","resolve","onSuccess","onError","pause","continueResolve","canContinue","onPause","then","undefined","onContinue","run","promiseOrValue","fn","error","catch","retry","retryDelay","delay","shouldRetry","onFail","sleep","continue","didContinue"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare type Listener = () => void;
1
+ type Listener = () => void;
2
2
  export declare class Subscribable<TListener extends Function = Listener> {
3
3
  protected listeners: Set<TListener>;
4
4
  constructor();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribable.d.ts","sourceRoot":"","sources":["../../src/subscribable.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAE1B,qBAAa,YAAY,CAAC,SAAS,SAAS,QAAQ,GAAG,QAAQ;IAC7D,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;;IAOnC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,IAAI;IAW1C,YAAY,IAAI,OAAO;IAIvB,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,SAAS,CAAC,aAAa,IAAI,IAAI;CAGhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribable.esm.js","sources":["../../src/subscribable.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size"],"mappings":"AAEO,MAAMA,YAAY,CAAwC;AAG/DC,EAAAA,WAAW,GAAG;AACZ,IAAA,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC1B,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5C,GAAA;EAEAD,SAAS,CAACE,QAAmB,EAAc;AACzC,IAAA,IAAI,CAACJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC,CAAA;IAE5B,IAAI,CAACE,WAAW,EAAE,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAACN,SAAS,CAACO,MAAM,CAACH,QAAQ,CAAC,CAAA;MAC/B,IAAI,CAACI,aAAa,EAAE,CAAA;KACrB,CAAA;AACH,GAAA;AAEAC,EAAAA,YAAY,GAAY;AACtB,IAAA,OAAO,IAAI,CAACT,SAAS,CAACU,IAAI,GAAG,CAAC,CAAA;AAChC,GAAA;AAEUJ,EAAAA,WAAW,GAAS;AAC5B;AAAA,GAAA;AAGQE,EAAAA,aAAa,GAAS;AAC9B;AAAA,GAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"subscribable.esm.js","sources":["../../src/subscribable.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size"],"mappings":"AAEO,MAAMA,YAAY,CAAwC;AAG/DC,EAAAA,WAAWA,GAAG;AACZ,IAAA,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC1B,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5C,GAAA;EAEAD,SAASA,CAACE,QAAmB,EAAc;AACzC,IAAA,IAAI,CAACJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC,CAAA;IAE5B,IAAI,CAACE,WAAW,EAAE,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAACN,SAAS,CAACO,MAAM,CAACH,QAAQ,CAAC,CAAA;MAC/B,IAAI,CAACI,aAAa,EAAE,CAAA;KACrB,CAAA;AACH,GAAA;AAEAC,EAAAA,YAAYA,GAAY;AACtB,IAAA,OAAO,IAAI,CAACT,SAAS,CAACU,IAAI,GAAG,CAAC,CAAA;AAChC,GAAA;AAEUJ,EAAAA,WAAWA,GAAS;AAC5B;AAAA,GAAA;AAGQE,EAAAA,aAAaA,GAAS;AAC9B;AAAA,GAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribable.js","sources":["../../src/subscribable.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size"],"mappings":";;AAEO,MAAMA,YAAY,CAAwC;AAG/DC,EAAAA,WAAW,GAAG;AACZ,IAAA,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC1B,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5C,GAAA;EAEAD,SAAS,CAACE,QAAmB,EAAc;AACzC,IAAA,IAAI,CAACJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC,CAAA;IAE5B,IAAI,CAACE,WAAW,EAAE,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAACN,SAAS,CAACO,MAAM,CAACH,QAAQ,CAAC,CAAA;MAC/B,IAAI,CAACI,aAAa,EAAE,CAAA;KACrB,CAAA;AACH,GAAA;AAEAC,EAAAA,YAAY,GAAY;AACtB,IAAA,OAAO,IAAI,CAACT,SAAS,CAACU,IAAI,GAAG,CAAC,CAAA;AAChC,GAAA;AAEUJ,EAAAA,WAAW,GAAS;AAC5B;AAAA,GAAA;AAGQE,EAAAA,aAAa,GAAS;AAC9B;AAAA,GAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"subscribable.js","sources":["../../src/subscribable.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size"],"mappings":";;AAEO,MAAMA,YAAY,CAAwC;AAG/DC,EAAAA,WAAWA,GAAG;AACZ,IAAA,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC1B,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5C,GAAA;EAEAD,SAASA,CAACE,QAAmB,EAAc;AACzC,IAAA,IAAI,CAACJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC,CAAA;IAE5B,IAAI,CAACE,WAAW,EAAE,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAACN,SAAS,CAACO,MAAM,CAACH,QAAQ,CAAC,CAAA;MAC/B,IAAI,CAACI,aAAa,EAAE,CAAA;KACrB,CAAA;AACH,GAAA;AAEAC,EAAAA,YAAYA,GAAY;AACtB,IAAA,OAAO,IAAI,CAACT,SAAS,CAACU,IAAI,GAAG,CAAC,CAAA;AAChC,GAAA;AAEUJ,EAAAA,WAAWA,GAAS;AAC5B;AAAA,GAAA;AAGQE,EAAAA,aAAaA,GAAS;AAC9B;AAAA,GAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribable.mjs","sources":["../../src/subscribable.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size"],"mappings":"AAEO,MAAMA,YAAY,CAAwC;AAG/DC,EAAAA,WAAW,GAAG;AACZ,IAAA,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC1B,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5C,GAAA;EAEAD,SAAS,CAACE,QAAmB,EAAc;AACzC,IAAA,IAAI,CAACJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC,CAAA;IAE5B,IAAI,CAACE,WAAW,EAAE,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAACN,SAAS,CAACO,MAAM,CAACH,QAAQ,CAAC,CAAA;MAC/B,IAAI,CAACI,aAAa,EAAE,CAAA;KACrB,CAAA;AACH,GAAA;AAEAC,EAAAA,YAAY,GAAY;AACtB,IAAA,OAAO,IAAI,CAACT,SAAS,CAACU,IAAI,GAAG,CAAC,CAAA;AAChC,GAAA;AAEUJ,EAAAA,WAAW,GAAS;AAC5B;AAAA,GAAA;AAGQE,EAAAA,aAAa,GAAS;AAC9B;AAAA,GAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"subscribable.mjs","sources":["../../src/subscribable.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size"],"mappings":"AAEO,MAAMA,YAAY,CAAwC;AAG/DC,EAAAA,WAAWA,GAAG;AACZ,IAAA,IAAI,CAACC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;IAC1B,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5C,GAAA;EAEAD,SAASA,CAACE,QAAmB,EAAc;AACzC,IAAA,IAAI,CAACJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC,CAAA;IAE5B,IAAI,CAACE,WAAW,EAAE,CAAA;AAElB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAACN,SAAS,CAACO,MAAM,CAACH,QAAQ,CAAC,CAAA;MAC/B,IAAI,CAACI,aAAa,EAAE,CAAA;KACrB,CAAA;AACH,GAAA;AAEAC,EAAAA,YAAYA,GAAY;AACtB,IAAA,OAAO,IAAI,CAACT,SAAS,CAACU,IAAI,GAAG,CAAC,CAAA;AAChC,GAAA;AAEUJ,EAAAA,WAAWA,GAAS;AAC5B;AAAA,GAAA;AAGQE,EAAAA,aAAaA,GAAS;AAC9B;AAAA,GAAA;AAEJ;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusManager.test.d.ts","sourceRoot":"","sources":["../../../src/tests/focusManager.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration.test.d.ts","sourceRoot":"","sources":["../../../src/tests/hydration.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infiniteQueryBehavior.test.d.ts","sourceRoot":"","sources":["../../../src/tests/infiniteQueryBehavior.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infiniteQueryObserver.test.d.ts","sourceRoot":"","sources":["../../../src/tests/infiniteQueryObserver.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationCache.test.d.ts","sourceRoot":"","sources":["../../../src/tests/mutationCache.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationObserver.test.d.ts","sourceRoot":"","sources":["../../../src/tests/mutationObserver.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutations.test.d.ts","sourceRoot":"","sources":["../../../src/tests/mutations.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifyManager.test.d.ts","sourceRoot":"","sources":["../../../src/tests/notifyManager.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onlineManager.test.d.ts","sourceRoot":"","sources":["../../../src/tests/onlineManager.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queriesObserver.test.d.ts","sourceRoot":"","sources":["../../../src/tests/queriesObserver.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../../../src/tests/query.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryCache.test.d.ts","sourceRoot":"","sources":["../../../src/tests/queryCache.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryClient.test.d.ts","sourceRoot":"","sources":["../../../src/tests/queryClient.test.tsx"],"names":[],"mappings":"AACA,OAAO,2BAA2B,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryObserver.test.d.ts","sourceRoot":"","sources":["../../../src/tests/queryObserver.test.tsx"],"names":[],"mappings":""}
@@ -2,8 +2,8 @@
2
2
  import type { MutationOptions, QueryClientConfig } from '..';
3
3
  import { QueryClient } from '..';
4
4
  export declare function createQueryClient(config?: QueryClientConfig): QueryClient;
5
- export declare function mockVisibilityState(value: DocumentVisibilityState): import("vitest/dist/index-1cfc7f58").S<[], DocumentVisibilityState>;
6
- export declare function mockNavigatorOnLine(value: boolean): import("vitest/dist/index-1cfc7f58").S<[], boolean>;
5
+ export declare function mockVisibilityState(value: DocumentVisibilityState): import("vitest/dist/index-2dd51af4").S<[], DocumentVisibilityState>;
6
+ export declare function mockNavigatorOnLine(value: boolean): import("vitest/dist/index-2dd51af4").S<[], boolean>;
7
7
  export declare function queryKey(): Array<string>;
8
8
  export declare function sleep(timeout: number): Promise<void>;
9
9
  export declare function setActTimeout(fn: () => void, ms?: number): NodeJS.Timeout;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tests/utils.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAGhC,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAEzE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,uEAEjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,uDAEjD;AAGD,wBAAgB,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,CAGxC;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,kBAMxD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,eAAc,IAAiB,CAAA;AAEtD,eAAO,MAAM,eAAe,4BACb,WAAW,6FAQzB,CAAA;AAID,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,cAW5C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../src/tests/utils.test.tsx"],"names":[],"mappings":""}
@@ -1,18 +1,17 @@
1
1
  import type { MutationState } from './mutation';
2
- import type { QueryBehavior, Query } from './query';
2
+ import type { FetchDirection, QueryBehavior, Query } from './query';
3
3
  import type { RetryValue, RetryDelayValue } from './retryer';
4
4
  import type { QueryFilters, QueryTypeFilter } from './utils';
5
5
  import type { QueryCache } from './queryCache';
6
6
  import type { MutationCache } from './mutationCache';
7
- import type { FetchDirection } from './query';
8
7
  export interface Register {
9
8
  }
10
- export declare type DefaultError = Register extends {
9
+ export type DefaultError = Register extends {
11
10
  defaultError: infer TError;
12
11
  } ? TError : Error;
13
- export declare type QueryKey = readonly unknown[];
14
- export declare type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = (context: QueryFunctionContext<TQueryKey, TPageParam>) => T | Promise<T>;
15
- export declare type QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? {
12
+ export type QueryKey = readonly unknown[];
13
+ export type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = (context: QueryFunctionContext<TQueryKey, TPageParam>) => T | Promise<T>;
14
+ export type QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? {
16
15
  queryKey: TQueryKey;
17
16
  signal: AbortSignal;
18
17
  meta: QueryMeta | undefined;
@@ -23,21 +22,21 @@ export declare type QueryFunctionContext<TQueryKey extends QueryKey = QueryKey,
23
22
  direction: FetchDirection;
24
23
  meta: QueryMeta | undefined;
25
24
  };
26
- export declare type InitialDataFunction<T> = () => T | undefined;
27
- declare type NonFunctionGuard<T> = T extends Function ? never : T;
28
- export declare type PlaceholderDataFunction<TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = (previousData: TQueryData | undefined, previousQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> | undefined) => TQueryData | undefined;
29
- export declare type QueriesPlaceholderDataFunction<TQueryData> = () => TQueryData | undefined;
30
- export declare type QueryKeyHashFunction<TQueryKey extends QueryKey> = (queryKey: TQueryKey) => string;
31
- export declare type GetPreviousPageParamFunction<TPageParam, TQueryFnData = unknown> = (firstPage: TQueryFnData, allPages: TQueryFnData[], firstPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined;
32
- export declare type GetNextPageParamFunction<TPageParam, TQueryFnData = unknown> = (lastPage: TQueryFnData, allPages: TQueryFnData[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined;
25
+ export type InitialDataFunction<T> = () => T | undefined;
26
+ type NonFunctionGuard<T> = T extends Function ? never : T;
27
+ export type PlaceholderDataFunction<TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = (previousData: TQueryData | undefined, previousQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> | undefined) => TQueryData | undefined;
28
+ export type QueriesPlaceholderDataFunction<TQueryData> = () => TQueryData | undefined;
29
+ export type QueryKeyHashFunction<TQueryKey extends QueryKey> = (queryKey: TQueryKey) => string;
30
+ export type GetPreviousPageParamFunction<TPageParam, TQueryFnData = unknown> = (firstPage: TQueryFnData, allPages: TQueryFnData[], firstPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined;
31
+ export type GetNextPageParamFunction<TPageParam, TQueryFnData = unknown> = (lastPage: TQueryFnData, allPages: TQueryFnData[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined;
33
32
  export interface InfiniteData<TData> {
34
33
  pages: TData[];
35
34
  pageParams: unknown[];
36
35
  }
37
- export declare type QueryMeta = Register extends {
36
+ export type QueryMeta = Register extends {
38
37
  queryMeta: infer TQueryMeta;
39
38
  } ? TQueryMeta extends Record<string, unknown> ? TQueryMeta : Record<string, unknown> : Record<string, unknown>;
40
- export declare type NetworkMode = 'online' | 'always' | 'offlineFirst';
39
+ export type NetworkMode = 'online' | 'always' | 'offlineFirst';
41
40
  export interface QueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> {
42
41
  /**
43
42
  * If `false`, failed queries will not retry by default.
@@ -88,7 +87,7 @@ export interface InfiniteQueryPageParamsOptions<TQueryFnData = unknown, TPagePar
88
87
  */
89
88
  getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>;
90
89
  }
91
- export declare type ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey extends QueryKey> = boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
90
+ export type ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey extends QueryKey> = boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
92
91
  export interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam> {
93
92
  /**
94
93
  * Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
@@ -172,11 +171,11 @@ export interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultEr
172
171
  placeholderData?: NonFunctionGuard<TQueryData> | PlaceholderDataFunction<NonFunctionGuard<TQueryData>>;
173
172
  _optimisticResults?: 'optimistic' | 'isRestoring';
174
173
  }
175
- export declare type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
176
- export declare type DefaultedQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'throwOnError' | 'refetchOnReconnect'>;
174
+ export type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
175
+ export type DefaultedQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'throwOnError' | 'refetchOnReconnect'>;
177
176
  export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserverOptions<TQueryFnData, TError, TData, InfiniteData<TQueryData>, TQueryKey, TPageParam>, InfiniteQueryPageParamsOptions<TQueryFnData, TPageParam> {
178
177
  }
179
- export declare type DefaultedInfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = WithRequired<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'throwOnError' | 'refetchOnReconnect'>;
178
+ export type DefaultedInfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = WithRequired<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'throwOnError' | 'refetchOnReconnect'>;
180
179
  export interface FetchQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends WithRequired<QueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'queryKey'> {
181
180
  /**
182
181
  * The time in milliseconds after data is considered stale.
@@ -207,8 +206,8 @@ export interface FetchNextPageOptions extends ResultOptions {
207
206
  export interface FetchPreviousPageOptions extends ResultOptions {
208
207
  cancelRefetch?: boolean;
209
208
  }
210
- export declare type QueryStatus = 'pending' | 'error' | 'success';
211
- export declare type FetchStatus = 'fetching' | 'paused' | 'idle';
209
+ export type QueryStatus = 'pending' | 'error' | 'success';
210
+ export type FetchStatus = 'fetching' | 'paused' | 'idle';
212
211
  export interface QueryObserverBaseResult<TData = unknown, TError = DefaultError> {
213
212
  data: TData | undefined;
214
213
  dataUpdatedAt: number;
@@ -279,8 +278,8 @@ export interface QueryObserverSuccessResult<TData = unknown, TError = DefaultErr
279
278
  isSuccess: true;
280
279
  status: 'success';
281
280
  }
282
- export declare type DefinedQueryObserverResult<TData = unknown, TError = DefaultError> = QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
283
- export declare type QueryObserverResult<TData = unknown, TError = DefaultError> = DefinedQueryObserverResult<TData, TError> | QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError>;
281
+ export type DefinedQueryObserverResult<TData = unknown, TError = DefaultError> = QueryObserverRefetchErrorResult<TData, TError> | QueryObserverSuccessResult<TData, TError>;
282
+ export type QueryObserverResult<TData = unknown, TError = DefaultError> = DefinedQueryObserverResult<TData, TError> | QueryObserverLoadingErrorResult<TData, TError> | QueryObserverLoadingResult<TData, TError>;
284
283
  export interface InfiniteQueryObserverBaseResult<TData = unknown, TError = DefaultError> extends QueryObserverBaseResult<TData, TError> {
285
284
  fetchNextPage: (options?: FetchNextPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
286
285
  fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise<InfiniteQueryObserverResult<TData, TError>>;
@@ -329,13 +328,13 @@ export interface InfiniteQueryObserverSuccessResult<TData = unknown, TError = De
329
328
  isSuccess: true;
330
329
  status: 'success';
331
330
  }
332
- export declare type InfiniteQueryObserverResult<TData = unknown, TError = DefaultError> = InfiniteQueryObserverLoadingErrorResult<TData, TError> | InfiniteQueryObserverLoadingResult<TData, TError> | InfiniteQueryObserverRefetchErrorResult<TData, TError> | InfiniteQueryObserverSuccessResult<TData, TError>;
333
- export declare type MutationKey = readonly unknown[];
334
- export declare type MutationStatus = 'idle' | 'pending' | 'success' | 'error';
335
- export declare type MutationMeta = Register extends {
331
+ export type InfiniteQueryObserverResult<TData = unknown, TError = DefaultError> = InfiniteQueryObserverLoadingErrorResult<TData, TError> | InfiniteQueryObserverLoadingResult<TData, TError> | InfiniteQueryObserverRefetchErrorResult<TData, TError> | InfiniteQueryObserverSuccessResult<TData, TError>;
332
+ export type MutationKey = readonly unknown[];
333
+ export type MutationStatus = 'idle' | 'pending' | 'success' | 'error';
334
+ export type MutationMeta = Register extends {
336
335
  mutationMeta: infer TMutationMeta;
337
336
  } ? TMutationMeta : Record<string, unknown>;
338
- export declare type MutationFunction<TData = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData>;
337
+ export type MutationFunction<TData = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData>;
339
338
  export interface MutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
340
339
  mutationFn?: MutationFunction<TData, TVariables>;
341
340
  mutationKey?: MutationKey;
@@ -358,7 +357,7 @@ export interface MutateOptions<TData = unknown, TError = DefaultError, TVariable
358
357
  onError?: (error: TError, variables: TVariables, context: TContext | undefined) => void;
359
358
  onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => void;
360
359
  }
361
- export declare type MutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
360
+ export type MutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;
362
361
  export interface MutationObserverBaseResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends MutationState<TData, TError, TVariables, TContext> {
363
362
  isError: boolean;
364
363
  isIdle: boolean;
@@ -407,7 +406,7 @@ export interface MutationObserverSuccessResult<TData = unknown, TError = Default
407
406
  isSuccess: true;
408
407
  status: 'success';
409
408
  }
410
- export declare type MutationObserverResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = MutationObserverIdleResult<TData, TError, TVariables, TContext> | MutationObserverLoadingResult<TData, TError, TVariables, TContext> | MutationObserverErrorResult<TData, TError, TVariables, TContext> | MutationObserverSuccessResult<TData, TError, TVariables, TContext>;
409
+ export type MutationObserverResult<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = MutationObserverIdleResult<TData, TError, TVariables, TContext> | MutationObserverLoadingResult<TData, TError, TVariables, TContext> | MutationObserverErrorResult<TData, TError, TVariables, TContext> | MutationObserverSuccessResult<TData, TError, TVariables, TContext>;
411
410
  export interface QueryClientConfig {
412
411
  queryCache?: QueryCache;
413
412
  mutationCache?: MutationCache;
@@ -424,7 +423,7 @@ export interface CancelOptions {
424
423
  export interface SetDataOptions {
425
424
  updatedAt?: number;
426
425
  }
427
- export declare type NotifyEventType = 'added' | 'removed' | 'updated' | 'observerAdded' | 'observerRemoved' | 'observerResultsUpdated' | 'observerOptionsUpdated';
426
+ export type NotifyEventType = 'added' | 'removed' | 'updated' | 'observerAdded' | 'observerRemoved' | 'observerResultsUpdated' | 'observerOptionsUpdated';
428
427
  export interface NotifyEvent {
429
428
  type: NotifyEventType;
430
429
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -45,9 +45,9 @@ export interface MutationFilters {
45
45
  */
46
46
  status?: MutationStatus;
47
47
  }
48
- export declare type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput;
49
- export declare type Updater<TInput, TOutput> = TOutput | DataUpdateFunction<TInput, TOutput>;
50
- export declare type QueryTypeFilter = 'all' | 'active' | 'inactive';
48
+ export type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput;
49
+ export type Updater<TInput, TOutput> = TOutput | DataUpdateFunction<TInput, TOutput>;
50
+ export type QueryTypeFilter = 'all' | 'active' | 'inactive';
51
51
  export declare const isServer: boolean;
52
52
  export declare function noop(): undefined;
53
53
  export declare function functionalUpdate<TInput, TOutput>(updater: Updater<TInput, TOutput>, input: TInput): TOutput;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.esm.js","sources":["../../src/utils.ts"],"sourcesContent":["import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationKey,\n MutationStatus,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation<any, any, any>) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Filter by mutation status\n */\n status?: MutationStatus\n}\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, status, predicate, mutationKey } = filters\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (status && mutation.state.status !== status) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: QueryOptions<any, any, any, TQueryKey>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query & mutation keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashKey(queryKey: QueryKey | MutationKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects<T>(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n\nexport function keepPreviousData<T>(\n previousData: T | undefined,\n): T | undefined {\n return previousData\n}\n\nexport function addToEnd<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [...items, item]\n return max && newItems.length > max ? newItems.slice(1) : newItems\n}\n\nexport function addToStart<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [item, ...items]\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems\n}\n"],"names":["isServer","window","noop","undefined","functionalUpdate","updater","input","isValidTimeout","value","Infinity","timeUntilStale","updatedAt","staleTime","Math","max","Date","now","matchQuery","filters","query","type","exact","fetchStatus","predicate","queryKey","stale","queryHash","hashQueryKeyByOptions","options","partialMatchKey","isActive","isStale","state","matchMutation","mutation","status","mutationKey","hashKey","hashFn","queryKeyHashFn","JSON","stringify","_","val","isPlainObject","Object","keys","sort","reduce","result","key","a","b","some","replaceEqualDeep","array","isPlainArray","aSize","length","bItems","bSize","copy","equalItems","i","shallowEqualObjects","Array","isArray","o","hasObjectPrototype","ctor","constructor","prot","prototype","hasOwnProperty","toString","call","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","callback","then","replaceData","prevData","data","structuralSharing","keepPreviousData","previousData","addToEnd","items","item","newItems","slice","addToStart"],"mappings":"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"}
1
+ {"version":3,"file":"utils.esm.js","sources":["../../src/utils.ts"],"sourcesContent":["import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationKey,\n MutationStatus,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation<any, any, any>) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Filter by mutation status\n */\n status?: MutationStatus\n}\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, status, predicate, mutationKey } = filters\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (status && mutation.state.status !== status) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: QueryOptions<any, any, any, TQueryKey>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query & mutation keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashKey(queryKey: QueryKey | MutationKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects<T>(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n\nexport function keepPreviousData<T>(\n previousData: T | undefined,\n): T | undefined {\n return previousData\n}\n\nexport function addToEnd<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [...items, item]\n return max && newItems.length > max ? newItems.slice(1) : newItems\n}\n\nexport function addToStart<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [item, ...items]\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems\n}\n"],"names":["isServer","window","noop","undefined","functionalUpdate","updater","input","isValidTimeout","value","Infinity","timeUntilStale","updatedAt","staleTime","Math","max","Date","now","matchQuery","filters","query","type","exact","fetchStatus","predicate","queryKey","stale","queryHash","hashQueryKeyByOptions","options","partialMatchKey","isActive","isStale","state","matchMutation","mutation","status","mutationKey","hashKey","hashFn","queryKeyHashFn","JSON","stringify","_","val","isPlainObject","Object","keys","sort","reduce","result","key","a","b","some","replaceEqualDeep","array","isPlainArray","aSize","length","bItems","bSize","copy","equalItems","i","shallowEqualObjects","Array","isArray","o","hasObjectPrototype","ctor","constructor","prot","prototype","hasOwnProperty","toString","call","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","callback","then","replaceData","prevData","data","structuralSharing","keepPreviousData","previousData","addToEnd","items","item","newItems","slice","addToStart"],"mappings":"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"}