snapshot of https://github.com/TanStack/query.git (main, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
37
packages/query-core/src/environmentManager.ts
Normal file
37
packages/query-core/src/environmentManager.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { isServer as defaultIsServer } from './utils'
|
||||
|
||||
export type IsServerValue = () => boolean
|
||||
|
||||
let isServerFn: IsServerValue = () => defaultIsServer
|
||||
|
||||
/**
|
||||
* Returns whether the current runtime should be treated as a server environment.
|
||||
*/
|
||||
export const isServer = (): boolean => isServerFn()
|
||||
|
||||
/**
|
||||
* Manages how TanStack Query detects whether the current runtime should be treated as
|
||||
* server-side, which disables scheduling refetch timers and changes the default `retry` count
|
||||
* and `gcTime`. By default, the detection treats a missing `window` (or the presence of a
|
||||
* `Deno` global) as server.
|
||||
*
|
||||
* Override this for runtimes where that default detection would give the wrong answer — for
|
||||
* example, a Service Worker, where `window` is undefined even though the environment should
|
||||
* behave like a client.
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* import { environmentManager } from '@tanstack/query-core'
|
||||
*
|
||||
* environmentManager.setIsServer(() => false)
|
||||
* ```
|
||||
*/
|
||||
export const environmentManager = {
|
||||
isServer,
|
||||
/**
|
||||
* Overrides the server check globally.
|
||||
*/
|
||||
setIsServer(isServerValue: IsServerValue): void {
|
||||
isServerFn = isServerValue
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user