@rexeus/typeweaver-server 0.6.0 → 0.6.1
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 +8 -9
- package/dist/lib/TypeweaverRouter.ts +2 -2
- package/package.json +5 -5
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
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
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:
|
|
276
|
+
onError: error => logger.error("Unhandled error", error),
|
|
278
277
|
});
|
|
279
278
|
```
|
|
280
279
|
|
|
@@ -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.
|
|
3
|
+
"version": "0.6.1",
|
|
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.
|
|
51
|
-
"@rexeus/typeweaver-gen": "^0.6.
|
|
50
|
+
"@rexeus/typeweaver-core": "^0.6.1",
|
|
51
|
+
"@rexeus/typeweaver-gen": "^0.6.1"
|
|
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.
|
|
58
|
-
"@rexeus/typeweaver-gen": "^0.6.
|
|
57
|
+
"@rexeus/typeweaver-core": "^0.6.1",
|
|
58
|
+
"@rexeus/typeweaver-gen": "^0.6.1"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"case": "^1.6.3"
|