@taserjs/router 0.1.4 → 0.1.6

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.
Files changed (127) hide show
  1. package/dist/cjs/builder/factories.cjs.map +1 -1
  2. package/dist/cjs/builder/factories.d.cts +9 -9
  3. package/dist/cjs/builder/middleware-unit.cjs +21 -12
  4. package/dist/cjs/builder/middleware-unit.cjs.map +1 -1
  5. package/dist/cjs/builder/middleware-unit.d.cts +1 -18
  6. package/dist/cjs/builder/middleware.cjs +1 -0
  7. package/dist/cjs/builder/middleware.cjs.map +1 -1
  8. package/dist/cjs/builder/route.cjs +1 -0
  9. package/dist/cjs/builder/route.cjs.map +1 -1
  10. package/dist/cjs/builder/router.cjs +1 -16
  11. package/dist/cjs/builder/router.cjs.map +1 -1
  12. package/dist/cjs/builder/router.d.cts +6 -17
  13. package/dist/cjs/builder/standalone.cjs +43 -0
  14. package/dist/cjs/builder/standalone.cjs.map +1 -0
  15. package/dist/cjs/builder/standalone.d.cts +28 -0
  16. package/dist/cjs/define/middleware.cjs +2 -3
  17. package/dist/cjs/define/middleware.cjs.map +1 -1
  18. package/dist/cjs/define/middleware.d.cts +15 -16
  19. package/dist/cjs/index.cjs +13 -2
  20. package/dist/cjs/index.d.cts +5 -3
  21. package/dist/cjs/middleware/body-limit.cjs +1 -1
  22. package/dist/cjs/middleware/body-limit.cjs.map +1 -1
  23. package/dist/cjs/middleware/body-limit.d.cts +1 -1
  24. package/dist/cjs/middleware/compress.cjs +1 -1
  25. package/dist/cjs/middleware/compress.cjs.map +1 -1
  26. package/dist/cjs/middleware/compress.d.cts +1 -1
  27. package/dist/cjs/middleware/cors.cjs +1 -1
  28. package/dist/cjs/middleware/cors.cjs.map +1 -1
  29. package/dist/cjs/middleware/cors.d.cts +1 -1
  30. package/dist/cjs/middleware/csrf.cjs +1 -1
  31. package/dist/cjs/middleware/csrf.cjs.map +1 -1
  32. package/dist/cjs/middleware/csrf.d.cts +1 -1
  33. package/dist/cjs/middleware/etag.cjs +1 -1
  34. package/dist/cjs/middleware/etag.cjs.map +1 -1
  35. package/dist/cjs/middleware/etag.d.cts +1 -1
  36. package/dist/cjs/middleware/hono-mw.cjs +1 -1
  37. package/dist/cjs/middleware/hono-mw.cjs.map +1 -1
  38. package/dist/cjs/middleware/hono-mw.d.cts +1 -1
  39. package/dist/cjs/middleware/jwk.cjs +1 -1
  40. package/dist/cjs/middleware/jwk.cjs.map +1 -1
  41. package/dist/cjs/middleware/jwt.cjs +1 -1
  42. package/dist/cjs/middleware/jwt.cjs.map +1 -1
  43. package/dist/cjs/middleware/secure-headers.cjs +1 -1
  44. package/dist/cjs/middleware/secure-headers.cjs.map +1 -1
  45. package/dist/cjs/middleware/secure-headers.d.cts +1 -1
  46. package/dist/cjs/middleware/timing.cjs +1 -1
  47. package/dist/cjs/middleware/timing.cjs.map +1 -1
  48. package/dist/cjs/middleware/timing.d.cts +1 -1
  49. package/dist/cjs/types/index.d.cts +27 -17
  50. package/dist/cjs/types/type-utils.d.cts +2 -2
  51. package/dist/cjs/types/units.d.cts +17 -19
  52. package/dist/esm/builder/factories.d.ts +9 -9
  53. package/dist/esm/builder/factories.js.map +1 -1
  54. package/dist/esm/builder/middleware-unit.d.ts +1 -18
  55. package/dist/esm/builder/middleware-unit.js +21 -12
  56. package/dist/esm/builder/middleware-unit.js.map +1 -1
  57. package/dist/esm/builder/middleware.js +1 -0
  58. package/dist/esm/builder/middleware.js.map +1 -1
  59. package/dist/esm/builder/route.js +1 -0
  60. package/dist/esm/builder/route.js.map +1 -1
  61. package/dist/esm/builder/router.d.ts +6 -17
  62. package/dist/esm/builder/router.js +1 -16
  63. package/dist/esm/builder/router.js.map +1 -1
  64. package/dist/esm/builder/standalone.d.ts +28 -0
  65. package/dist/esm/builder/standalone.js +32 -0
  66. package/dist/esm/builder/standalone.js.map +1 -0
  67. package/dist/esm/define/middleware.d.ts +15 -16
  68. package/dist/esm/define/middleware.js +2 -3
  69. package/dist/esm/define/middleware.js.map +1 -1
  70. package/dist/esm/index.d.ts +5 -3
  71. package/dist/esm/index.js +2 -2
  72. package/dist/esm/middleware/body-limit.d.ts +1 -1
  73. package/dist/esm/middleware/body-limit.js +2 -2
  74. package/dist/esm/middleware/body-limit.js.map +1 -1
  75. package/dist/esm/middleware/compress.d.ts +1 -1
  76. package/dist/esm/middleware/compress.js +2 -2
  77. package/dist/esm/middleware/compress.js.map +1 -1
  78. package/dist/esm/middleware/cors.d.ts +1 -1
  79. package/dist/esm/middleware/cors.js +2 -2
  80. package/dist/esm/middleware/cors.js.map +1 -1
  81. package/dist/esm/middleware/csrf.d.ts +1 -1
  82. package/dist/esm/middleware/csrf.js +2 -2
  83. package/dist/esm/middleware/csrf.js.map +1 -1
  84. package/dist/esm/middleware/etag.d.ts +1 -1
  85. package/dist/esm/middleware/etag.js +2 -2
  86. package/dist/esm/middleware/etag.js.map +1 -1
  87. package/dist/esm/middleware/hono-mw.d.ts +1 -1
  88. package/dist/esm/middleware/hono-mw.js +1 -1
  89. package/dist/esm/middleware/hono-mw.js.map +1 -1
  90. package/dist/esm/middleware/jwk.js +2 -2
  91. package/dist/esm/middleware/jwk.js.map +1 -1
  92. package/dist/esm/middleware/jwt.js +2 -2
  93. package/dist/esm/middleware/jwt.js.map +1 -1
  94. package/dist/esm/middleware/secure-headers.d.ts +1 -1
  95. package/dist/esm/middleware/secure-headers.js +2 -2
  96. package/dist/esm/middleware/secure-headers.js.map +1 -1
  97. package/dist/esm/middleware/timing.d.ts +1 -1
  98. package/dist/esm/middleware/timing.js +2 -2
  99. package/dist/esm/middleware/timing.js.map +1 -1
  100. package/dist/esm/types/index.d.ts +27 -17
  101. package/dist/esm/types/type-utils.d.ts +2 -2
  102. package/dist/esm/types/units.d.ts +17 -19
  103. package/package.json +3 -3
  104. package/src/builder/factories.ts +2 -2
  105. package/src/builder/middleware-unit.ts +22 -11
  106. package/src/builder/middleware.ts +2 -0
  107. package/src/builder/route.ts +2 -0
  108. package/src/builder/router.ts +7 -60
  109. package/src/builder/standalone.ts +70 -0
  110. package/src/define/middleware.ts +37 -18
  111. package/src/index.ts +26 -2
  112. package/src/middleware/body-limit.ts +2 -2
  113. package/src/middleware/compress.ts +2 -2
  114. package/src/middleware/cors.ts +2 -2
  115. package/src/middleware/csrf.ts +2 -2
  116. package/src/middleware/etag.ts +2 -2
  117. package/src/middleware/hono-mw.ts +1 -1
  118. package/src/middleware/jwk.ts +2 -2
  119. package/src/middleware/jwt.ts +2 -2
  120. package/src/middleware/secure-headers.ts +2 -2
  121. package/src/middleware/timing.ts +2 -2
  122. package/src/types/index.ts +53 -28
  123. package/src/types/type-utils.ts +8 -4
  124. package/src/types/units.ts +46 -22
  125. package/dist/cjs/register.d.cts +0 -2
  126. package/dist/esm/register.d.ts +0 -2
  127. package/src/register.ts +0 -1
@@ -1,5 +1,4 @@
1
1
  import type {
2
- Awaitable,
3
2
  MiddlewareDefinition as CoreMiddlewareDefinition,
4
3
  TaserCookieJar,
5
4
  TaserHeaders,
@@ -22,7 +21,7 @@ export type {
22
21
  } from "./returns.js";
23
22
 
24
23
  /** Default empty app context for standalone units without a bound router instance. */
25
- export type AppContext = Record<never, never>;
24
+ export type EmptyAppContext = Record<never, never>;
26
25
 
27
26
  export type ValidatorParts = {
28
27
  query?: unknown;
@@ -39,13 +38,17 @@ export type NextResult<TState = unknown> = Response & {
39
38
  readonly [StateBrand]?: TState;
40
39
  };
41
40
 
42
- export type ExtractState<T> = [Extract<Awaited<T>, { [StateBrand]?: unknown }>] extends [never]
43
- ? {}
44
- : Extract<Awaited<T>, { [StateBrand]?: unknown }> extends { [StateBrand]?: infer S }
45
- ? [S] extends [never]
41
+ export type ExtractStateFromUnion<T> = T extends { readonly [StateBrand]?: infer S }
42
+ ? [S] extends [never]
43
+ ? never
44
+ : [unknown] extends [S]
46
45
  ? {}
47
46
  : S
48
- : {};
47
+ : never;
48
+
49
+ export type ExtractState<T> = [ExtractStateFromUnion<Awaited<T>>] extends [never]
50
+ ? {}
51
+ : ExtractStateFromUnion<Awaited<T>>;
49
52
 
50
53
  export type IsUnknown<T> = [unknown] extends [T] ? true : false;
51
54
 
@@ -54,8 +57,6 @@ export type NextFn<TExpectedState = unknown> =
54
57
  ? <S extends Record<string, unknown> = {}>(state?: S) => Promise<NextResult<S>>
55
58
  : (state: TExpectedState) => Promise<NextResult<TExpectedState>>;
56
59
 
57
- export type MiddlewareNext = NextFn;
58
-
59
60
  export type MiddlewareDefinition = CoreMiddlewareDefinition<ReturnsMap>;
60
61
 
61
62
  export type MiddlewareReturnFromParts<
@@ -110,7 +111,7 @@ export type StandaloneMiddlewareContext<
110
111
  TQuery = unknown,
111
112
  TParams = unknown,
112
113
  TBody = unknown,
113
- TAppContext extends Record<string, unknown> = AppContext,
114
+ TAppContext extends Record<string, unknown> = EmptyAppContext,
114
115
  TState = {},
115
116
  > = Simplify<
116
117
  TAppContext &
@@ -124,12 +125,15 @@ export type StandaloneMiddlewareContext<
124
125
  }
125
126
  >;
126
127
 
128
+ export declare const MiddlewareUnitBrand: unique symbol;
129
+
127
130
  export type MiddlewareUnit<
128
131
  TAcc = unknown,
129
132
  TReturns extends ReturnsMap = {},
130
133
  TRequiredLayouts = unknown,
131
134
  TRequiredState = unknown,
132
135
  > = MiddlewareDefinition & {
136
+ readonly [MiddlewareUnitBrand]: true;
133
137
  readonly __middlewareAcc: TAcc;
134
138
  readonly __returns?: TReturns;
135
139
  readonly __requiredLayouts?: TRequiredLayouts;
@@ -143,12 +147,26 @@ export type MiddlewareUnitBuilder<
143
147
  TReturns extends ReturnsMap = {},
144
148
  TRequiredLayouts = unknown,
145
149
  TRequiredState = {},
146
- TAppContext extends Record<string, unknown> = AppContext,
150
+ TAppContext extends Record<string, unknown> = EmptyAppContext,
147
151
  TInheritedState = {},
148
152
  TQueryIn = unknown,
149
153
  TParamsIn = unknown,
150
154
  TBodyIn = unknown,
151
- > = {
155
+ TExpectedState = unknown,
156
+ > = MiddlewareUnit<
157
+ MiddlewareReturnFromParts<
158
+ TQuery,
159
+ TParams,
160
+ TBody,
161
+ IsUnknown<TExpectedState> extends true ? {} : TExpectedState,
162
+ TQueryIn,
163
+ TParamsIn,
164
+ TBodyIn
165
+ >,
166
+ TReturns,
167
+ TRequiredLayouts,
168
+ TRequiredState
169
+ > & {
152
170
  query<Q, QIn = unknown>(
153
171
  schema: Schema<Q, QIn>,
154
172
  ): MiddlewareUnitBuilder<
@@ -162,7 +180,8 @@ export type MiddlewareUnitBuilder<
162
180
  TInheritedState,
163
181
  QIn,
164
182
  TParamsIn,
165
- TBodyIn
183
+ TBodyIn,
184
+ TExpectedState
166
185
  >;
167
186
  params<P, PIn = unknown>(
168
187
  schema: Schema<P, PIn>,
@@ -177,7 +196,8 @@ export type MiddlewareUnitBuilder<
177
196
  TInheritedState,
178
197
  TQueryIn,
179
198
  PIn,
180
- TBodyIn
199
+ TBodyIn,
200
+ TExpectedState
181
201
  >;
182
202
  body<B, BIn = unknown>(
183
203
  schema: Schema<B, BIn>,
@@ -192,7 +212,8 @@ export type MiddlewareUnitBuilder<
192
212
  TInheritedState,
193
213
  TQueryIn,
194
214
  TParamsIn,
195
- BIn
215
+ BIn,
216
+ TExpectedState
196
217
  >;
197
218
  body<Mode extends "json" | "form" | "urlencoded", B, BIn = unknown>(
198
219
  mode: Mode,
@@ -208,7 +229,8 @@ export type MiddlewareUnitBuilder<
208
229
  TInheritedState,
209
230
  TQueryIn,
210
231
  TParamsIn,
211
- BIn
232
+ BIn,
233
+ TExpectedState
212
234
  >;
213
235
  returns<const M extends ReturnsMap>(
214
236
  map: M,
@@ -223,7 +245,8 @@ export type MiddlewareUnitBuilder<
223
245
  TInheritedState,
224
246
  TQueryIn,
225
247
  TParamsIn,
226
- TBodyIn
248
+ TBodyIn,
249
+ TExpectedState
227
250
  >;
228
251
  requires<Requires extends Record<string, unknown>>(): MiddlewareUnitBuilder<
229
252
  TQuery,
@@ -236,9 +259,10 @@ export type MiddlewareUnitBuilder<
236
259
  TInheritedState,
237
260
  TQueryIn,
238
261
  TParamsIn,
239
- TBodyIn
262
+ TBodyIn,
263
+ TExpectedState
240
264
  >;
241
- handler<TState = unknown, R = unknown>(
265
+ handler<R>(
242
266
  fn: (
243
267
  ctx: StandaloneMiddlewareContext<
244
268
  TQuery,
@@ -247,13 +271,13 @@ export type MiddlewareUnitBuilder<
247
271
  TAppContext,
248
272
  TInheritedState & TRequiredState
249
273
  >,
250
- next: NextFn<NoInfer<TState>>,
251
- ) => Awaitable<R>,
274
+ next: NextFn<TExpectedState>,
275
+ ) => R,
252
276
  ): DefineMiddlewareResult<
253
277
  TQuery,
254
278
  TParams,
255
279
  TBody,
256
- TState,
280
+ IsUnknown<TExpectedState> extends true ? ExtractState<R> : TExpectedState,
257
281
  R,
258
282
  TQueryIn,
259
283
  TParamsIn,
@@ -1,2 +0,0 @@
1
- export interface RouterRegister {
2
- }
@@ -1,2 +0,0 @@
1
- export interface RouterRegister {
2
- }
package/src/register.ts DELETED
@@ -1 +0,0 @@
1
- export interface RouterRegister {}