@tanstack/start-client-core 1.132.0-alpha.8 → 1.132.0
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/esm/{serializer → client}/ServerFunctionSerializationAdapter.js +2 -2
- package/dist/esm/client/ServerFunctionSerializationAdapter.js.map +1 -0
- package/dist/esm/client/createClientRpc.d.ts +6 -0
- package/dist/esm/{createClientRpc.js → client/createClientRpc.js} +4 -4
- package/dist/esm/client/createClientRpc.js.map +1 -0
- package/dist/esm/client/hydrateStart.d.ts +2 -0
- package/dist/esm/client/hydrateStart.js +29 -0
- package/dist/esm/client/hydrateStart.js.map +1 -0
- package/dist/esm/client/index.d.ts +2 -0
- package/dist/esm/client/index.js +7 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/{serverFnFetcher.js → client/serverFnFetcher.js} +6 -6
- package/dist/esm/client/serverFnFetcher.js.map +1 -0
- package/dist/esm/constants.d.ts +1 -0
- package/dist/esm/constants.js +4 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/createMiddleware.d.ts +95 -86
- package/dist/esm/createMiddleware.js +5 -5
- package/dist/esm/createMiddleware.js.map +1 -1
- package/dist/esm/createServerFn.d.ts +64 -61
- package/dist/esm/createServerFn.js +57 -30
- package/dist/esm/createServerFn.js.map +1 -1
- package/dist/esm/createStart.d.ts +27 -0
- package/dist/esm/createStart.js +14 -0
- package/dist/esm/createStart.js.map +1 -0
- package/dist/esm/fake-start-entry.d.ts +5 -0
- package/dist/esm/fake-start-entry.js +11 -0
- package/dist/esm/fake-start-entry.js.map +1 -0
- package/dist/esm/getDefaultSerovalPlugins.d.ts +1 -0
- package/dist/esm/getDefaultSerovalPlugins.js +14 -0
- package/dist/esm/getDefaultSerovalPlugins.js.map +1 -0
- package/dist/esm/getGlobalStartContext.d.ts +3 -0
- package/dist/esm/getGlobalStartContext.js +15 -0
- package/dist/esm/getGlobalStartContext.js.map +1 -0
- package/dist/esm/getRouterInstance.d.ts +2 -1
- package/dist/esm/getRouterInstance.js +1 -1
- package/dist/esm/getRouterInstance.js.map +1 -1
- package/dist/esm/getServerContextAfterGlobalMiddlewares.d.ts +1 -0
- package/dist/esm/getServerContextAfterGlobalMiddlewares.js +10 -0
- package/dist/esm/getServerContextAfterGlobalMiddlewares.js.map +1 -0
- package/dist/esm/getStartOptions.d.ts +1 -0
- package/dist/esm/getStartOptions.js +7 -0
- package/dist/esm/getStartOptions.js.map +1 -0
- package/dist/esm/global.d.ts +7 -0
- package/dist/esm/index.d.ts +11 -6
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/serverRoute.d.ts +66 -0
- package/dist/esm/startEntry.d.ts +8 -0
- package/package.json +18 -5
- package/src/{serializer → client}/ServerFunctionSerializationAdapter.ts +2 -2
- package/src/{createClientRpc.ts → client/createClientRpc.ts} +5 -3
- package/src/client/hydrateStart.ts +33 -0
- package/src/client/index.ts +3 -0
- package/src/{serverFnFetcher.ts → client/serverFnFetcher.ts} +11 -16
- package/src/constants.ts +3 -0
- package/src/createMiddleware.ts +269 -255
- package/src/createServerFn.ts +277 -290
- package/src/createStart.ts +122 -0
- package/src/fake-start-entry.ts +4 -0
- package/src/getDefaultSerovalPlugins.ts +17 -0
- package/src/getGlobalStartContext.ts +18 -0
- package/src/getRouterInstance.ts +5 -4
- package/src/getServerContextAfterGlobalMiddlewares.ts +7 -0
- package/src/getStartOptions.ts +6 -0
- package/src/global.ts +9 -0
- package/src/index.tsx +12 -11
- package/src/serverRoute.ts +474 -0
- package/src/start-entry.d.ts +11 -0
- package/src/startEntry.ts +10 -0
- package/src/tests/createServerFn.test-d.ts +147 -123
- package/src/tests/createServerMiddleware.test-d.ts +22 -17
- package/dist/esm/createClientRpc.d.ts +0 -6
- package/dist/esm/createClientRpc.js.map +0 -1
- package/dist/esm/registerGlobalMiddleware.d.ts +0 -5
- package/dist/esm/registerGlobalMiddleware.js +0 -9
- package/dist/esm/registerGlobalMiddleware.js.map +0 -1
- package/dist/esm/serializer/ServerFunctionSerializationAdapter.js.map +0 -1
- package/dist/esm/serializer/getClientSerovalPlugins.d.ts +0 -3
- package/dist/esm/serializer/getClientSerovalPlugins.js +0 -13
- package/dist/esm/serializer/getClientSerovalPlugins.js.map +0 -1
- package/dist/esm/serializer/getDefaultSerovalPlugins.d.ts +0 -3
- package/dist/esm/serializer/getDefaultSerovalPlugins.js +0 -19
- package/dist/esm/serializer/getDefaultSerovalPlugins.js.map +0 -1
- package/dist/esm/serverFnFetcher.js.map +0 -1
- package/src/registerGlobalMiddleware.ts +0 -9
- package/src/serializer/getClientSerovalPlugins.ts +0 -10
- package/src/serializer/getDefaultSerovalPlugins.ts +0 -24
- /package/dist/esm/{serializer → client}/ServerFunctionSerializationAdapter.d.ts +0 -0
- /package/dist/esm/{serverFnFetcher.d.ts → client/serverFnFetcher.d.ts} +0 -0
package/src/createMiddleware.ts
CHANGED
|
@@ -1,50 +1,34 @@
|
|
|
1
|
+
import type { StartInstanceOptions } from './createStart'
|
|
2
|
+
import type { AnyServerFn, ConstrainValidator, Method } from './createServerFn'
|
|
1
3
|
import type {
|
|
2
|
-
|
|
3
|
-
Method,
|
|
4
|
-
ServerFnResponseType,
|
|
5
|
-
} from './createServerFn'
|
|
6
|
-
import type {
|
|
7
|
-
AnyRouter,
|
|
4
|
+
AnyContext,
|
|
8
5
|
Assign,
|
|
9
6
|
Constrain,
|
|
10
7
|
Expand,
|
|
11
8
|
IntersectAssign,
|
|
12
9
|
Register,
|
|
13
|
-
RegisteredRouter,
|
|
14
10
|
ResolveValidatorInput,
|
|
15
11
|
ResolveValidatorOutput,
|
|
16
12
|
ValidateSerializableInput,
|
|
17
13
|
} from '@tanstack/router-core'
|
|
18
14
|
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
>(
|
|
23
|
-
options: {
|
|
24
|
-
type: TType
|
|
25
|
-
validateClient?: boolean
|
|
15
|
+
export type CreateMiddlewareFn<TRegister> = <TType extends MiddlewareType>(
|
|
16
|
+
options?: {
|
|
17
|
+
type?: TType
|
|
26
18
|
},
|
|
27
19
|
__opts?: FunctionMiddlewareOptions<
|
|
28
20
|
TRegister,
|
|
29
21
|
unknown,
|
|
30
22
|
undefined,
|
|
31
23
|
undefined,
|
|
32
|
-
undefined
|
|
33
|
-
ServerFnResponseType
|
|
24
|
+
undefined
|
|
34
25
|
>,
|
|
35
|
-
)
|
|
36
|
-
|
|
26
|
+
) => CreateMiddlewareResult<TRegister, TType>
|
|
27
|
+
|
|
28
|
+
export const createMiddleware: CreateMiddlewareFn<{}> = (options, __opts) => {
|
|
37
29
|
const resolvedOptions = {
|
|
38
|
-
type: '
|
|
39
|
-
...(__opts ||
|
|
40
|
-
(options as FunctionMiddlewareOptions<
|
|
41
|
-
TRegister,
|
|
42
|
-
unknown,
|
|
43
|
-
undefined,
|
|
44
|
-
undefined,
|
|
45
|
-
undefined,
|
|
46
|
-
ServerFnResponseType
|
|
47
|
-
>)),
|
|
30
|
+
type: 'request',
|
|
31
|
+
...(__opts || options),
|
|
48
32
|
}
|
|
49
33
|
|
|
50
34
|
return {
|
|
@@ -55,10 +39,10 @@ export function createMiddleware<
|
|
|
55
39
|
Object.assign(resolvedOptions, { middleware }),
|
|
56
40
|
) as any
|
|
57
41
|
},
|
|
58
|
-
|
|
42
|
+
inputValidator: (inputValidator: any) => {
|
|
59
43
|
return createMiddleware(
|
|
60
44
|
{} as any,
|
|
61
|
-
Object.assign(resolvedOptions, {
|
|
45
|
+
Object.assign(resolvedOptions, { inputValidator }),
|
|
62
46
|
) as any
|
|
63
47
|
},
|
|
64
48
|
client: (client: any) => {
|
|
@@ -73,85 +57,61 @@ export function createMiddleware<
|
|
|
73
57
|
Object.assign(resolvedOptions, { server }),
|
|
74
58
|
) as any
|
|
75
59
|
},
|
|
76
|
-
} as
|
|
60
|
+
} as any
|
|
77
61
|
}
|
|
78
62
|
|
|
79
63
|
export type MiddlewareType = 'request' | 'function'
|
|
80
64
|
|
|
81
65
|
export type CreateMiddlewareResult<
|
|
82
|
-
TRegister
|
|
66
|
+
TRegister,
|
|
83
67
|
TType extends MiddlewareType,
|
|
84
|
-
> = '
|
|
85
|
-
?
|
|
86
|
-
:
|
|
87
|
-
|
|
88
|
-
export interface FunctionMiddleware<
|
|
89
|
-
TRegister
|
|
90
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
91
|
-
> extends FunctionMiddlewareAfterMiddleware<
|
|
92
|
-
TRegister,
|
|
93
|
-
unknown,
|
|
94
|
-
TServerFnResponseType
|
|
95
|
-
> {
|
|
68
|
+
> = 'request' extends TType
|
|
69
|
+
? RequestMiddleware<TRegister>
|
|
70
|
+
: FunctionMiddleware<TRegister>
|
|
71
|
+
|
|
72
|
+
export interface FunctionMiddleware<TRegister>
|
|
73
|
+
extends FunctionMiddlewareAfterMiddleware<TRegister, unknown> {
|
|
96
74
|
middleware: <const TNewMiddlewares = undefined>(
|
|
97
75
|
middlewares: Constrain<
|
|
98
76
|
TNewMiddlewares,
|
|
99
|
-
ReadonlyArray<AnyFunctionMiddleware>
|
|
77
|
+
ReadonlyArray<AnyRequestMiddleware | AnyFunctionMiddleware>
|
|
100
78
|
>,
|
|
101
|
-
) => FunctionMiddlewareAfterMiddleware<
|
|
102
|
-
TRegister,
|
|
103
|
-
TNewMiddlewares,
|
|
104
|
-
TServerFnResponseType
|
|
105
|
-
>
|
|
79
|
+
) => FunctionMiddlewareAfterMiddleware<TRegister, TNewMiddlewares>
|
|
106
80
|
}
|
|
107
81
|
|
|
108
|
-
export interface FunctionMiddlewareAfterMiddleware<
|
|
109
|
-
|
|
110
|
-
TMiddlewares,
|
|
111
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
112
|
-
> extends FunctionMiddlewareWithTypes<
|
|
82
|
+
export interface FunctionMiddlewareAfterMiddleware<TRegister, TMiddlewares>
|
|
83
|
+
extends FunctionMiddlewareWithTypes<
|
|
113
84
|
TRegister,
|
|
114
85
|
TMiddlewares,
|
|
115
86
|
undefined,
|
|
116
87
|
undefined,
|
|
117
88
|
undefined,
|
|
118
89
|
undefined,
|
|
119
|
-
undefined
|
|
120
|
-
TServerFnResponseType
|
|
90
|
+
undefined
|
|
121
91
|
>,
|
|
122
92
|
FunctionMiddlewareServer<
|
|
123
93
|
TRegister,
|
|
124
94
|
TMiddlewares,
|
|
125
95
|
undefined,
|
|
126
96
|
undefined,
|
|
127
|
-
undefined
|
|
128
|
-
TServerFnResponseType
|
|
129
|
-
>,
|
|
130
|
-
FunctionMiddlewareClient<
|
|
131
|
-
TRegister,
|
|
132
|
-
TMiddlewares,
|
|
133
|
-
undefined,
|
|
134
|
-
TServerFnResponseType
|
|
97
|
+
undefined
|
|
135
98
|
>,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
TMiddlewares,
|
|
139
|
-
TServerFnResponseType
|
|
140
|
-
> {}
|
|
99
|
+
FunctionMiddlewareClient<TRegister, TMiddlewares, undefined>,
|
|
100
|
+
FunctionMiddlewareValidator<TRegister, TMiddlewares> {}
|
|
141
101
|
|
|
142
102
|
export interface FunctionMiddlewareWithTypes<
|
|
143
|
-
TRegister
|
|
103
|
+
TRegister,
|
|
144
104
|
TMiddlewares,
|
|
145
|
-
|
|
105
|
+
TInputValidator,
|
|
146
106
|
TServerContext,
|
|
147
107
|
TServerSendContext,
|
|
148
108
|
TClientContext,
|
|
149
109
|
TClientSendContext,
|
|
150
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
151
110
|
> {
|
|
152
111
|
_types: FunctionMiddlewareTypes<
|
|
112
|
+
TRegister,
|
|
153
113
|
TMiddlewares,
|
|
154
|
-
|
|
114
|
+
TInputValidator,
|
|
155
115
|
TServerContext,
|
|
156
116
|
TServerSendContext,
|
|
157
117
|
TClientContext,
|
|
@@ -160,16 +120,16 @@ export interface FunctionMiddlewareWithTypes<
|
|
|
160
120
|
options: FunctionMiddlewareOptions<
|
|
161
121
|
TRegister,
|
|
162
122
|
TMiddlewares,
|
|
163
|
-
|
|
123
|
+
TInputValidator,
|
|
164
124
|
TServerContext,
|
|
165
|
-
TClientContext
|
|
166
|
-
TServerFnResponseType
|
|
125
|
+
TClientContext
|
|
167
126
|
>
|
|
168
127
|
}
|
|
169
128
|
|
|
170
129
|
export interface FunctionMiddlewareTypes<
|
|
130
|
+
in out TRegister,
|
|
171
131
|
in out TMiddlewares,
|
|
172
|
-
in out
|
|
132
|
+
in out TInputValidator,
|
|
173
133
|
in out TServerContext,
|
|
174
134
|
in out TServerSendContext,
|
|
175
135
|
in out TClientContext,
|
|
@@ -177,10 +137,10 @@ export interface FunctionMiddlewareTypes<
|
|
|
177
137
|
> {
|
|
178
138
|
type: 'function'
|
|
179
139
|
middlewares: TMiddlewares
|
|
180
|
-
input: ResolveValidatorInput<
|
|
181
|
-
allInput: IntersectAllValidatorInputs<TMiddlewares,
|
|
182
|
-
output: ResolveValidatorOutput<
|
|
183
|
-
allOutput: IntersectAllValidatorOutputs<TMiddlewares,
|
|
140
|
+
input: ResolveValidatorInput<TInputValidator>
|
|
141
|
+
allInput: IntersectAllValidatorInputs<TMiddlewares, TInputValidator>
|
|
142
|
+
output: ResolveValidatorOutput<TInputValidator>
|
|
143
|
+
allOutput: IntersectAllValidatorOutputs<TMiddlewares, TInputValidator>
|
|
184
144
|
clientContext: TClientContext
|
|
185
145
|
allClientContextBeforeNext: AssignAllClientContextBeforeNext<
|
|
186
146
|
TMiddlewares,
|
|
@@ -197,7 +157,8 @@ export interface FunctionMiddlewareTypes<
|
|
|
197
157
|
TMiddlewares,
|
|
198
158
|
TServerSendContext
|
|
199
159
|
>
|
|
200
|
-
allServerContext:
|
|
160
|
+
allServerContext: AssignAllServerFnContext<
|
|
161
|
+
TRegister,
|
|
201
162
|
TMiddlewares,
|
|
202
163
|
TServerSendContext,
|
|
203
164
|
TServerContext
|
|
@@ -207,30 +168,34 @@ export interface FunctionMiddlewareTypes<
|
|
|
207
168
|
TMiddlewares,
|
|
208
169
|
TClientSendContext
|
|
209
170
|
>
|
|
210
|
-
|
|
171
|
+
inputValidator: TInputValidator
|
|
211
172
|
}
|
|
212
173
|
|
|
213
174
|
/**
|
|
214
175
|
* Recursively resolve the input type produced by a sequence of middleware
|
|
215
176
|
*/
|
|
216
|
-
export type IntersectAllValidatorInputs<TMiddlewares,
|
|
217
|
-
unknown extends
|
|
218
|
-
?
|
|
219
|
-
:
|
|
177
|
+
export type IntersectAllValidatorInputs<TMiddlewares, TInputValidator> =
|
|
178
|
+
unknown extends TInputValidator
|
|
179
|
+
? TInputValidator
|
|
180
|
+
: TInputValidator extends undefined
|
|
220
181
|
? IntersectAllMiddleware<TMiddlewares, 'allInput'>
|
|
221
182
|
: IntersectAssign<
|
|
222
183
|
IntersectAllMiddleware<TMiddlewares, 'allInput'>,
|
|
223
|
-
ResolveValidatorInput<
|
|
184
|
+
ResolveValidatorInput<TInputValidator>
|
|
224
185
|
>
|
|
225
186
|
|
|
226
187
|
export type IntersectAllMiddleware<
|
|
227
188
|
TMiddlewares,
|
|
228
189
|
TType extends
|
|
229
190
|
| keyof AnyFunctionMiddleware['_types']
|
|
230
|
-
| keyof AnyRequestMiddleware['_types']
|
|
191
|
+
| keyof AnyRequestMiddleware['_types']
|
|
192
|
+
| keyof AnyServerFn['_types'],
|
|
231
193
|
TAcc = undefined,
|
|
232
194
|
> = TMiddlewares extends readonly [infer TMiddleware, ...infer TRest]
|
|
233
|
-
? TMiddleware extends
|
|
195
|
+
? TMiddleware extends
|
|
196
|
+
| AnyFunctionMiddleware
|
|
197
|
+
| AnyRequestMiddleware
|
|
198
|
+
| AnyServerFn
|
|
234
199
|
? IntersectAllMiddleware<
|
|
235
200
|
TRest,
|
|
236
201
|
TType,
|
|
@@ -249,21 +214,20 @@ export type AnyFunctionMiddleware = FunctionMiddlewareWithTypes<
|
|
|
249
214
|
any,
|
|
250
215
|
any,
|
|
251
216
|
any,
|
|
252
|
-
any,
|
|
253
217
|
any
|
|
254
218
|
>
|
|
255
219
|
|
|
256
220
|
/**
|
|
257
221
|
* Recursively merge the output type produced by a sequence of middleware
|
|
258
222
|
*/
|
|
259
|
-
export type IntersectAllValidatorOutputs<TMiddlewares,
|
|
260
|
-
unknown extends
|
|
261
|
-
?
|
|
262
|
-
:
|
|
223
|
+
export type IntersectAllValidatorOutputs<TMiddlewares, TInputValidator> =
|
|
224
|
+
unknown extends TInputValidator
|
|
225
|
+
? TInputValidator
|
|
226
|
+
: TInputValidator extends undefined
|
|
263
227
|
? IntersectAllMiddleware<TMiddlewares, 'allOutput'>
|
|
264
228
|
: IntersectAssign<
|
|
265
229
|
IntersectAllMiddleware<TMiddlewares, 'allOutput'>,
|
|
266
|
-
ResolveValidatorOutput<
|
|
230
|
+
ResolveValidatorOutput<TInputValidator>
|
|
267
231
|
>
|
|
268
232
|
|
|
269
233
|
/**
|
|
@@ -283,10 +247,14 @@ export type AssignAllMiddleware<
|
|
|
283
247
|
TMiddlewares,
|
|
284
248
|
TType extends
|
|
285
249
|
| keyof AnyFunctionMiddleware['_types']
|
|
286
|
-
| keyof AnyRequestMiddleware['_types']
|
|
250
|
+
| keyof AnyRequestMiddleware['_types']
|
|
251
|
+
| keyof AnyServerFn['_types'],
|
|
287
252
|
TAcc = undefined,
|
|
288
253
|
> = TMiddlewares extends readonly [infer TMiddleware, ...infer TRest]
|
|
289
|
-
? TMiddleware extends
|
|
254
|
+
? TMiddleware extends
|
|
255
|
+
| AnyFunctionMiddleware
|
|
256
|
+
| AnyRequestMiddleware
|
|
257
|
+
| AnyServerFn
|
|
290
258
|
? AssignAllMiddleware<
|
|
291
259
|
TRest,
|
|
292
260
|
TType,
|
|
@@ -316,10 +284,74 @@ export type AssignAllServerSendContext<
|
|
|
316
284
|
TSendContext
|
|
317
285
|
>
|
|
318
286
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
287
|
+
export type AssignAllServerRequestContext<
|
|
288
|
+
TRegister,
|
|
289
|
+
TMiddlewares,
|
|
290
|
+
TSendContext = undefined,
|
|
291
|
+
TServerContext = undefined,
|
|
292
|
+
> = Assign<
|
|
293
|
+
// Fetch Request Context
|
|
294
|
+
GlobalFetchRequestContext,
|
|
295
|
+
// AnyContext,
|
|
296
|
+
Assign<
|
|
297
|
+
GlobalServerRequestContext<TRegister>, // TODO: This enabled global middleware
|
|
298
|
+
// type inference, but creates a circular types issue. No idea how to fix this.
|
|
299
|
+
// AnyContext,
|
|
300
|
+
__AssignAllServerRequestContext<TMiddlewares, TSendContext, TServerContext>
|
|
301
|
+
>
|
|
302
|
+
>
|
|
303
|
+
|
|
304
|
+
// export type GlobalFetchRequestContext<TRegister> = AnyContext
|
|
305
|
+
export type GlobalFetchRequestContext = Register extends {
|
|
306
|
+
server: { requestContext: infer TRequestContext }
|
|
307
|
+
}
|
|
308
|
+
? TRequestContext
|
|
309
|
+
: AnyContext
|
|
310
|
+
|
|
311
|
+
export type GlobalServerRequestContext<TRegister> = TRegister extends {
|
|
312
|
+
config: StartInstanceOptions<any, any, infer TRequestMiddlewares, any>
|
|
313
|
+
}
|
|
314
|
+
? AssignAllMiddleware<TRequestMiddlewares, 'allServerContext'>
|
|
315
|
+
: AnyContext
|
|
316
|
+
|
|
317
|
+
type __AssignAllServerRequestContext<
|
|
318
|
+
TMiddlewares,
|
|
319
|
+
TSendContext = undefined,
|
|
320
|
+
TServerContext = undefined,
|
|
321
|
+
> = unknown extends TSendContext
|
|
322
|
+
? Assign<TSendContext, TServerContext>
|
|
323
|
+
: Assign<
|
|
324
|
+
AssignAllMiddleware<TMiddlewares, 'allServerContext'>,
|
|
325
|
+
Assign<TSendContext, TServerContext>
|
|
326
|
+
>
|
|
327
|
+
|
|
328
|
+
export type AssignAllServerFnContext<
|
|
329
|
+
TRegister,
|
|
330
|
+
TMiddlewares,
|
|
331
|
+
TSendContext = undefined,
|
|
332
|
+
TServerContext = undefined,
|
|
333
|
+
> = Assign<
|
|
334
|
+
GlobalFetchRequestContext,
|
|
335
|
+
Assign<
|
|
336
|
+
GlobalServerRequestContext<TRegister>, // TODO: This enabled global middleware
|
|
337
|
+
// type inference, but creates a circular types issue. No idea how to fix this.
|
|
338
|
+
// AnyContext,
|
|
339
|
+
Assign<
|
|
340
|
+
GlobalServerFnContext<TRegister>, // TODO: This enabled global middleware
|
|
341
|
+
// type inference, but creates a circular types issue. No idea how to fix this.
|
|
342
|
+
// AnyContext,/
|
|
343
|
+
__AssignAllServerFnContext<TMiddlewares, TSendContext, TServerContext>
|
|
344
|
+
>
|
|
345
|
+
>
|
|
346
|
+
>
|
|
347
|
+
|
|
348
|
+
type GlobalServerFnContext<TRegister> = TRegister extends {
|
|
349
|
+
config: StartInstanceOptions<any, any, any, infer TFunctionMiddlewares>
|
|
350
|
+
}
|
|
351
|
+
? AssignAllMiddleware<TFunctionMiddlewares, 'allServerContext'>
|
|
352
|
+
: AnyContext
|
|
353
|
+
|
|
354
|
+
type __AssignAllServerFnContext<
|
|
323
355
|
TMiddlewares,
|
|
324
356
|
TSendContext = undefined,
|
|
325
357
|
TServerContext = undefined,
|
|
@@ -341,39 +373,35 @@ export type AssignAllClientSendContext<
|
|
|
341
373
|
>
|
|
342
374
|
|
|
343
375
|
export interface FunctionMiddlewareOptions<
|
|
344
|
-
in out TRegister
|
|
376
|
+
in out TRegister,
|
|
345
377
|
in out TMiddlewares,
|
|
346
|
-
in out
|
|
378
|
+
in out TInputValidator,
|
|
347
379
|
in out TServerContext,
|
|
348
380
|
in out TClientContext,
|
|
349
|
-
in out TServerFnResponseType extends ServerFnResponseType,
|
|
350
381
|
> {
|
|
351
|
-
validateClient?: boolean
|
|
352
382
|
middleware?: TMiddlewares
|
|
353
|
-
|
|
383
|
+
inputValidator?: ConstrainValidator<TRegister, 'GET', TInputValidator>
|
|
354
384
|
client?: FunctionMiddlewareClientFn<
|
|
355
385
|
TRegister,
|
|
356
386
|
TMiddlewares,
|
|
357
|
-
|
|
387
|
+
TInputValidator,
|
|
358
388
|
TServerContext,
|
|
359
|
-
TClientContext
|
|
360
|
-
TServerFnResponseType
|
|
389
|
+
TClientContext
|
|
361
390
|
>
|
|
362
391
|
server?: FunctionMiddlewareServerFn<
|
|
363
392
|
TRegister,
|
|
364
393
|
TMiddlewares,
|
|
365
|
-
|
|
394
|
+
TInputValidator,
|
|
366
395
|
TServerContext,
|
|
367
396
|
unknown,
|
|
368
|
-
unknown
|
|
369
|
-
TServerFnResponseType
|
|
397
|
+
unknown
|
|
370
398
|
>
|
|
371
399
|
}
|
|
372
400
|
|
|
373
|
-
export type FunctionMiddlewareClientNextFn<
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
>
|
|
401
|
+
export type FunctionMiddlewareClientNextFn<TRegister, TMiddlewares> = <
|
|
402
|
+
TSendContext = undefined,
|
|
403
|
+
TNewClientContext = undefined,
|
|
404
|
+
>(ctx?: {
|
|
377
405
|
context?: TNewClientContext
|
|
378
406
|
sendContext?: ValidateSerializableInput<TRegister, TSendContext>
|
|
379
407
|
headers?: HeadersInit
|
|
@@ -382,77 +410,56 @@ export type FunctionMiddlewareClientNextFn<
|
|
|
382
410
|
>
|
|
383
411
|
|
|
384
412
|
export interface FunctionMiddlewareServer<
|
|
385
|
-
TRegister
|
|
413
|
+
TRegister,
|
|
386
414
|
TMiddlewares,
|
|
387
|
-
|
|
415
|
+
TInputValidator,
|
|
388
416
|
TServerSendContext,
|
|
389
417
|
TClientContext,
|
|
390
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
391
418
|
> {
|
|
392
419
|
server: <TNewServerContext = undefined, TSendContext = undefined>(
|
|
393
420
|
server: FunctionMiddlewareServerFn<
|
|
394
421
|
TRegister,
|
|
395
422
|
TMiddlewares,
|
|
396
|
-
|
|
423
|
+
TInputValidator,
|
|
397
424
|
TServerSendContext,
|
|
398
425
|
TNewServerContext,
|
|
399
|
-
TSendContext
|
|
400
|
-
TServerFnResponseType
|
|
426
|
+
TSendContext
|
|
401
427
|
>,
|
|
402
428
|
) => FunctionMiddlewareAfterServer<
|
|
403
429
|
TRegister,
|
|
404
430
|
TMiddlewares,
|
|
405
|
-
|
|
431
|
+
TInputValidator,
|
|
406
432
|
TNewServerContext,
|
|
407
433
|
TServerSendContext,
|
|
408
434
|
TClientContext,
|
|
409
|
-
TSendContext
|
|
410
|
-
ServerFnResponseType
|
|
435
|
+
TSendContext
|
|
411
436
|
>
|
|
412
437
|
}
|
|
413
438
|
|
|
414
439
|
export type FunctionMiddlewareServerFn<
|
|
415
|
-
TRegister
|
|
440
|
+
TRegister,
|
|
416
441
|
TMiddlewares,
|
|
417
|
-
|
|
442
|
+
TInputValidator,
|
|
418
443
|
TServerSendContext,
|
|
419
444
|
TNewServerContext,
|
|
420
445
|
TSendContext,
|
|
421
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
422
446
|
> = (
|
|
423
447
|
options: FunctionMiddlewareServerFnOptions<
|
|
424
448
|
TRegister,
|
|
425
449
|
TMiddlewares,
|
|
426
|
-
|
|
427
|
-
TServerSendContext
|
|
428
|
-
TServerFnResponseType
|
|
450
|
+
TInputValidator,
|
|
451
|
+
TServerSendContext
|
|
429
452
|
>,
|
|
430
453
|
) => FunctionMiddlewareServerFnResult<
|
|
454
|
+
TRegister,
|
|
431
455
|
TMiddlewares,
|
|
432
456
|
TServerSendContext,
|
|
433
457
|
TNewServerContext,
|
|
434
458
|
TSendContext
|
|
435
459
|
>
|
|
436
460
|
|
|
437
|
-
export interface RequestMiddlewareServerFnOptions<
|
|
438
|
-
in out TRegister extends Register,
|
|
439
|
-
in out TMiddlewares,
|
|
440
|
-
in out TServerSendContext,
|
|
441
|
-
> {
|
|
442
|
-
request: Request
|
|
443
|
-
context: Expand<AssignAllServerContext<TMiddlewares, TServerSendContext>>
|
|
444
|
-
next: FunctionMiddlewareServerNextFn<
|
|
445
|
-
TRegister,
|
|
446
|
-
TMiddlewares,
|
|
447
|
-
TServerSendContext
|
|
448
|
-
>
|
|
449
|
-
response: Response
|
|
450
|
-
method: Method
|
|
451
|
-
signal: AbortSignal
|
|
452
|
-
}
|
|
453
|
-
|
|
454
461
|
export type FunctionMiddlewareServerNextFn<
|
|
455
|
-
TRegister
|
|
462
|
+
TRegister,
|
|
456
463
|
TMiddlewares,
|
|
457
464
|
TServerSendContext,
|
|
458
465
|
> = <TNewServerContext = undefined, TSendContext = undefined>(ctx?: {
|
|
@@ -460,6 +467,7 @@ export type FunctionMiddlewareServerNextFn<
|
|
|
460
467
|
sendContext?: ValidateSerializableInput<TRegister, TSendContext>
|
|
461
468
|
}) => Promise<
|
|
462
469
|
FunctionServerResultWithContext<
|
|
470
|
+
TRegister,
|
|
463
471
|
TMiddlewares,
|
|
464
472
|
TServerSendContext,
|
|
465
473
|
TNewServerContext,
|
|
@@ -468,6 +476,7 @@ export type FunctionMiddlewareServerNextFn<
|
|
|
468
476
|
>
|
|
469
477
|
|
|
470
478
|
export type FunctionServerResultWithContext<
|
|
479
|
+
in out TRegister,
|
|
471
480
|
in out TMiddlewares,
|
|
472
481
|
in out TServerSendContext,
|
|
473
482
|
in out TServerContext,
|
|
@@ -479,26 +488,31 @@ export type FunctionServerResultWithContext<
|
|
|
479
488
|
sendContext: TSendContext
|
|
480
489
|
}
|
|
481
490
|
context: Expand<
|
|
482
|
-
|
|
491
|
+
AssignAllServerFnContext<
|
|
492
|
+
TRegister,
|
|
493
|
+
TMiddlewares,
|
|
494
|
+
TServerSendContext,
|
|
495
|
+
TServerContext
|
|
496
|
+
>
|
|
483
497
|
>
|
|
484
498
|
sendContext: Expand<AssignAllClientSendContext<TMiddlewares, TSendContext>>
|
|
485
499
|
}
|
|
486
500
|
|
|
487
501
|
export interface FunctionMiddlewareServerFnOptions<
|
|
488
|
-
in out TRegister
|
|
502
|
+
in out TRegister,
|
|
489
503
|
in out TMiddlewares,
|
|
490
|
-
in out
|
|
504
|
+
in out TInputValidator,
|
|
491
505
|
in out TServerSendContext,
|
|
492
|
-
in out TServerFnResponseType,
|
|
493
506
|
> {
|
|
494
|
-
data: Expand<IntersectAllValidatorOutputs<TMiddlewares,
|
|
495
|
-
context: Expand<
|
|
507
|
+
data: Expand<IntersectAllValidatorOutputs<TMiddlewares, TInputValidator>>
|
|
508
|
+
context: Expand<
|
|
509
|
+
AssignAllServerFnContext<TRegister, TMiddlewares, TServerSendContext>
|
|
510
|
+
>
|
|
496
511
|
next: FunctionMiddlewareServerNextFn<
|
|
497
512
|
TRegister,
|
|
498
513
|
TMiddlewares,
|
|
499
514
|
TServerSendContext
|
|
500
515
|
>
|
|
501
|
-
response: TServerFnResponseType
|
|
502
516
|
method: Method
|
|
503
517
|
filename: string
|
|
504
518
|
functionId: string
|
|
@@ -506,6 +520,7 @@ export interface FunctionMiddlewareServerFnOptions<
|
|
|
506
520
|
}
|
|
507
521
|
|
|
508
522
|
export type FunctionMiddlewareServerFnResult<
|
|
523
|
+
TRegister,
|
|
509
524
|
TMiddlewares,
|
|
510
525
|
TServerSendContext,
|
|
511
526
|
TServerContext,
|
|
@@ -513,6 +528,7 @@ export type FunctionMiddlewareServerFnResult<
|
|
|
513
528
|
> =
|
|
514
529
|
| Promise<
|
|
515
530
|
FunctionServerResultWithContext<
|
|
531
|
+
TRegister,
|
|
516
532
|
TMiddlewares,
|
|
517
533
|
TServerSendContext,
|
|
518
534
|
TServerContext,
|
|
@@ -520,6 +536,7 @@ export type FunctionMiddlewareServerFnResult<
|
|
|
520
536
|
>
|
|
521
537
|
>
|
|
522
538
|
| FunctionServerResultWithContext<
|
|
539
|
+
TRegister,
|
|
523
540
|
TMiddlewares,
|
|
524
541
|
TServerSendContext,
|
|
525
542
|
TServerContext,
|
|
@@ -527,67 +544,56 @@ export type FunctionMiddlewareServerFnResult<
|
|
|
527
544
|
>
|
|
528
545
|
|
|
529
546
|
export interface FunctionMiddlewareAfterServer<
|
|
530
|
-
TRegister
|
|
547
|
+
TRegister,
|
|
531
548
|
TMiddlewares,
|
|
532
|
-
|
|
549
|
+
TInputValidator,
|
|
533
550
|
TServerContext,
|
|
534
551
|
TServerSendContext,
|
|
535
552
|
TClientContext,
|
|
536
553
|
TClientSendContext,
|
|
537
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
538
554
|
> extends FunctionMiddlewareWithTypes<
|
|
539
555
|
TRegister,
|
|
540
556
|
TMiddlewares,
|
|
541
|
-
|
|
557
|
+
TInputValidator,
|
|
542
558
|
TServerContext,
|
|
543
559
|
TServerSendContext,
|
|
544
560
|
TClientContext,
|
|
545
|
-
TClientSendContext
|
|
546
|
-
TServerFnResponseType
|
|
561
|
+
TClientSendContext
|
|
547
562
|
> {}
|
|
548
563
|
|
|
549
564
|
export interface FunctionMiddlewareClient<
|
|
550
|
-
TRegister
|
|
565
|
+
TRegister,
|
|
551
566
|
TMiddlewares,
|
|
552
|
-
|
|
553
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
554
|
-
TRouter extends AnyRouter = RegisteredRouter,
|
|
567
|
+
TInputValidator,
|
|
555
568
|
> {
|
|
556
569
|
client: <TSendServerContext = undefined, TNewClientContext = undefined>(
|
|
557
570
|
client: FunctionMiddlewareClientFn<
|
|
558
571
|
TRegister,
|
|
559
572
|
TMiddlewares,
|
|
560
|
-
|
|
573
|
+
TInputValidator,
|
|
561
574
|
TSendServerContext,
|
|
562
|
-
TNewClientContext
|
|
563
|
-
TServerFnResponseType,
|
|
564
|
-
TRouter
|
|
575
|
+
TNewClientContext
|
|
565
576
|
>,
|
|
566
577
|
) => FunctionMiddlewareAfterClient<
|
|
567
578
|
TRegister,
|
|
568
579
|
TMiddlewares,
|
|
569
|
-
|
|
580
|
+
TInputValidator,
|
|
570
581
|
TSendServerContext,
|
|
571
|
-
TNewClientContext
|
|
572
|
-
ServerFnResponseType
|
|
582
|
+
TNewClientContext
|
|
573
583
|
>
|
|
574
584
|
}
|
|
575
585
|
|
|
576
586
|
export type FunctionMiddlewareClientFn<
|
|
577
|
-
TRegister
|
|
587
|
+
TRegister,
|
|
578
588
|
TMiddlewares,
|
|
579
|
-
|
|
589
|
+
TInputValidator,
|
|
580
590
|
TSendContext,
|
|
581
591
|
TClientContext,
|
|
582
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
583
|
-
TRouter extends AnyRouter = RegisteredRouter,
|
|
584
592
|
> = (
|
|
585
593
|
options: FunctionMiddlewareClientFnOptions<
|
|
586
594
|
TRegister,
|
|
587
595
|
TMiddlewares,
|
|
588
|
-
|
|
589
|
-
TServerFnResponseType,
|
|
590
|
-
TRouter
|
|
596
|
+
TInputValidator
|
|
591
597
|
>,
|
|
592
598
|
) => FunctionMiddlewareClientFnResult<
|
|
593
599
|
TMiddlewares,
|
|
@@ -596,22 +602,18 @@ export type FunctionMiddlewareClientFn<
|
|
|
596
602
|
>
|
|
597
603
|
|
|
598
604
|
export interface FunctionMiddlewareClientFnOptions<
|
|
599
|
-
in out TRegister
|
|
605
|
+
in out TRegister,
|
|
600
606
|
in out TMiddlewares,
|
|
601
|
-
in out
|
|
602
|
-
in out TServerFnResponseType extends ServerFnResponseType,
|
|
603
|
-
in out TRouter extends AnyRouter,
|
|
607
|
+
in out TInputValidator,
|
|
604
608
|
> {
|
|
605
|
-
data: Expand<IntersectAllValidatorInputs<TMiddlewares,
|
|
609
|
+
data: Expand<IntersectAllValidatorInputs<TMiddlewares, TInputValidator>>
|
|
606
610
|
context: Expand<AssignAllClientContextBeforeNext<TMiddlewares>>
|
|
607
611
|
sendContext: Expand<AssignAllServerSendContext<TMiddlewares>>
|
|
608
612
|
method: Method
|
|
609
|
-
response: TServerFnResponseType
|
|
610
613
|
signal: AbortSignal
|
|
611
614
|
next: FunctionMiddlewareClientNextFn<TRegister, TMiddlewares>
|
|
612
615
|
filename: string
|
|
613
616
|
functionId: string
|
|
614
|
-
router: TRouter
|
|
615
617
|
}
|
|
616
618
|
|
|
617
619
|
export type FunctionMiddlewareClientFnResult<
|
|
@@ -640,141 +642,153 @@ export type FunctionClientResultWithContext<
|
|
|
640
642
|
}
|
|
641
643
|
|
|
642
644
|
export interface FunctionMiddlewareAfterClient<
|
|
643
|
-
TRegister
|
|
645
|
+
TRegister,
|
|
644
646
|
TMiddlewares,
|
|
645
|
-
|
|
647
|
+
TInputValidator,
|
|
646
648
|
TServerSendContext,
|
|
647
649
|
TClientContext,
|
|
648
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
649
650
|
> extends FunctionMiddlewareWithTypes<
|
|
650
651
|
TRegister,
|
|
651
652
|
TMiddlewares,
|
|
652
|
-
|
|
653
|
+
TInputValidator,
|
|
653
654
|
undefined,
|
|
654
655
|
TServerSendContext,
|
|
655
656
|
TClientContext,
|
|
656
|
-
undefined
|
|
657
|
-
TServerFnResponseType
|
|
657
|
+
undefined
|
|
658
658
|
>,
|
|
659
659
|
FunctionMiddlewareServer<
|
|
660
660
|
TRegister,
|
|
661
661
|
TMiddlewares,
|
|
662
|
-
|
|
662
|
+
TInputValidator,
|
|
663
663
|
TServerSendContext,
|
|
664
|
-
TClientContext
|
|
665
|
-
TServerFnResponseType
|
|
664
|
+
TClientContext
|
|
666
665
|
> {}
|
|
667
666
|
|
|
668
|
-
export interface FunctionMiddlewareValidator<
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
> {
|
|
673
|
-
validator: <TNewValidator>(
|
|
674
|
-
input: ConstrainValidator<TRegister, TNewValidator>,
|
|
675
|
-
) => FunctionMiddlewareAfterValidator<
|
|
676
|
-
TRegister,
|
|
677
|
-
TMiddlewares,
|
|
678
|
-
TNewValidator,
|
|
679
|
-
TServerFnResponseType
|
|
680
|
-
>
|
|
667
|
+
export interface FunctionMiddlewareValidator<TRegister, TMiddlewares> {
|
|
668
|
+
inputValidator: <TNewValidator>(
|
|
669
|
+
inputValidator: ConstrainValidator<TRegister, 'GET', TNewValidator>,
|
|
670
|
+
) => FunctionMiddlewareAfterValidator<TRegister, TMiddlewares, TNewValidator>
|
|
681
671
|
}
|
|
682
672
|
|
|
683
673
|
export interface FunctionMiddlewareAfterValidator<
|
|
684
|
-
TRegister
|
|
674
|
+
TRegister,
|
|
685
675
|
TMiddlewares,
|
|
686
|
-
|
|
687
|
-
TServerFnResponseType extends ServerFnResponseType,
|
|
676
|
+
TInputValidator,
|
|
688
677
|
> extends FunctionMiddlewareWithTypes<
|
|
689
678
|
TRegister,
|
|
690
679
|
TMiddlewares,
|
|
691
|
-
|
|
692
|
-
undefined,
|
|
680
|
+
TInputValidator,
|
|
693
681
|
undefined,
|
|
694
682
|
undefined,
|
|
695
683
|
undefined,
|
|
696
|
-
|
|
684
|
+
undefined
|
|
697
685
|
>,
|
|
698
686
|
FunctionMiddlewareServer<
|
|
699
687
|
TRegister,
|
|
700
688
|
TMiddlewares,
|
|
701
|
-
|
|
689
|
+
TInputValidator,
|
|
702
690
|
undefined,
|
|
703
|
-
undefined
|
|
704
|
-
TServerFnResponseType
|
|
691
|
+
undefined
|
|
705
692
|
>,
|
|
706
|
-
FunctionMiddlewareClient<
|
|
707
|
-
TRegister,
|
|
708
|
-
TMiddlewares,
|
|
709
|
-
TValidator,
|
|
710
|
-
ServerFnResponseType
|
|
711
|
-
> {}
|
|
693
|
+
FunctionMiddlewareClient<TRegister, TMiddlewares, TInputValidator> {}
|
|
712
694
|
|
|
713
|
-
export interface RequestMiddleware
|
|
714
|
-
extends RequestMiddlewareAfterMiddleware<undefined> {
|
|
695
|
+
export interface RequestMiddleware<TRegister>
|
|
696
|
+
extends RequestMiddlewareAfterMiddleware<TRegister, undefined> {
|
|
715
697
|
middleware: <const TMiddlewares = undefined>(
|
|
716
698
|
middlewares: Constrain<TMiddlewares, ReadonlyArray<AnyRequestMiddleware>>,
|
|
717
|
-
) => RequestMiddlewareAfterMiddleware<TMiddlewares>
|
|
699
|
+
) => RequestMiddlewareAfterMiddleware<TRegister, TMiddlewares>
|
|
718
700
|
}
|
|
719
701
|
|
|
720
|
-
export type AnyRequestMiddleware = RequestMiddlewareWithTypes<any, any>
|
|
702
|
+
export type AnyRequestMiddleware = RequestMiddlewareWithTypes<any, any, any>
|
|
721
703
|
|
|
722
|
-
export interface RequestMiddlewareWithTypes<
|
|
723
|
-
|
|
704
|
+
export interface RequestMiddlewareWithTypes<
|
|
705
|
+
TRegister,
|
|
706
|
+
TMiddlewares,
|
|
707
|
+
TServerContext,
|
|
708
|
+
> {
|
|
709
|
+
_types: RequestMiddlewareTypes<TRegister, TMiddlewares, TServerContext>
|
|
710
|
+
options: RequestMiddlewareOptions<TRegister, TMiddlewares, TServerContext>
|
|
724
711
|
}
|
|
725
712
|
|
|
726
|
-
export interface
|
|
713
|
+
export interface RequestMiddlewareOptions<
|
|
714
|
+
in out TRegister,
|
|
715
|
+
in out TMiddlewares,
|
|
716
|
+
in out TServerContext,
|
|
717
|
+
> {
|
|
718
|
+
middleware?: TMiddlewares
|
|
719
|
+
server?: RequestServerFn<TRegister, TMiddlewares, TServerContext>
|
|
720
|
+
}
|
|
721
|
+
export interface RequestMiddlewareTypes<
|
|
722
|
+
TRegister,
|
|
723
|
+
TMiddlewares,
|
|
724
|
+
TServerContext,
|
|
725
|
+
> {
|
|
727
726
|
type: 'request'
|
|
728
727
|
middlewares: TMiddlewares
|
|
729
728
|
serverContext: TServerContext
|
|
730
|
-
allServerContext:
|
|
729
|
+
allServerContext: AssignAllServerRequestContext<
|
|
730
|
+
TRegister,
|
|
731
731
|
TMiddlewares,
|
|
732
732
|
undefined,
|
|
733
733
|
TServerContext
|
|
734
734
|
>
|
|
735
735
|
}
|
|
736
736
|
|
|
737
|
-
export interface RequestMiddlewareAfterMiddleware<TMiddlewares>
|
|
738
|
-
extends RequestMiddlewareWithTypes<TMiddlewares, undefined>,
|
|
739
|
-
RequestMiddlewareServer<TMiddlewares> {}
|
|
737
|
+
export interface RequestMiddlewareAfterMiddleware<TRegister, TMiddlewares>
|
|
738
|
+
extends RequestMiddlewareWithTypes<TRegister, TMiddlewares, undefined>,
|
|
739
|
+
RequestMiddlewareServer<TRegister, TMiddlewares> {}
|
|
740
740
|
|
|
741
|
-
export interface RequestMiddlewareServer<TMiddlewares> {
|
|
741
|
+
export interface RequestMiddlewareServer<TRegister, TMiddlewares> {
|
|
742
742
|
server: <TServerContext = undefined>(
|
|
743
|
-
fn: RequestServerFn<TMiddlewares, TServerContext>,
|
|
744
|
-
) => RequestMiddlewareAfterServer<TMiddlewares, TServerContext>
|
|
743
|
+
fn: RequestServerFn<TRegister, TMiddlewares, TServerContext>,
|
|
744
|
+
) => RequestMiddlewareAfterServer<TRegister, TMiddlewares, TServerContext>
|
|
745
745
|
}
|
|
746
746
|
|
|
747
|
-
export type RequestServerFn<TMiddlewares, TServerContext> = (
|
|
748
|
-
options: RequestServerOptions<TMiddlewares>,
|
|
749
|
-
) => RequestMiddlewareServerFnResult<TMiddlewares, TServerContext>
|
|
747
|
+
export type RequestServerFn<TRegister, TMiddlewares, TServerContext> = (
|
|
748
|
+
options: RequestServerOptions<TRegister, TMiddlewares>,
|
|
749
|
+
) => RequestMiddlewareServerFnResult<TRegister, TMiddlewares, TServerContext>
|
|
750
750
|
|
|
751
|
-
export interface RequestServerOptions<TMiddlewares> {
|
|
751
|
+
export interface RequestServerOptions<TRegister, TMiddlewares> {
|
|
752
752
|
request: Request
|
|
753
753
|
pathname: string
|
|
754
|
-
context:
|
|
755
|
-
next: RequestServerNextFn<TMiddlewares>
|
|
754
|
+
context: Expand<AssignAllServerRequestContext<TRegister, TMiddlewares>>
|
|
755
|
+
next: RequestServerNextFn<TRegister, TMiddlewares>
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
export type RequestServerNextFn<TMiddlewares> = <
|
|
758
|
+
export type RequestServerNextFn<TRegister, TMiddlewares> = <
|
|
759
|
+
TServerContext = undefined,
|
|
760
|
+
>(
|
|
759
761
|
options?: RequestServerNextFnOptions<TServerContext>,
|
|
760
|
-
) => RequestMiddlewareServerFnResult<TMiddlewares, TServerContext>
|
|
762
|
+
) => RequestMiddlewareServerFnResult<TRegister, TMiddlewares, TServerContext>
|
|
761
763
|
|
|
762
764
|
export interface RequestServerNextFnOptions<TServerContext> {
|
|
763
765
|
context?: TServerContext
|
|
764
766
|
}
|
|
765
767
|
|
|
766
|
-
export type RequestMiddlewareServerFnResult<
|
|
767
|
-
|
|
768
|
-
|
|
768
|
+
export type RequestMiddlewareServerFnResult<
|
|
769
|
+
TRegister,
|
|
770
|
+
TMiddlewares,
|
|
771
|
+
TServerContext,
|
|
772
|
+
> =
|
|
773
|
+
| Promise<RequestServerResult<TRegister, TMiddlewares, TServerContext>>
|
|
774
|
+
| RequestServerResult<TRegister, TMiddlewares, TServerContext>
|
|
769
775
|
|
|
770
|
-
export interface RequestServerResult<TMiddlewares, TServerContext> {
|
|
776
|
+
export interface RequestServerResult<TRegister, TMiddlewares, TServerContext> {
|
|
771
777
|
request: Request
|
|
772
778
|
pathname: string
|
|
773
779
|
context: Expand<
|
|
774
|
-
|
|
780
|
+
AssignAllServerRequestContext<
|
|
781
|
+
TRegister,
|
|
782
|
+
TMiddlewares,
|
|
783
|
+
undefined,
|
|
784
|
+
TServerContext
|
|
785
|
+
>
|
|
775
786
|
>
|
|
776
787
|
response: Response
|
|
777
788
|
}
|
|
778
789
|
|
|
779
|
-
export interface RequestMiddlewareAfterServer<
|
|
780
|
-
|
|
790
|
+
export interface RequestMiddlewareAfterServer<
|
|
791
|
+
TRegister,
|
|
792
|
+
TMiddlewares,
|
|
793
|
+
TServerContext,
|
|
794
|
+
> extends RequestMiddlewareWithTypes<TRegister, TMiddlewares, TServerContext> {}
|