@zenstackhq/server 1.0.0-beta.3 → 1.0.0-beta.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/express/middleware.d.ts +10 -0
- package/express/middleware.js +23 -7
- package/express/middleware.js.map +1 -1
- package/package.json +4 -4
package/express/middleware.d.ts
CHANGED
|
@@ -8,6 +8,16 @@ export interface MiddlewareOptions extends AdapterBaseOptions {
|
|
|
8
8
|
* Callback for getting a PrismaClient for the given request
|
|
9
9
|
*/
|
|
10
10
|
getPrisma: (req: Request, res: Response) => unknown | Promise<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* Controls if the middleware directly sends a response. If set to false,
|
|
13
|
+
* the response is stored in the `res.locals` object and then the middleware
|
|
14
|
+
* calls the `next()` function to pass the control to the next middleware.
|
|
15
|
+
* Subsequent middleware or request handlers need to make sure to send
|
|
16
|
+
* a response.
|
|
17
|
+
*
|
|
18
|
+
* Defaults to true;
|
|
19
|
+
*/
|
|
20
|
+
sendResponse?: boolean;
|
|
11
21
|
}
|
|
12
22
|
/**
|
|
13
23
|
* Creates an Express middleware for handling CRUD requests.
|
package/express/middleware.js
CHANGED
|
@@ -30,13 +30,16 @@ const factory = (options) => {
|
|
|
30
30
|
}
|
|
31
31
|
const requestHandler = options.handler || (0, rpc_1.default)();
|
|
32
32
|
const useSuperJson = options.useSuperJson === true;
|
|
33
|
-
return (request, response) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
return (request, response, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
34
|
const prisma = (yield options.getPrisma(request, response));
|
|
35
|
+
const { sendResponse } = options;
|
|
36
|
+
if (sendResponse === false && !prisma) {
|
|
37
|
+
throw new Error('unable to get prisma from request context');
|
|
38
|
+
}
|
|
35
39
|
if (!prisma) {
|
|
36
|
-
response
|
|
40
|
+
return response
|
|
37
41
|
.status(500)
|
|
38
42
|
.json((0, utils_1.marshalToObject)({ message: 'unable to get prisma from request context' }, useSuperJson));
|
|
39
|
-
return;
|
|
40
43
|
}
|
|
41
44
|
let query = {};
|
|
42
45
|
try {
|
|
@@ -53,8 +56,10 @@ const factory = (options) => {
|
|
|
53
56
|
query = (0, utils_1.buildUrlQuery)(rawQuery, useSuperJson);
|
|
54
57
|
}
|
|
55
58
|
catch (_a) {
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
if (sendResponse === false) {
|
|
60
|
+
throw new Error('invalid query parameters');
|
|
61
|
+
}
|
|
62
|
+
return response.status(400).json((0, utils_1.marshalToObject)({ message: 'invalid query parameters' }, useSuperJson));
|
|
58
63
|
}
|
|
59
64
|
try {
|
|
60
65
|
const r = yield requestHandler({
|
|
@@ -67,10 +72,21 @@ const factory = (options) => {
|
|
|
67
72
|
zodSchemas,
|
|
68
73
|
logger: options.logger,
|
|
69
74
|
});
|
|
70
|
-
|
|
75
|
+
if (sendResponse === false) {
|
|
76
|
+
// attach response and pass control to the next middleware
|
|
77
|
+
response.locals = {
|
|
78
|
+
status: r.status,
|
|
79
|
+
body: r.body,
|
|
80
|
+
};
|
|
81
|
+
return next();
|
|
82
|
+
}
|
|
83
|
+
return response.status(r.status).json((0, utils_1.marshalToObject)(r.body, useSuperJson));
|
|
71
84
|
}
|
|
72
85
|
catch (err) {
|
|
73
|
-
|
|
86
|
+
if (sendResponse === false) {
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
89
|
+
return response
|
|
74
90
|
.status(500)
|
|
75
91
|
.json((0, utils_1.marshalToObject)({ message: `An unhandled error occurred: ${err}` }, useSuperJson));
|
|
76
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/express/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,qDAAuC;AAEvC,oCAA+E;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/express/middleware.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/server",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.4",
|
|
4
4
|
"displayName": "ZenStack Server-side Adapters",
|
|
5
5
|
"description": "ZenStack server-side adapters",
|
|
6
6
|
"homepage": "https://zenstack.dev",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"url-pattern": "^1.0.3",
|
|
24
24
|
"zod": "3.21.1",
|
|
25
25
|
"zod-validation-error": "^0.2.1",
|
|
26
|
-
"@zenstackhq/
|
|
27
|
-
"@zenstackhq/
|
|
26
|
+
"@zenstackhq/runtime": "1.0.0-beta.4",
|
|
27
|
+
"@zenstackhq/openapi": "1.0.0-beta.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@sveltejs/kit": "1.21.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"supertest": "^6.3.3",
|
|
47
47
|
"ts-jest": "^29.0.5",
|
|
48
48
|
"typescript": "^4.9.4",
|
|
49
|
-
"@zenstackhq/testtools": "1.0.0-beta.
|
|
49
|
+
"@zenstackhq/testtools": "1.0.0-beta.4"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"clean": "rimraf dist",
|