tanstack-fetch 1.0.0 → 1.0.2
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.
- package/README.md +134 -3
- package/dist/cli.js +22 -239
- package/dist/client.type-BBYqVrTM.d.cts +156 -0
- package/dist/client.type-Btgj3NQn.d.ts +156 -0
- package/dist/config.type-eG_cuxpu.d.cts +132 -0
- package/dist/config.type-eG_cuxpu.d.ts +132 -0
- package/dist/index.cjs +2 -881
- package/dist/index.d.cts +23 -17
- package/dist/index.d.ts +23 -17
- package/dist/index.js +2 -3
- package/dist/plugins.cjs +1 -0
- package/dist/plugins.d.cts +19 -0
- package/dist/plugins.d.ts +19 -0
- package/dist/plugins.js +1 -0
- package/dist/react.cjs +1 -951
- package/dist/react.d.cts +6 -6
- package/dist/react.d.ts +6 -6
- package/dist/react.js +1 -91
- package/dist/sse.cjs +7 -0
- package/dist/sse.d.cts +9 -0
- package/dist/sse.d.ts +9 -0
- package/dist/sse.js +7 -0
- package/package.json +19 -6
- package/dist/chunk-T27KPHCL.js +0 -867
- package/dist/chunk-T27KPHCL.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/fetch-error-B10Od9AT.d.cts +0 -257
- package/dist/fetch-error-B10Od9AT.d.ts +0 -257
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/react.cjs.map +0 -1
- package/dist/react.js.map +0 -1
package/dist/react.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react/fetch-provider.hook.ts","../src/react/fetch-provider.tsx","../src/react/use-sse.hook.ts"],"names":["useRef"],"mappings":"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","file":"react.js","sourcesContent":["import { useRef } from 'react'\nimport { createFetch } from '../create-fetch'\nimport type { CreateFetchOptions, FetchClient } from '../types'\nimport type { FetchProviderProps } from './fetch-provider.type'\nimport { createContext, useContext, type Context } from 'react'\n\nconst FetchContext: Context<FetchClient | null> = createContext<FetchClient | null>(null)\n\nconst buildClient = (props: FetchProviderProps): FetchClient => {\n if (props.client) {\n return props.client\n }\n const { children: _children, client: _client, ...options } = props\n return createFetch(options as CreateFetchOptions)\n}\n\nconst useFetchProviderState = (props: FetchProviderProps) => {\n const createdRef = useRef<FetchClient | null>(null)\n\n if (props.client) {\n return { value: props.client, children: props.children }\n }\n\n if (!createdRef.current) {\n createdRef.current = buildClient(props)\n }\n\n return { value: createdRef.current, children: props.children }\n}\n\nconst useFetch = (): FetchClient => {\n const client = useContext(FetchContext)\n if (!client) {\n throw new Error('tanstack-fetch: useFetch() must be used inside <FetchProvider>')\n }\n return client\n}\n\nexport { FetchContext, useFetchProviderState, useFetch }\n","import { createElement } from 'react'\nimport type { FetchProviderProps } from './fetch-provider.type'\nimport { FetchContext, useFetchProviderState } from './fetch-provider.hook'\n\nconst FetchProvider = (props: FetchProviderProps) => {\n const { value, children } = useFetchProviderState(props)\n return createElement(FetchContext.Provider, { value }, children)\n}\n\nexport default FetchProvider\nexport type { FetchProviderProps }\n","import { useEffect, useRef, useState } from 'react'\nimport { isFetchError } from '../fetch-error'\nimport { useFetch } from './fetch-provider.hook'\nimport type { FetchError } from '../fetch-error'\nimport type { SseEvent } from '../types'\n\ntype UseSseOptions<T> = {\n /** When false, the stream is not opened. Default true. */\n enabled?: boolean\n lastEventId?: string\n params?: Record<string, string | number>\n query?: Record<string, string | number | boolean | undefined | null>\n onMessage?: (data: T, event: SseEvent<T>) => void\n onEvent?: (event: SseEvent<T>) => void\n onError?: (error: unknown) => void\n}\n\ntype UseSseResult<T> = {\n data: T | undefined\n event: SseEvent<T> | undefined\n error: FetchError | Error | undefined\n isConnected: boolean\n close: () => void\n}\n\nconst useSse = <T>(path: string, options: UseSseOptions<T> = {}): UseSseResult<T> => {\n const api = useFetch()\n const [data, setData] = useState<T | undefined>(undefined)\n const [event, setEvent] = useState<SseEvent<T> | undefined>(undefined)\n const [error, setError] = useState<FetchError | Error | undefined>(undefined)\n const [isConnected, setIsConnected] = useState(false)\n const closeRef = useRef<(() => void) | null>(null)\n const optionsRef = useRef(options)\n optionsRef.current = options\n\n const paramsKey = JSON.stringify(options.params ?? null)\n const queryKey = JSON.stringify(options.query ?? null)\n\n useEffect(() => {\n if (options.enabled === false) {\n return\n }\n\n setError(undefined)\n const subscription = api.sse<T>(path, {\n params: optionsRef.current.params,\n query: optionsRef.current.query,\n lastEventId: optionsRef.current.lastEventId,\n onOpen: () => setIsConnected(true),\n onMessage: (message, nextEvent) => {\n setData(message)\n setEvent(nextEvent)\n optionsRef.current.onMessage?.(message, nextEvent)\n },\n onEvent: (nextEvent) => {\n optionsRef.current.onEvent?.(nextEvent)\n },\n onError: (nextError) => {\n setIsConnected(false)\n const normalized =\n nextError instanceof Error ? nextError : new Error('SSE connection failed')\n setError(isFetchError(nextError) ? nextError : normalized)\n optionsRef.current.onError?.(nextError)\n },\n onClose: () => setIsConnected(false),\n })\n\n closeRef.current = subscription.close\n\n return () => {\n subscription.close()\n closeRef.current = null\n setIsConnected(false)\n }\n }, [api, path, options.enabled, options.lastEventId, paramsKey, queryKey])\n\n return {\n data,\n event,\n error,\n isConnected,\n close: () => closeRef.current?.(),\n }\n}\n\nexport { useSse }\nexport type { UseSseOptions, UseSseResult }\n"]}
|