@taserjs/router 0.0.1 → 0.0.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/README.md +2 -0
- package/dist/cjs/constants.cjs.map +1 -1
- package/dist/cjs/create-context.cjs.map +1 -1
- package/dist/cjs/define/handler.cjs.map +1 -1
- package/dist/cjs/define/middleware.cjs +5 -24
- package/dist/cjs/define/middleware.cjs.map +1 -1
- package/dist/cjs/define/middleware.d.cts +10 -79
- package/dist/cjs/define/validators.cjs.map +1 -1
- package/dist/cjs/factories.cjs.map +1 -1
- package/dist/cjs/factories.d.cts +2 -2
- package/dist/cjs/index.cjs +7 -2
- package/dist/cjs/index.d.cts +2 -2
- package/dist/cjs/middleware/body-limit.cjs +2 -2
- package/dist/cjs/middleware/body-limit.cjs.map +1 -1
- package/dist/cjs/middleware/compress.cjs +2 -2
- package/dist/cjs/middleware/compress.cjs.map +1 -1
- package/dist/cjs/middleware/cors.cjs +2 -2
- package/dist/cjs/middleware/cors.cjs.map +1 -1
- package/dist/cjs/middleware/csrf.cjs +2 -2
- package/dist/cjs/middleware/csrf.cjs.map +1 -1
- package/dist/cjs/middleware/etag.cjs +2 -2
- package/dist/cjs/middleware/etag.cjs.map +1 -1
- package/dist/cjs/middleware/jwk.cjs +11 -4
- package/dist/cjs/middleware/jwk.cjs.map +1 -1
- package/dist/cjs/middleware/jwk.d.cts +4 -5
- package/dist/cjs/middleware/jwt.cjs +11 -5
- package/dist/cjs/middleware/jwt.cjs.map +1 -1
- package/dist/cjs/middleware/jwt.d.cts +7 -5
- package/dist/cjs/middleware/secure-headers.cjs +2 -2
- package/dist/cjs/middleware/secure-headers.cjs.map +1 -1
- package/dist/cjs/middleware/timing.cjs +2 -2
- package/dist/cjs/middleware/timing.cjs.map +1 -1
- package/dist/cjs/middleware/wrap-hono.cjs +9 -0
- package/dist/cjs/middleware/wrap-hono.cjs.map +1 -0
- package/dist/cjs/middleware/wrap-hono.d.cts +3 -0
- package/dist/cjs/middleware.cjs.map +1 -1
- package/dist/cjs/reply.cjs +20 -0
- package/dist/cjs/reply.d.cts +2 -0
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +1 -1
- package/dist/cjs/stream.cjs +32 -0
- package/dist/cjs/stream.d.cts +1 -0
- package/dist/cjs/taser-app.cjs +0 -6
- package/dist/cjs/taser-app.cjs.map +1 -1
- package/dist/cjs/taser-app.d.cts +0 -3
- package/dist/cjs/taser-router.cjs +9 -10
- package/dist/cjs/taser-router.cjs.map +1 -1
- package/dist/cjs/taser-router.d.cts +9 -11
- package/dist/cjs/types/app.d.cts +3 -2
- package/dist/cjs/types/index.d.cts +53 -139
- package/dist/cjs/types/type-utils.d.cts +8 -11
- package/dist/cjs/types/units.cjs.map +1 -1
- package/dist/cjs/types/units.d.cts +27 -24
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/create-context.js.map +1 -1
- package/dist/esm/define/handler.js.map +1 -1
- package/dist/esm/define/middleware.d.ts +10 -79
- package/dist/esm/define/middleware.js +5 -24
- package/dist/esm/define/middleware.js.map +1 -1
- package/dist/esm/define/validators.js.map +1 -1
- package/dist/esm/factories.d.ts +2 -2
- package/dist/esm/factories.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/middleware/body-limit.js +1 -1
- package/dist/esm/middleware/body-limit.js.map +1 -1
- package/dist/esm/middleware/compress.js +1 -1
- package/dist/esm/middleware/compress.js.map +1 -1
- package/dist/esm/middleware/cors.js +1 -1
- package/dist/esm/middleware/cors.js.map +1 -1
- package/dist/esm/middleware/csrf.js +1 -1
- package/dist/esm/middleware/csrf.js.map +1 -1
- package/dist/esm/middleware/etag.js +1 -1
- package/dist/esm/middleware/etag.js.map +1 -1
- package/dist/esm/middleware/jwk.d.ts +4 -5
- package/dist/esm/middleware/jwk.js +11 -4
- package/dist/esm/middleware/jwk.js.map +1 -1
- package/dist/esm/middleware/jwt.d.ts +7 -5
- package/dist/esm/middleware/jwt.js +11 -5
- package/dist/esm/middleware/jwt.js.map +1 -1
- package/dist/esm/middleware/secure-headers.js +1 -1
- package/dist/esm/middleware/secure-headers.js.map +1 -1
- package/dist/esm/middleware/timing.js +1 -1
- package/dist/esm/middleware/timing.js.map +1 -1
- package/dist/esm/middleware/wrap-hono.d.ts +3 -0
- package/dist/esm/middleware/wrap-hono.js +9 -0
- package/dist/esm/middleware/wrap-hono.js.map +1 -0
- package/dist/esm/middleware.js.map +1 -1
- package/dist/esm/reply.d.ts +2 -0
- package/dist/esm/reply.js +2 -0
- package/dist/esm/route.d.ts +1 -1
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/stream.d.ts +1 -0
- package/dist/esm/stream.js +2 -0
- package/dist/esm/taser-app.d.ts +0 -3
- package/dist/esm/taser-app.js +1 -6
- package/dist/esm/taser-app.js.map +1 -1
- package/dist/esm/taser-router.d.ts +9 -11
- package/dist/esm/taser-router.js +7 -8
- package/dist/esm/taser-router.js.map +1 -1
- package/dist/esm/types/app.d.ts +3 -2
- package/dist/esm/types/index.d.ts +53 -139
- package/dist/esm/types/type-utils.d.ts +8 -11
- package/dist/esm/types/units.d.ts +27 -24
- package/dist/esm/types/units.js.map +1 -1
- package/package.json +37 -17
- package/src/constants.ts +6 -6
- package/src/create-context.ts +8 -8
- package/src/define/handler.ts +24 -34
- package/src/define/middleware.ts +66 -256
- package/src/define/validators.ts +10 -10
- package/src/factories.ts +63 -61
- package/src/index.ts +13 -12
- package/src/middleware/body-limit.ts +5 -5
- package/src/middleware/compress.ts +5 -5
- package/src/middleware/cors.ts +5 -5
- package/src/middleware/csrf.ts +5 -5
- package/src/middleware/etag.ts +5 -5
- package/src/middleware/jwk.ts +33 -26
- package/src/middleware/jwt.ts +26 -10
- package/src/middleware/secure-headers.ts +5 -5
- package/src/middleware/timing.ts +5 -5
- package/src/middleware/wrap-hono.ts +12 -0
- package/src/middleware.ts +7 -7
- package/src/reply.ts +11 -0
- package/src/route.ts +45 -48
- package/src/stream.ts +1 -0
- package/src/taser-app.ts +13 -18
- package/src/taser-router.ts +103 -98
- package/src/types/app.ts +33 -35
- package/src/types/index.ts +299 -722
- package/src/types/returns.ts +92 -97
- package/src/types/schema.ts +8 -9
- package/src/types/type-utils.ts +42 -46
- package/src/types/units.ts +135 -104
- package/dist/cjs/middleware/auth.cjs +0 -34
- package/dist/cjs/middleware/auth.cjs.map +0 -1
- package/dist/cjs/middleware/auth.d.cts +0 -9
- package/dist/esm/middleware/auth.d.ts +0 -9
- package/dist/esm/middleware/auth.js +0 -33
- package/dist/esm/middleware/auth.js.map +0 -1
- package/src/middleware/auth.ts +0 -51
package/src/types/returns.ts
CHANGED
|
@@ -1,89 +1,86 @@
|
|
|
1
|
-
import type { ReplyOf } from
|
|
1
|
+
import type { ReplyOf } from "@taserjs/router-utils";
|
|
2
2
|
|
|
3
|
-
import type { Simplify } from
|
|
4
|
-
import type { Schema } from
|
|
5
|
-
import type { InferOutput } from
|
|
3
|
+
import type { Simplify } from "./type-utils.js";
|
|
4
|
+
import type { Schema } from "./schema.js";
|
|
5
|
+
import type { InferOutput } from "./schema.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Known HTTP status codes. `number & {}` allows custom codes while keeping
|
|
9
9
|
* literal autocomplete / inference for well-known values.
|
|
10
10
|
*/
|
|
11
|
-
export type StatusCode
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
11
|
+
export type StatusCode =
|
|
12
|
+
| 100
|
|
13
|
+
| 101
|
|
14
|
+
| 102
|
|
15
|
+
| 103
|
|
16
|
+
| 200
|
|
17
|
+
| 201
|
|
18
|
+
| 202
|
|
19
|
+
| 203
|
|
20
|
+
| 204
|
|
21
|
+
| 205
|
|
22
|
+
| 206
|
|
23
|
+
| 207
|
|
24
|
+
| 208
|
|
25
|
+
| 226
|
|
26
|
+
| 300
|
|
27
|
+
| 301
|
|
28
|
+
| 302
|
|
29
|
+
| 303
|
|
30
|
+
| 304
|
|
31
|
+
| 305
|
|
32
|
+
| 306
|
|
33
|
+
| 307
|
|
34
|
+
| 308
|
|
35
|
+
| 400
|
|
36
|
+
| 401
|
|
37
|
+
| 402
|
|
38
|
+
| 403
|
|
39
|
+
| 404
|
|
40
|
+
| 405
|
|
41
|
+
| 406
|
|
42
|
+
| 407
|
|
43
|
+
| 408
|
|
44
|
+
| 409
|
|
45
|
+
| 410
|
|
46
|
+
| 411
|
|
47
|
+
| 412
|
|
48
|
+
| 413
|
|
49
|
+
| 414
|
|
50
|
+
| 415
|
|
51
|
+
| 416
|
|
52
|
+
| 417
|
|
53
|
+
| 418
|
|
54
|
+
| 421
|
|
55
|
+
| 422
|
|
56
|
+
| 423
|
|
57
|
+
| 424
|
|
58
|
+
| 425
|
|
59
|
+
| 426
|
|
60
|
+
| 428
|
|
61
|
+
| 429
|
|
62
|
+
| 431
|
|
63
|
+
| 451
|
|
64
|
+
| 500
|
|
65
|
+
| 501
|
|
66
|
+
| 502
|
|
67
|
+
| 503
|
|
68
|
+
| 504
|
|
69
|
+
| 505
|
|
70
|
+
| 506
|
|
71
|
+
| 507
|
|
72
|
+
| 508
|
|
73
|
+
| 510
|
|
74
|
+
| 511
|
|
75
|
+
| (number & {});
|
|
76
76
|
|
|
77
77
|
/** Status-code → Standard Schema map for route/middleware/handler outputs. */
|
|
78
78
|
export type ReturnsMap = {
|
|
79
|
-
readonly [K in StatusCode]?: Schema<unknown
|
|
80
|
-
}
|
|
79
|
+
readonly [K in StatusCode]?: Schema<unknown>;
|
|
80
|
+
};
|
|
81
81
|
|
|
82
82
|
/** Later map wins on overlapping status keys. */
|
|
83
|
-
export type MergeReturns<
|
|
84
|
-
A extends ReturnsMap,
|
|
85
|
-
B extends ReturnsMap,
|
|
86
|
-
> = Omit<A, keyof B> & B
|
|
83
|
+
export type MergeReturns<A extends ReturnsMap, B extends ReturnsMap> = Omit<A, keyof B> & B;
|
|
87
84
|
|
|
88
85
|
/** Typed reply union for statuses declared in a returns map. */
|
|
89
86
|
export type ReplyResultFor<M extends ReturnsMap> = {
|
|
@@ -91,45 +88,43 @@ export type ReplyResultFor<M extends ReturnsMap> = {
|
|
|
91
88
|
? M[S] extends Schema<unknown>
|
|
92
89
|
? ReplyOf<S, Simplify<InferOutput<M[S]>>>
|
|
93
90
|
: never
|
|
94
|
-
: never
|
|
95
|
-
}[keyof M]
|
|
91
|
+
: never;
|
|
92
|
+
}[keyof M];
|
|
96
93
|
|
|
97
|
-
export type EmptyReturns = {}
|
|
94
|
+
export type EmptyReturns = {};
|
|
98
95
|
|
|
99
96
|
/** True when no status schemas have been declared yet. */
|
|
100
|
-
export type HasReturns<M extends ReturnsMap> = [keyof M] extends [never] ? false : true
|
|
97
|
+
export type HasReturns<M extends ReturnsMap> = [keyof M] extends [never] ? false : true;
|
|
101
98
|
|
|
102
99
|
/**
|
|
103
100
|
* Validate a concrete reply `R` against returns map `M`.
|
|
104
101
|
* Declared statuses must match schema output; undeclared statuses stay open
|
|
105
102
|
* (same rule as runtime `validateReply`).
|
|
106
103
|
*/
|
|
107
|
-
export type ValidHandlerReply<R, M extends ReturnsMap> =
|
|
108
|
-
|
|
109
|
-
?
|
|
110
|
-
?
|
|
111
|
-
?
|
|
112
|
-
|
|
104
|
+
export type ValidHandlerReply<R, M extends ReturnsMap> =
|
|
105
|
+
R extends ReplyOf<infer S, infer B>
|
|
106
|
+
? S extends keyof M
|
|
107
|
+
? M[S] extends Schema<unknown>
|
|
108
|
+
? B extends Simplify<InferOutput<M[S]>>
|
|
109
|
+
? R
|
|
110
|
+
: never
|
|
111
|
+
: R
|
|
113
112
|
: R
|
|
114
|
-
: R
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
: never
|
|
113
|
+
: R extends Response
|
|
114
|
+
? R
|
|
115
|
+
: never;
|
|
118
116
|
|
|
119
117
|
/**
|
|
120
118
|
* Narrow a handler return so declared statuses are schema-checked without
|
|
121
119
|
* breaking multi-status unions (avoids circular `R extends …<R>` constraints).
|
|
122
120
|
*/
|
|
123
|
-
export type EnforceHandlerReply<R, M extends ReturnsMap>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
: ValidHandlerReply<R, M>
|
|
121
|
+
export type EnforceHandlerReply<R, M extends ReturnsMap> = [R] extends [ValidHandlerReply<R, M>]
|
|
122
|
+
? R
|
|
123
|
+
: ValidHandlerReply<R, M>;
|
|
127
124
|
|
|
128
125
|
/**
|
|
129
126
|
* Expected `.handler` return type for a returns map.
|
|
130
127
|
* Prefer constraining handler generics with {@link EnforceHandlerReply}.
|
|
131
128
|
*/
|
|
132
|
-
export type HandlerReply<M extends ReturnsMap>
|
|
133
|
-
|
|
134
|
-
? ReplyResultFor<M> | Response
|
|
135
|
-
: Response
|
|
129
|
+
export type HandlerReply<M extends ReturnsMap> =
|
|
130
|
+
HasReturns<M> extends true ? ReplyResultFor<M> | Response : Response;
|
package/src/types/schema.ts
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import type { StandardSchemaV1 } from
|
|
1
|
+
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
2
|
|
|
3
|
-
import type { RequestShape } from
|
|
3
|
+
import type { RequestShape } from "./type-utils.js";
|
|
4
4
|
|
|
5
|
-
export type { StandardSchemaV1 } from
|
|
5
|
+
export type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* A Standard Schema validator.
|
|
9
9
|
* `TOutput` is the validated/output type; `TInput` is the pre-parse input (request shape).
|
|
10
10
|
*/
|
|
11
|
-
export type Schema<TOutput = unknown, TInput = unknown> = StandardSchemaV1<TInput, TOutput
|
|
11
|
+
export type Schema<TOutput = unknown, TInput = unknown> = StandardSchemaV1<TInput, TOutput>;
|
|
12
12
|
|
|
13
13
|
/** Infers the output type from a Standard Schema. */
|
|
14
|
-
export type InferOutput<S> = S extends StandardSchemaV1<unknown, infer O> ? O : never
|
|
14
|
+
export type InferOutput<S> = S extends StandardSchemaV1<unknown, infer O> ? O : never;
|
|
15
15
|
|
|
16
16
|
/** Infers the input type from a Standard Schema. */
|
|
17
|
-
export type InferInput<S> = S extends StandardSchemaV1<infer I, unknown> ? I : never
|
|
17
|
+
export type InferInput<S> = S extends StandardSchemaV1<infer I, unknown> ? I : never;
|
|
18
18
|
|
|
19
19
|
/** Pre-parse request shape from a Standard Schema. */
|
|
20
|
-
export type SchemaRequestShape<S> =
|
|
21
|
-
? RequestShape<I, O>
|
|
22
|
-
: S
|
|
20
|
+
export type SchemaRequestShape<S> =
|
|
21
|
+
S extends StandardSchemaV1<infer I, infer O> ? RequestShape<I, O> : S;
|
package/src/types/type-utils.ts
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
export type Method =
|
|
2
|
-
export type HttpMethod = Method
|
|
1
|
+
export type Method = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
|
|
2
|
+
export type HttpMethod = Method;
|
|
3
3
|
|
|
4
|
-
export type MiddlewareFieldName
|
|
5
|
-
= | 'query'
|
|
6
|
-
| 'params'
|
|
7
|
-
| 'body'
|
|
8
|
-
| 'state'
|
|
9
|
-
| 'ctx'
|
|
4
|
+
export type MiddlewareFieldName = "query" | "params" | "body" | "state";
|
|
10
5
|
|
|
11
|
-
export type MiddlewareInputFieldName =
|
|
6
|
+
export type MiddlewareInputFieldName = "query" | "params" | "body";
|
|
12
7
|
|
|
13
|
-
export type UnwrapPart<T> = unknown extends T ? {} : T
|
|
8
|
+
export type UnwrapPart<T> = unknown extends T ? {} : T;
|
|
14
9
|
|
|
15
|
-
export type MergePart<T, Base> = unknown extends T ? Base : Base & T
|
|
10
|
+
export type MergePart<T, Base> = unknown extends T ? Base : Base & T;
|
|
16
11
|
|
|
17
12
|
/** Collapse intersections so `Omit`/`keyof` treat the result as one object type. */
|
|
18
|
-
export type Simplify<T> = { [K in keyof T]: T[K] } & {}
|
|
13
|
+
export type Simplify<T> = { [K in keyof T]: T[K] } & {};
|
|
19
14
|
|
|
20
15
|
/**
|
|
21
16
|
* Request prop: when schema input is `unknown` (e.g. zod coerce),
|
|
22
17
|
* fall back to the validated output type.
|
|
23
18
|
*/
|
|
24
|
-
type RequestPropType<TIn, TOut> = [unknown] extends [Exclude<TIn, undefined>]
|
|
25
|
-
? TOut
|
|
26
|
-
: TIn
|
|
19
|
+
type RequestPropType<TIn, TOut> = [unknown] extends [Exclude<TIn, undefined>] ? TOut : TIn;
|
|
27
20
|
|
|
28
21
|
/**
|
|
29
22
|
* Pre-parse request shape. Prefer input types (defaults → optional),
|
|
@@ -32,55 +25,58 @@ type RequestPropType<TIn, TOut> = [unknown] extends [Exclude<TIn, undefined>]
|
|
|
32
25
|
export type RequestShape<TIn, TOut> = unknown extends TIn
|
|
33
26
|
? UnwrapPart<TOut>
|
|
34
27
|
: Simplify<{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
: TIn[K]
|
|
38
|
-
}>
|
|
28
|
+
[K in keyof TIn]: K extends keyof TOut ? RequestPropType<TIn[K], TOut[K]> : TIn[K];
|
|
29
|
+
}>;
|
|
39
30
|
|
|
40
|
-
export type UnionToIntersection<U>
|
|
41
|
-
|
|
31
|
+
export type UnionToIntersection<U> = (U extends unknown ? (value: U) => void : never) extends (
|
|
32
|
+
value: infer Value,
|
|
33
|
+
) => void
|
|
34
|
+
? Value
|
|
35
|
+
: never;
|
|
42
36
|
|
|
43
|
-
export type MiddlewareField<
|
|
44
|
-
Middleware
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
?
|
|
54
|
-
:
|
|
55
|
-
|
|
37
|
+
export type MiddlewareField<Middleware, Field extends MiddlewareFieldName> = Field extends "query"
|
|
38
|
+
? Middleware extends { query: infer Query }
|
|
39
|
+
? Query
|
|
40
|
+
: {}
|
|
41
|
+
: Field extends "params"
|
|
42
|
+
? Middleware extends { params: infer Params }
|
|
43
|
+
? Params
|
|
44
|
+
: {}
|
|
45
|
+
: Field extends "body"
|
|
46
|
+
? Middleware extends { body: infer Body }
|
|
47
|
+
? Body
|
|
48
|
+
: {}
|
|
49
|
+
: Field extends "state"
|
|
50
|
+
? Middleware extends { state: infer State }
|
|
51
|
+
? State
|
|
56
52
|
: {}
|
|
53
|
+
: {};
|
|
57
54
|
|
|
58
55
|
export type MiddlewareInputField<
|
|
59
56
|
Middleware,
|
|
60
57
|
Field extends MiddlewareInputFieldName,
|
|
61
|
-
> = Middleware extends { input: { [K in Field]: infer V } } ? V : {}
|
|
58
|
+
> = Middleware extends { input: { [K in Field]: infer V } } ? V : {};
|
|
62
59
|
|
|
63
60
|
export type MergeMiddlewareField<
|
|
64
61
|
Middlewares extends readonly unknown[],
|
|
65
62
|
Field extends MiddlewareFieldName,
|
|
66
63
|
> = [Middlewares] extends [readonly []]
|
|
67
64
|
? {}
|
|
68
|
-
: UnionToIntersection<MiddlewareField<Middlewares[number], Field
|
|
65
|
+
: UnionToIntersection<MiddlewareField<Middlewares[number], Field>>;
|
|
69
66
|
|
|
70
67
|
export type MergeMiddlewareInputField<
|
|
71
68
|
Middlewares extends readonly unknown[],
|
|
72
69
|
Field extends MiddlewareInputFieldName,
|
|
73
70
|
> = [Middlewares] extends [readonly []]
|
|
74
71
|
? {}
|
|
75
|
-
: UnionToIntersection<MiddlewareInputField<Middlewares[number], Field
|
|
72
|
+
: UnionToIntersection<MiddlewareInputField<Middlewares[number], Field>>;
|
|
76
73
|
|
|
77
74
|
export type RuntimeContextFields<TNative = unknown> = {
|
|
78
|
-
request: Request
|
|
79
|
-
method: Method
|
|
80
|
-
url: URL
|
|
81
|
-
headers: import(
|
|
82
|
-
cookies: import(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
75
|
+
request: Request;
|
|
76
|
+
method: Method;
|
|
77
|
+
url: URL;
|
|
78
|
+
headers: import("@taserjs/router-core").TaserHeaders;
|
|
79
|
+
cookies: import("@taserjs/router-core").TaserCookieJar;
|
|
80
|
+
var: Record<string, unknown>;
|
|
81
|
+
native?: TNative;
|
|
82
|
+
};
|