@taserjs/router 0.0.2 → 0.0.4
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 +18 -27
- package/dist/cjs/define/middleware.cjs.map +1 -1
- package/dist/cjs/define/middleware.d.cts +27 -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 +1 -2
- package/dist/cjs/index.d.cts +1 -1
- 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.d.cts +1 -1
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +1 -1
- package/dist/cjs/stream.d.cts +1 -1
- 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 +94 -143
- package/dist/cjs/types/type-utils.d.cts +8 -10
- package/dist/cjs/types/units.cjs.map +1 -1
- package/dist/cjs/types/units.d.cts +32 -27
- 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 +27 -79
- package/dist/esm/define/middleware.js +18 -27
- 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 +1 -1
- package/dist/esm/index.js +3 -3
- 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 +1 -1
- package/dist/esm/route.d.ts +1 -1
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/stream.d.ts +1 -1
- 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 +94 -143
- package/dist/esm/types/type-utils.d.ts +8 -10
- package/dist/esm/types/units.d.ts +32 -27
- package/dist/esm/types/units.js.map +1 -1
- package/package.json +17 -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 +222 -222
- package/src/define/validators.ts +10 -10
- package/src/factories.ts +63 -61
- package/src/index.ts +12 -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 +2 -6
- package/src/route.ts +45 -48
- package/src/stream.ts +1 -7
- 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 +403 -731
- package/src/types/returns.ts +92 -97
- package/src/types/schema.ts +8 -9
- package/src/types/type-utils.ts +42 -45
- package/src/types/units.ts +140 -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/define/middleware.ts
CHANGED
|
@@ -1,289 +1,289 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { createTaserCompatHandler } from '@taserjs/router-core'
|
|
1
|
+
import { createTaserCompatHandler, type Awaitable } from "@taserjs/router-core";
|
|
3
2
|
|
|
4
|
-
import type {
|
|
3
|
+
import type { ReturnsMap } from "../types/returns.js";
|
|
5
4
|
import type {
|
|
6
5
|
AppContext,
|
|
6
|
+
ExtractState,
|
|
7
|
+
IsUnknown,
|
|
7
8
|
MiddlewareReturnFromParts,
|
|
8
9
|
MiddlewareUnit,
|
|
10
|
+
NextFn,
|
|
9
11
|
StandaloneMiddlewareContext,
|
|
10
|
-
} from
|
|
11
|
-
import type {
|
|
12
|
+
} from "../types/units.js";
|
|
13
|
+
import type {
|
|
14
|
+
LayoutId,
|
|
15
|
+
ResolveLayoutMiddlewaresState,
|
|
16
|
+
ResolveLayoutsState,
|
|
17
|
+
} from "../types/index.js";
|
|
18
|
+
import type { Schema } from "../types/schema.js";
|
|
12
19
|
|
|
13
|
-
type HonoMiddlewareHandler = Parameters<typeof createTaserCompatHandler>[0]
|
|
20
|
+
type HonoMiddlewareHandler = Parameters<typeof createTaserCompatHandler>[0];
|
|
14
21
|
|
|
15
22
|
type HonoMiddlewareUnit = MiddlewareUnit<
|
|
16
|
-
MiddlewareReturnFromParts<unknown, unknown, unknown, {}
|
|
17
|
-
|
|
23
|
+
MiddlewareReturnFromParts<unknown, unknown, unknown, {}>,
|
|
24
|
+
{},
|
|
25
|
+
null,
|
|
26
|
+
{}
|
|
27
|
+
>;
|
|
18
28
|
|
|
19
|
-
type
|
|
29
|
+
export type DefineMiddlewareOptions<
|
|
30
|
+
TState = unknown,
|
|
31
|
+
TRequires = {},
|
|
20
32
|
TQuery = unknown,
|
|
21
33
|
TParams = unknown,
|
|
22
34
|
TBody = unknown,
|
|
23
|
-
TState = unknown,
|
|
24
|
-
TCtx = unknown,
|
|
25
35
|
TReturns extends ReturnsMap = {},
|
|
36
|
+
TQueryIn = unknown,
|
|
37
|
+
TParamsIn = unknown,
|
|
38
|
+
TBodyIn = unknown,
|
|
39
|
+
TAppContext extends Record<string, unknown> = AppContext,
|
|
40
|
+
R = unknown,
|
|
26
41
|
> = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
= [TState] extends [undefined]
|
|
37
|
-
? [TCtx] extends [undefined]
|
|
38
|
-
? () => Promise<ReplyResult>
|
|
39
|
-
: (args: { ctx: TCtx }) => Promise<ReplyResult>
|
|
40
|
-
: [TCtx] extends [undefined]
|
|
41
|
-
? (args: { state: TState }) => Promise<ReplyResult>
|
|
42
|
-
: (args: { state: TState, ctx: TCtx }) => Promise<ReplyResult>
|
|
42
|
+
query?: Schema<TQuery, TQueryIn>;
|
|
43
|
+
params?: Schema<TParams, TParamsIn>;
|
|
44
|
+
body?: Schema<TBody, TBodyIn>;
|
|
45
|
+
returns?: TReturns;
|
|
46
|
+
handler: (
|
|
47
|
+
ctx: StandaloneMiddlewareContext<TQuery, TParams, TBody, TAppContext, TRequires>,
|
|
48
|
+
next: NextFn<NoInfer<TState>>,
|
|
49
|
+
) => Awaitable<R>;
|
|
50
|
+
};
|
|
43
51
|
|
|
44
|
-
type
|
|
52
|
+
export type ScopedMiddlewareOptions<
|
|
53
|
+
Layout extends LayoutId,
|
|
54
|
+
TState = unknown,
|
|
55
|
+
TRequires = {},
|
|
45
56
|
TQuery = unknown,
|
|
46
57
|
TParams = unknown,
|
|
47
58
|
TBody = unknown,
|
|
48
|
-
TState = undefined,
|
|
49
|
-
TCtx = undefined,
|
|
50
59
|
TReturns extends ReturnsMap = {},
|
|
60
|
+
TQueryIn = unknown,
|
|
61
|
+
TParamsIn = unknown,
|
|
62
|
+
TBodyIn = unknown,
|
|
51
63
|
TAppContext extends Record<string, unknown> = AppContext,
|
|
64
|
+
R = unknown,
|
|
52
65
|
> = {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
TState,
|
|
60
|
-
TCtx,
|
|
61
|
-
Omit<TReturns, keyof M> & M,
|
|
62
|
-
TAppContext
|
|
63
|
-
>
|
|
64
|
-
handler(
|
|
65
|
-
fn: (
|
|
66
|
-
ctx: StandaloneMiddlewareContext<TQuery, TParams, TBody, TAppContext>,
|
|
67
|
-
next: FluentNext<TState, TCtx>,
|
|
68
|
-
) => Awaitable<ReplyResult | Response | unknown>,
|
|
69
|
-
): MiddlewareUnit<
|
|
70
|
-
MiddlewareReturnFromParts<
|
|
66
|
+
query?: Schema<TQuery, TQueryIn>;
|
|
67
|
+
params?: Schema<TParams, TParamsIn>;
|
|
68
|
+
body?: Schema<TBody, TBodyIn>;
|
|
69
|
+
returns?: TReturns;
|
|
70
|
+
handler: (
|
|
71
|
+
ctx: StandaloneMiddlewareContext<
|
|
71
72
|
TQuery,
|
|
72
73
|
TParams,
|
|
73
74
|
TBody,
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
TAppContext,
|
|
76
|
+
ResolveLayoutMiddlewaresState<Layout> & TRequires
|
|
76
77
|
>,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function createFluentBuilder<TAppContext extends Record<string, unknown> = AppContext>(
|
|
82
|
-
state: MiddlewareBuilderState,
|
|
83
|
-
): FluentMiddlewareBuilder<unknown, unknown, unknown, undefined, undefined, {}, TAppContext> {
|
|
84
|
-
return {
|
|
85
|
-
returns(map: ReturnsMap) {
|
|
86
|
-
return createFluentBuilder<TAppContext>({
|
|
87
|
-
...state,
|
|
88
|
-
returns: { ...(state.returns ?? {}), ...map },
|
|
89
|
-
})
|
|
90
|
-
},
|
|
91
|
-
handler(fn: (...args: never[]) => unknown) {
|
|
92
|
-
const unit = {
|
|
93
|
-
...state,
|
|
94
|
-
handler: fn,
|
|
95
|
-
__middlewareAcc: undefined as unknown,
|
|
96
|
-
...(state.returns ? { __returns: state.returns } : {}),
|
|
97
|
-
}
|
|
98
|
-
return unit as unknown as MiddlewareUnit<
|
|
99
|
-
MiddlewareReturnFromParts<unknown, unknown, unknown, unknown, unknown>,
|
|
100
|
-
ReturnsMap
|
|
101
|
-
>
|
|
102
|
-
},
|
|
103
|
-
} as unknown as FluentMiddlewareBuilder<unknown, unknown, unknown, undefined, undefined, {}, TAppContext>
|
|
104
|
-
}
|
|
78
|
+
next: NextFn<NoInfer<TState>>,
|
|
79
|
+
) => Awaitable<R>;
|
|
80
|
+
};
|
|
105
81
|
|
|
106
|
-
export
|
|
107
|
-
|
|
108
|
-
export function defineMiddleware<
|
|
109
|
-
TAppContext extends Record<string, unknown> = AppContext,
|
|
82
|
+
export type MultiScopedMiddlewareOptions<
|
|
83
|
+
Layouts extends readonly LayoutId[],
|
|
110
84
|
TState = unknown,
|
|
111
|
-
|
|
85
|
+
TRequires = {},
|
|
112
86
|
TQuery = unknown,
|
|
113
87
|
TParams = unknown,
|
|
114
88
|
TBody = unknown,
|
|
115
89
|
TReturns extends ReturnsMap = {},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
ctx: Schema<TCtx>
|
|
120
|
-
query?: Schema<TQuery>
|
|
121
|
-
params?: Schema<TParams>
|
|
122
|
-
body?: Schema<TBody>
|
|
123
|
-
returns?: TReturns
|
|
124
|
-
handler: (
|
|
125
|
-
ctx: StandaloneMiddlewareContext<TQuery, TParams, TBody, TAppContext>,
|
|
126
|
-
next: (args: { state: TState, ctx: TCtx }) => Promise<ReplyResult>,
|
|
127
|
-
) => Awaitable<ReplyResult | Response | unknown>
|
|
128
|
-
},
|
|
129
|
-
): MiddlewareUnit<
|
|
130
|
-
MiddlewareReturnFromParts<TQuery, TParams, TBody, TState, TCtx>,
|
|
131
|
-
TReturns
|
|
132
|
-
>
|
|
133
|
-
|
|
134
|
-
export function defineMiddleware<
|
|
90
|
+
TQueryIn = unknown,
|
|
91
|
+
TParamsIn = unknown,
|
|
92
|
+
TBodyIn = unknown,
|
|
135
93
|
TAppContext extends Record<string, unknown> = AppContext,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
TReturns
|
|
156
|
-
>
|
|
94
|
+
R = unknown,
|
|
95
|
+
> = {
|
|
96
|
+
query?: Schema<TQuery, TQueryIn>;
|
|
97
|
+
params?: Schema<TParams, TParamsIn>;
|
|
98
|
+
body?: Schema<TBody, TBodyIn>;
|
|
99
|
+
returns?: TReturns;
|
|
100
|
+
handler: (
|
|
101
|
+
ctx: StandaloneMiddlewareContext<
|
|
102
|
+
TQuery,
|
|
103
|
+
TParams,
|
|
104
|
+
TBody,
|
|
105
|
+
TAppContext,
|
|
106
|
+
ResolveLayoutsState<Layouts> & TRequires
|
|
107
|
+
>,
|
|
108
|
+
next: NextFn<NoInfer<TState>>,
|
|
109
|
+
) => Awaitable<R>;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export function defineMiddleware(middleware: HonoMiddlewareHandler): HonoMiddlewareUnit;
|
|
157
113
|
|
|
158
114
|
export function defineMiddleware<
|
|
115
|
+
const Layout extends LayoutId,
|
|
116
|
+
TState = unknown,
|
|
117
|
+
TRequires = {},
|
|
159
118
|
TAppContext extends Record<string, unknown> = AppContext,
|
|
160
|
-
TCtx = unknown,
|
|
161
119
|
TQuery = unknown,
|
|
162
120
|
TParams = unknown,
|
|
163
121
|
TBody = unknown,
|
|
164
122
|
TReturns extends ReturnsMap = {},
|
|
123
|
+
TQueryIn = unknown,
|
|
124
|
+
TParamsIn = unknown,
|
|
125
|
+
TBodyIn = unknown,
|
|
126
|
+
R = unknown,
|
|
165
127
|
>(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
128
|
+
layout: Layout,
|
|
129
|
+
options: ScopedMiddlewareOptions<
|
|
130
|
+
Layout,
|
|
131
|
+
TState,
|
|
132
|
+
TRequires,
|
|
133
|
+
TQuery,
|
|
134
|
+
TParams,
|
|
135
|
+
TBody,
|
|
136
|
+
TReturns,
|
|
137
|
+
TQueryIn,
|
|
138
|
+
TParamsIn,
|
|
139
|
+
TBodyIn,
|
|
140
|
+
TAppContext,
|
|
141
|
+
R
|
|
142
|
+
>,
|
|
177
143
|
): MiddlewareUnit<
|
|
178
|
-
MiddlewareReturnFromParts<
|
|
179
|
-
|
|
180
|
-
|
|
144
|
+
MiddlewareReturnFromParts<
|
|
145
|
+
TQuery,
|
|
146
|
+
TParams,
|
|
147
|
+
TBody,
|
|
148
|
+
IsUnknown<TState> extends true ? ExtractState<R> : TState,
|
|
149
|
+
TQueryIn,
|
|
150
|
+
TParamsIn,
|
|
151
|
+
TBodyIn
|
|
152
|
+
>,
|
|
153
|
+
TReturns,
|
|
154
|
+
Layout,
|
|
155
|
+
TRequires
|
|
156
|
+
>;
|
|
181
157
|
|
|
182
158
|
export function defineMiddleware<
|
|
159
|
+
const Layouts extends readonly [LayoutId, ...LayoutId[]],
|
|
160
|
+
TState = unknown,
|
|
161
|
+
TRequires = {},
|
|
183
162
|
TAppContext extends Record<string, unknown> = AppContext,
|
|
184
163
|
TQuery = unknown,
|
|
185
164
|
TParams = unknown,
|
|
186
165
|
TBody = unknown,
|
|
187
166
|
TReturns extends ReturnsMap = {},
|
|
167
|
+
TQueryIn = unknown,
|
|
168
|
+
TParamsIn = unknown,
|
|
169
|
+
TBodyIn = unknown,
|
|
170
|
+
R = unknown,
|
|
188
171
|
>(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
172
|
+
layouts: Layouts,
|
|
173
|
+
options: MultiScopedMiddlewareOptions<
|
|
174
|
+
Layouts,
|
|
175
|
+
TState,
|
|
176
|
+
TRequires,
|
|
177
|
+
TQuery,
|
|
178
|
+
TParams,
|
|
179
|
+
TBody,
|
|
180
|
+
TReturns,
|
|
181
|
+
TQueryIn,
|
|
182
|
+
TParamsIn,
|
|
183
|
+
TBodyIn,
|
|
184
|
+
TAppContext,
|
|
185
|
+
R
|
|
186
|
+
>,
|
|
199
187
|
): MiddlewareUnit<
|
|
200
|
-
MiddlewareReturnFromParts<
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
>(
|
|
214
|
-
options: {
|
|
215
|
-
query?: Schema<TQuery>
|
|
216
|
-
params?: Schema<TParams>
|
|
217
|
-
body?: Schema<TBody>
|
|
218
|
-
},
|
|
219
|
-
): FluentMiddlewareBuilder<TQuery, TParams, TBody, undefined, undefined, {}, TAppContext>
|
|
188
|
+
MiddlewareReturnFromParts<
|
|
189
|
+
TQuery,
|
|
190
|
+
TParams,
|
|
191
|
+
TBody,
|
|
192
|
+
IsUnknown<TState> extends true ? ExtractState<R> : TState,
|
|
193
|
+
TQueryIn,
|
|
194
|
+
TParamsIn,
|
|
195
|
+
TBodyIn
|
|
196
|
+
>,
|
|
197
|
+
TReturns,
|
|
198
|
+
Layouts,
|
|
199
|
+
TRequires
|
|
200
|
+
>;
|
|
220
201
|
|
|
221
202
|
export function defineMiddleware<
|
|
222
|
-
TAppContext extends Record<string, unknown> = AppContext,
|
|
223
203
|
TState = unknown,
|
|
224
|
-
|
|
225
|
-
TParams = unknown,
|
|
226
|
-
TBody = unknown,
|
|
227
|
-
>(
|
|
228
|
-
options: {
|
|
229
|
-
state: Schema<TState>
|
|
230
|
-
query?: Schema<TQuery>
|
|
231
|
-
params?: Schema<TParams>
|
|
232
|
-
body?: Schema<TBody>
|
|
233
|
-
},
|
|
234
|
-
): FluentMiddlewareBuilder<TQuery, TParams, TBody, TState, undefined, {}, TAppContext>
|
|
235
|
-
|
|
236
|
-
export function defineMiddleware<
|
|
204
|
+
TRequires = {},
|
|
237
205
|
TAppContext extends Record<string, unknown> = AppContext,
|
|
238
|
-
TCtx = unknown,
|
|
239
206
|
TQuery = unknown,
|
|
240
207
|
TParams = unknown,
|
|
241
208
|
TBody = unknown,
|
|
209
|
+
TReturns extends ReturnsMap = {},
|
|
210
|
+
TQueryIn = unknown,
|
|
211
|
+
TParamsIn = unknown,
|
|
212
|
+
TBodyIn = unknown,
|
|
213
|
+
R = unknown,
|
|
242
214
|
>(
|
|
243
|
-
options:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
215
|
+
options: DefineMiddlewareOptions<
|
|
216
|
+
TState,
|
|
217
|
+
TRequires,
|
|
218
|
+
TQuery,
|
|
219
|
+
TParams,
|
|
220
|
+
TBody,
|
|
221
|
+
TReturns,
|
|
222
|
+
TQueryIn,
|
|
223
|
+
TParamsIn,
|
|
224
|
+
TBodyIn,
|
|
225
|
+
TAppContext,
|
|
226
|
+
R
|
|
227
|
+
>,
|
|
228
|
+
): MiddlewareUnit<
|
|
229
|
+
MiddlewareReturnFromParts<
|
|
230
|
+
TQuery,
|
|
231
|
+
TParams,
|
|
232
|
+
TBody,
|
|
233
|
+
IsUnknown<TState> extends true ? ExtractState<R> : TState,
|
|
234
|
+
TQueryIn,
|
|
235
|
+
TParamsIn,
|
|
236
|
+
TBodyIn
|
|
237
|
+
>,
|
|
238
|
+
TReturns,
|
|
239
|
+
null,
|
|
240
|
+
TRequires
|
|
241
|
+
>;
|
|
250
242
|
|
|
251
|
-
export function defineMiddleware
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
243
|
+
export function defineMiddleware(
|
|
244
|
+
first:
|
|
245
|
+
| string
|
|
246
|
+
| readonly string[]
|
|
247
|
+
| HonoMiddlewareHandler
|
|
248
|
+
| DefineMiddlewareOptions<any, any, any, any, any, any, any, any, any, any, any>,
|
|
249
|
+
second?: DefineMiddlewareOptions<any, any, any, any, any, any, any, any, any, any, any>,
|
|
250
|
+
): unknown {
|
|
251
|
+
if (typeof first === "string" || Array.isArray(first)) {
|
|
252
|
+
const options = second!;
|
|
253
|
+
const unit = {
|
|
254
|
+
...options,
|
|
255
|
+
__middlewareAcc: undefined as unknown,
|
|
256
|
+
...(options?.returns ? { __returns: options.returns } : {}),
|
|
257
|
+
__requiredLayouts: first,
|
|
258
|
+
};
|
|
259
|
+
return unit;
|
|
260
|
+
}
|
|
267
261
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
const honoMiddleware = options as HonoMiddlewareHandler
|
|
262
|
+
if (typeof first === "function") {
|
|
263
|
+
const honoMiddleware = first as HonoMiddlewareHandler;
|
|
271
264
|
return defineMiddleware({
|
|
272
265
|
handler: (ctx, next) => createTaserCompatHandler(honoMiddleware)(ctx, next),
|
|
273
|
-
})
|
|
266
|
+
});
|
|
274
267
|
}
|
|
275
268
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
269
|
+
const options = first as DefineMiddlewareOptions<
|
|
270
|
+
any,
|
|
271
|
+
any,
|
|
272
|
+
any,
|
|
273
|
+
any,
|
|
274
|
+
any,
|
|
275
|
+
any,
|
|
276
|
+
any,
|
|
277
|
+
any,
|
|
278
|
+
any,
|
|
279
|
+
any,
|
|
280
|
+
any
|
|
281
|
+
>;
|
|
282
|
+
const unit = {
|
|
283
|
+
...options,
|
|
284
|
+
__middlewareAcc: undefined as unknown,
|
|
285
|
+
...(options.returns ? { __returns: options.returns } : {}),
|
|
286
|
+
};
|
|
287
287
|
|
|
288
|
-
return
|
|
288
|
+
return unit;
|
|
289
289
|
}
|
package/src/define/validators.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type { Schema } from
|
|
2
|
-
import { SCHEMA_KEYS, type SchemaKey } from
|
|
1
|
+
import type { Schema } from "../types/schema.js";
|
|
2
|
+
import { SCHEMA_KEYS, type SchemaKey } from "../constants.js";
|
|
3
3
|
|
|
4
4
|
export type SchemaValidators = {
|
|
5
|
-
query?: Schema<unknown
|
|
6
|
-
params?: Schema<unknown
|
|
7
|
-
body?: Schema<unknown
|
|
8
|
-
}
|
|
5
|
+
query?: Schema<unknown>;
|
|
6
|
+
params?: Schema<unknown>;
|
|
7
|
+
body?: Schema<unknown>;
|
|
8
|
+
};
|
|
9
9
|
|
|
10
10
|
export function pickDefinedSchemas(
|
|
11
11
|
source: SchemaValidators,
|
|
12
12
|
keyMap?: Partial<Record<SchemaKey, string>>,
|
|
13
13
|
): Record<string, Schema<unknown>> {
|
|
14
|
-
const result: Record<string, Schema<unknown>> = {}
|
|
14
|
+
const result: Record<string, Schema<unknown>> = {};
|
|
15
15
|
for (const key of SCHEMA_KEYS) {
|
|
16
|
-
const value = source[key]
|
|
16
|
+
const value = source[key];
|
|
17
17
|
if (value !== undefined) {
|
|
18
|
-
result[keyMap?.[key] ?? key] = value
|
|
18
|
+
result[keyMap?.[key] ?? key] = value;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
return result
|
|
21
|
+
return result;
|
|
22
22
|
}
|