@rexeus/typeweaver-server 0.6.0 → 0.6.2

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 CHANGED
@@ -187,13 +187,12 @@ to provide it.
187
187
  **Requiring upstream state** — declare dependencies:
188
188
 
189
189
  ```ts
190
- const permissions = defineMiddleware<
191
- { permissions: string[] },
192
- { userId: string }
193
- >(async (ctx, next) => {
194
- const userId = ctx.state.get("userId"); // string — no cast, no undefined
195
- return next({ permissions: await loadPermissions(userId) });
196
- });
190
+ const permissions = defineMiddleware<{ permissions: string[] }, { userId: string }>(
191
+ async (ctx, next) => {
192
+ const userId = ctx.state.get("userId"); // string — no cast, no undefined
193
+ return next({ permissions: await loadPermissions(userId) });
194
+ }
195
+ );
197
196
  ```
198
197
 
199
198
  Registering `permissions` before `auth` produces a **compile-time error** because `userId` is not
@@ -206,7 +205,7 @@ const logger = defineMiddleware(async (ctx, next) => {
206
205
  const start = Date.now();
207
206
  const response = await next();
208
207
  console.log(
209
- `${ctx.request.method} ${ctx.request.path} -> ${response.statusCode} (${Date.now() - start}ms)`,
208
+ `${ctx.request.method} ${ctx.request.path} -> ${response.statusCode} (${Date.now() - start}ms)`
210
209
  );
211
210
  return response;
212
211
  });
@@ -274,7 +273,7 @@ CORS always execute.
274
273
  ```ts
275
274
  const app = new TypeweaverApp({
276
275
  maxBodySize: 5 * 1024 * 1024, // 5 MB
277
- onError: (error) => logger.error("Unhandled error", error),
276
+ onError: error => logger.error("Unhandled error", error),
278
277
  });
279
278
  ```
280
279
 
@@ -116,14 +116,18 @@ export class TypeweaverApp<TState extends Record<string, unknown> = {}> {
116
116
  * app.route("/api/v1", new TodoRouter({ requestHandlers: { ... } }));
117
117
  * ```
118
118
  */
119
- public route(router: TypeweaverRouter<Record<string, RequestHandler>>): this;
119
+ public route(
120
+ router: TypeweaverRouter<Record<string, RequestHandler<any, any, any>>>
121
+ ): this;
120
122
  public route(
121
123
  prefix: string,
122
- router: TypeweaverRouter<Record<string, RequestHandler>>
124
+ router: TypeweaverRouter<Record<string, RequestHandler<any, any, any>>>
123
125
  ): this;
124
126
  public route(
125
- prefixOrRouter: string | TypeweaverRouter<Record<string, RequestHandler>>,
126
- router?: TypeweaverRouter<Record<string, RequestHandler>>
127
+ prefixOrRouter:
128
+ | string
129
+ | TypeweaverRouter<Record<string, RequestHandler<any, any, any>>>,
130
+ router?: TypeweaverRouter<Record<string, RequestHandler<any, any, any>>>
127
131
  ): this {
128
132
  if (typeof prefixOrRouter === "string") {
129
133
  if (!router) {
@@ -304,7 +308,7 @@ export class TypeweaverApp<TState extends Record<string, unknown> = {}> {
304
308
  }
305
309
 
306
310
  private mountRouter(
307
- router: TypeweaverRouter<Record<string, RequestHandler>>,
311
+ router: TypeweaverRouter<Record<string, RequestHandler<any, any, any>>>,
308
312
  prefix?: string
309
313
  ): this {
310
314
  const normalizedPrefix = prefix?.replace(/\/+$/, "");
@@ -23,7 +23,7 @@ import type {
23
23
  * @template RequestHandlers - Object type containing all handler methods for this router
24
24
  */
25
25
  export type TypeweaverRouterOptions<
26
- RequestHandlers extends Record<string, RequestHandler>,
26
+ RequestHandlers extends Record<string, RequestHandler<any, any, any>>,
27
27
  > = {
28
28
  /**
29
29
  * Request handler methods for each operation.
@@ -81,7 +81,7 @@ export type TypeweaverRouterOptions<
81
81
  * @template RequestHandlers - Object type containing typed handler methods
82
82
  */
83
83
  export abstract class TypeweaverRouter<
84
- RequestHandlers extends Record<string, RequestHandler>,
84
+ RequestHandlers extends Record<string, RequestHandler<any, any, any>>,
85
85
  > {
86
86
  protected readonly requestHandlers: RequestHandlers;
87
87
  private readonly routes: RouteDefinition[] = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rexeus/typeweaver-server",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Generates a lightweight, dependency-free server with built-in routing and middleware from your API definitions. Powered by Typeweaver.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -47,15 +47,15 @@
47
47
  },
48
48
  "homepage": "https://github.com/rexeus/typeweaver#readme",
49
49
  "peerDependencies": {
50
- "@rexeus/typeweaver-core": "^0.6.0",
51
- "@rexeus/typeweaver-gen": "^0.6.0"
50
+ "@rexeus/typeweaver-core": "^0.6.2",
51
+ "@rexeus/typeweaver-gen": "^0.6.2"
52
52
  },
53
53
  "devDependencies": {
54
54
  "get-port": "^7.1.0",
55
55
  "test-utils": "file:../test-utils",
56
56
  "tsx": "^4.21.0",
57
- "@rexeus/typeweaver-core": "^0.6.0",
58
- "@rexeus/typeweaver-gen": "^0.6.0"
57
+ "@rexeus/typeweaver-core": "^0.6.2",
58
+ "@rexeus/typeweaver-gen": "^0.6.2"
59
59
  },
60
60
  "dependencies": {
61
61
  "case": "^1.6.3"