@tanstack/react-router 1.97.1 → 1.97.3
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/dist/cjs/defer.cjs.map +1 -1
- package/dist/cjs/defer.d.cts +13 -13
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/router.d.cts +33 -25
- package/dist/esm/defer.d.ts +13 -13
- package/dist/esm/defer.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/router.d.ts +33 -25
- package/dist/esm/router.js.map +1 -1
- package/package.json +1 -1
- package/src/defer.ts +18 -18
- package/src/index.tsx +6 -3
- package/src/router.ts +40 -28
package/package.json
CHANGED
package/src/defer.ts
CHANGED
|
@@ -2,25 +2,25 @@ import { defaultSerializeError } from './router'
|
|
|
2
2
|
|
|
3
3
|
export const TSR_DEFERRED_PROMISE = Symbol.for('TSR_DEFERRED_PROMISE')
|
|
4
4
|
|
|
5
|
-
export type DeferredPromiseState<T> =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
}
|
|
5
|
+
export type DeferredPromiseState<T> =
|
|
6
|
+
| {
|
|
7
|
+
status: 'pending'
|
|
8
|
+
data?: T
|
|
9
|
+
error?: unknown
|
|
10
|
+
}
|
|
11
|
+
| {
|
|
12
|
+
status: 'success'
|
|
13
|
+
data: T
|
|
14
|
+
}
|
|
15
|
+
| {
|
|
16
|
+
status: 'error'
|
|
17
|
+
data?: T
|
|
18
|
+
error: unknown
|
|
19
|
+
}
|
|
22
20
|
|
|
23
|
-
export type DeferredPromise<T> = Promise<T> &
|
|
21
|
+
export type DeferredPromise<T> = Promise<T> & {
|
|
22
|
+
[TSR_DEFERRED_PROMISE]: DeferredPromiseState<T>
|
|
23
|
+
}
|
|
24
24
|
|
|
25
25
|
export function defer<T>(
|
|
26
26
|
_promise: Promise<T>,
|
package/src/index.tsx
CHANGED
|
@@ -255,10 +255,13 @@ export type {
|
|
|
255
255
|
RouterEvent,
|
|
256
256
|
RouterListener,
|
|
257
257
|
AnyRouterWithContext,
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
258
|
+
ClientExtractedBaseEntry,
|
|
259
|
+
ClientExtractedEntry,
|
|
260
|
+
ClientExtractedPromise,
|
|
261
|
+
ControllablePromise,
|
|
261
262
|
StreamState,
|
|
263
|
+
TSRGlobal,
|
|
264
|
+
TSRGlobalMatch,
|
|
262
265
|
} from './router'
|
|
263
266
|
|
|
264
267
|
export { RouterProvider, RouterContextProvider } from './RouterProvider'
|
package/src/router.ts
CHANGED
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
import { isRedirect, isResolvedRedirect } from './redirects'
|
|
32
32
|
import { isNotFound } from './not-found'
|
|
33
33
|
import { defaultTransformer } from './transformer'
|
|
34
|
-
import type { DeferredPromiseState } from './defer'
|
|
35
34
|
import type * as React from 'react'
|
|
36
35
|
import type {
|
|
37
36
|
HistoryLocation,
|
|
@@ -87,29 +86,39 @@ import type { NavigateOptions, ResolveRelativePath, ToOptions } from './link'
|
|
|
87
86
|
import type { RouterTransformer } from './transformer'
|
|
88
87
|
import type { AnySchema, AnyValidator } from './validators'
|
|
89
88
|
|
|
89
|
+
export interface TSRGlobalMatch {
|
|
90
|
+
index: number
|
|
91
|
+
__beforeLoadContext?: string
|
|
92
|
+
loaderData?: string
|
|
93
|
+
extracted: Record<string, ClientExtractedEntry>
|
|
94
|
+
}
|
|
95
|
+
export interface TSRGlobal {
|
|
96
|
+
matches: Array<TSRGlobalMatch>
|
|
97
|
+
streamedValues: Record<
|
|
98
|
+
string,
|
|
99
|
+
{
|
|
100
|
+
value: any
|
|
101
|
+
parsed: any
|
|
102
|
+
}
|
|
103
|
+
>
|
|
104
|
+
cleanScripts: () => void
|
|
105
|
+
dehydrated?: any
|
|
106
|
+
}
|
|
90
107
|
declare global {
|
|
91
108
|
interface Window {
|
|
92
|
-
__TSR__?:
|
|
93
|
-
matches: Array<{
|
|
94
|
-
__beforeLoadContext?: string
|
|
95
|
-
loaderData?: string
|
|
96
|
-
extracted?: Array<ExtractedEntry>
|
|
97
|
-
}>
|
|
98
|
-
streamedValues: Record<
|
|
99
|
-
string,
|
|
100
|
-
{
|
|
101
|
-
value: any
|
|
102
|
-
parsed: any
|
|
103
|
-
}
|
|
104
|
-
>
|
|
105
|
-
cleanScripts: () => void
|
|
106
|
-
dehydrated?: any
|
|
107
|
-
}
|
|
109
|
+
__TSR__?: RegisteredTSRGlobal
|
|
108
110
|
__TSR_ROUTER_CONTEXT__?: React.Context<Router<any, any, any>>
|
|
109
111
|
}
|
|
110
112
|
}
|
|
111
113
|
|
|
114
|
+
type RegisteredTSRGlobal = Register extends {
|
|
115
|
+
__TSR__: infer TTSR extends TSRGlobal
|
|
116
|
+
}
|
|
117
|
+
? TTSR
|
|
118
|
+
: TSRGlobal
|
|
119
|
+
|
|
112
120
|
export interface Register {
|
|
121
|
+
// __TSR__: TSRGlobal
|
|
113
122
|
// router: Router
|
|
114
123
|
}
|
|
115
124
|
|
|
@@ -148,25 +157,28 @@ export type InferRouterContext<TRouteTree extends AnyRoute> =
|
|
|
148
157
|
? TRouterContext
|
|
149
158
|
: AnyContext
|
|
150
159
|
|
|
151
|
-
export interface
|
|
152
|
-
dataType: '__beforeLoadContext' | 'loaderData'
|
|
160
|
+
export interface ClientExtractedBaseEntry {
|
|
153
161
|
type: string
|
|
154
162
|
path: Array<string>
|
|
155
|
-
id: number
|
|
156
|
-
matchIndex: number
|
|
157
163
|
}
|
|
158
164
|
|
|
159
|
-
export
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
export type ControllablePromise<T = any> = Promise<T> & {
|
|
166
|
+
resolve: (value: T) => void
|
|
167
|
+
reject: (value?: any) => void
|
|
162
168
|
}
|
|
163
|
-
|
|
164
|
-
export interface ExtractedPromise extends ExtractedBaseEntry {
|
|
169
|
+
export interface ClientExtractedPromise extends ClientExtractedBaseEntry {
|
|
165
170
|
type: 'promise'
|
|
166
|
-
|
|
171
|
+
value?: ControllablePromise<any>
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface ClientExtractedStream extends ClientExtractedBaseEntry {
|
|
175
|
+
type: 'stream'
|
|
176
|
+
value?: ReadableStream & { controller?: ReadableStreamDefaultController }
|
|
167
177
|
}
|
|
168
178
|
|
|
169
|
-
export type
|
|
179
|
+
export type ClientExtractedEntry =
|
|
180
|
+
| ClientExtractedStream
|
|
181
|
+
| ClientExtractedPromise
|
|
170
182
|
|
|
171
183
|
export type StreamState = {
|
|
172
184
|
promises: Array<ControlledPromise<string | null>>
|