@zenstackhq/server 1.0.0-alpha.99 → 1.0.0-beta.10

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 (49) hide show
  1. package/api/base.d.ts +8 -0
  2. package/api/base.js +19 -0
  3. package/api/base.js.map +1 -0
  4. package/api/rest/index.d.ts +19 -0
  5. package/api/rest/index.js +1313 -0
  6. package/api/rest/index.js.map +1 -0
  7. package/api/rpc/index.d.ts +2 -0
  8. package/api/rpc/index.js +263 -0
  9. package/api/rpc/index.js.map +1 -0
  10. package/api/utils.d.ts +12 -0
  11. package/api/utils.js +79 -0
  12. package/api/utils.js.map +1 -0
  13. package/express/index.d.ts +1 -0
  14. package/express/index.js +15 -0
  15. package/express/index.js.map +1 -1
  16. package/express/middleware.d.ts +10 -10
  17. package/express/middleware.js +55 -17
  18. package/express/middleware.js.map +1 -1
  19. package/fastify/index.d.ts +1 -0
  20. package/fastify/index.js +15 -0
  21. package/fastify/index.js.map +1 -1
  22. package/fastify/plugin.d.ts +4 -13
  23. package/fastify/plugin.js +32 -24
  24. package/fastify/plugin.js.map +1 -1
  25. package/next/app-route-handler.d.ts +15 -0
  26. package/next/app-route-handler.js +80 -0
  27. package/next/app-route-handler.js.map +1 -0
  28. package/next/index.d.ts +38 -0
  29. package/next/index.js +18 -0
  30. package/next/index.js.map +1 -0
  31. package/next/pages-route-handler.d.ts +9 -0
  32. package/next/pages-route-handler.js +68 -0
  33. package/next/pages-route-handler.js.map +1 -0
  34. package/package.json +18 -9
  35. package/sveltekit/handler.d.ts +19 -0
  36. package/sveltekit/handler.js +87 -0
  37. package/sveltekit/handler.js.map +1 -0
  38. package/sveltekit/index.d.ts +2 -0
  39. package/sveltekit/index.js +24 -0
  40. package/sveltekit/index.js.map +1 -0
  41. package/types.d.ts +96 -0
  42. package/types.js +3 -0
  43. package/types.js.map +1 -0
  44. package/openapi/index.d.ts +0 -46
  45. package/openapi/index.js +0 -193
  46. package/openapi/index.js.map +0 -1
  47. package/openapi/utils.d.ts +0 -4
  48. package/openapi/utils.js +0 -25
  49. package/openapi/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/rest/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { RequestContext, Response } from '../../types';
2
+ export default function makeHandler(): ({ prisma, method, path, query, requestBody, modelMeta, zodSchemas, logger, }: RequestContext) => Promise<Response>;
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const runtime_1 = require("@zenstackhq/runtime");
27
+ const superjson_1 = __importDefault(require("superjson"));
28
+ const upper_case_first_1 = require("upper-case-first");
29
+ const zod_validation_error_1 = require("zod-validation-error");
30
+ const base_1 = require("../base");
31
+ const utils_1 = require("../utils");
32
+ (0, utils_1.registerCustomSerializers)();
33
+ /**
34
+ * Prisma RPC style API request handler that mirrors the Prisma Client API
35
+ */
36
+ class RequestHandler extends base_1.APIHandlerBase {
37
+ handleRequest({ prisma, method, path, query, requestBody, modelMeta, zodSchemas, logger, }) {
38
+ var _a, _b;
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ modelMeta = modelMeta !== null && modelMeta !== void 0 ? modelMeta : this.defaultModelMeta;
41
+ if (!modelMeta) {
42
+ throw new Error('Model meta is not provided or loaded from default location');
43
+ }
44
+ const parts = path.split('/').filter((p) => !!p);
45
+ const op = parts.pop();
46
+ const model = parts.pop();
47
+ if (parts.length !== 0 || !op || !model) {
48
+ return { status: 400, body: this.makeError('invalid request path') };
49
+ }
50
+ method = method.toUpperCase();
51
+ const dbOp = op;
52
+ let args;
53
+ let resCode = 200;
54
+ switch (dbOp) {
55
+ case 'create':
56
+ case 'createMany':
57
+ case 'upsert':
58
+ if (method !== 'POST') {
59
+ return {
60
+ status: 400,
61
+ body: this.makeError('invalid request method, only POST is supported'),
62
+ };
63
+ }
64
+ if (!requestBody) {
65
+ return { status: 400, body: this.makeError('missing request body') };
66
+ }
67
+ args = requestBody;
68
+ // TODO: upsert's status code should be conditional
69
+ resCode = 201;
70
+ break;
71
+ case 'findFirst':
72
+ case 'findUnique':
73
+ case 'findMany':
74
+ case 'aggregate':
75
+ case 'groupBy':
76
+ case 'count':
77
+ if (method !== 'GET') {
78
+ return {
79
+ status: 400,
80
+ body: this.makeError('invalid request method, only GET is supported'),
81
+ };
82
+ }
83
+ try {
84
+ args = (query === null || query === void 0 ? void 0 : query.q) ? this.unmarshalQ(query.q, query.meta) : {};
85
+ }
86
+ catch (_c) {
87
+ return { status: 400, body: this.makeError('invalid "q" query parameter') };
88
+ }
89
+ break;
90
+ case 'update':
91
+ case 'updateMany':
92
+ if (method !== 'PUT' && method !== 'PATCH') {
93
+ return {
94
+ status: 400,
95
+ body: this.makeError('invalid request method, only PUT AND PATCH are supported'),
96
+ };
97
+ }
98
+ if (!requestBody) {
99
+ return { status: 400, body: this.makeError('missing request body') };
100
+ }
101
+ args = requestBody;
102
+ break;
103
+ case 'delete':
104
+ case 'deleteMany':
105
+ if (method !== 'DELETE') {
106
+ return {
107
+ status: 400,
108
+ body: this.makeError('invalid request method, only DELETE is supported'),
109
+ };
110
+ }
111
+ try {
112
+ args = (query === null || query === void 0 ? void 0 : query.q) ? this.unmarshalQ(query.q, query.meta) : {};
113
+ }
114
+ catch (_d) {
115
+ return { status: 400, body: this.makeError('invalid "q" query parameter') };
116
+ }
117
+ break;
118
+ default:
119
+ return { status: 400, body: this.makeError('invalid operation: ' + op) };
120
+ }
121
+ const { error, data: parsedArgs } = yield this.processRequestPayload(args, model, dbOp, zodSchemas);
122
+ if (error) {
123
+ return { status: 400, body: this.makeError(error) };
124
+ }
125
+ try {
126
+ if (!prisma[model]) {
127
+ return { status: 400, body: this.makeError(`unknown model name: ${model}`) };
128
+ }
129
+ const result = yield prisma[model][dbOp](parsedArgs);
130
+ (0, utils_1.processEntityData)(result);
131
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
132
+ let response = { data: result };
133
+ // superjson serialize response
134
+ if (result) {
135
+ const { json, meta } = superjson_1.default.serialize(result);
136
+ response = { data: json };
137
+ if (meta) {
138
+ response.meta = { serialization: meta };
139
+ }
140
+ }
141
+ return { status: resCode, body: response };
142
+ }
143
+ catch (err) {
144
+ if ((0, runtime_1.isPrismaClientKnownRequestError)(err)) {
145
+ (0, utils_1.logError)(logger, err.code, err.message);
146
+ if (err.code === runtime_1.PrismaErrorCode.CONSTRAINED_FAILED) {
147
+ // rejected by policy
148
+ return {
149
+ status: 403,
150
+ body: {
151
+ error: {
152
+ prisma: true,
153
+ rejectedByPolicy: true,
154
+ code: err.code,
155
+ message: err.message,
156
+ reason: (_a = err.meta) === null || _a === void 0 ? void 0 : _a.reason,
157
+ },
158
+ },
159
+ };
160
+ }
161
+ else {
162
+ return {
163
+ status: 400,
164
+ body: {
165
+ error: {
166
+ prisma: true,
167
+ code: err.code,
168
+ message: err.message,
169
+ reason: (_b = err.meta) === null || _b === void 0 ? void 0 : _b.reason,
170
+ },
171
+ },
172
+ };
173
+ }
174
+ }
175
+ else if ((0, runtime_1.isPrismaClientUnknownRequestError)(err) || (0, runtime_1.isPrismaClientValidationError)(err)) {
176
+ (0, utils_1.logError)(logger, err.message);
177
+ return {
178
+ status: 400,
179
+ body: {
180
+ error: {
181
+ prisma: true,
182
+ message: err.message,
183
+ },
184
+ },
185
+ };
186
+ }
187
+ else {
188
+ const _err = err;
189
+ (0, utils_1.logError)(logger, _err.message + (_err.stack ? '\n' + _err.stack : ''));
190
+ return {
191
+ status: 400,
192
+ body: this.makeError(err.message),
193
+ };
194
+ }
195
+ }
196
+ });
197
+ }
198
+ makeError(message) {
199
+ return { error: { message: message } };
200
+ }
201
+ processRequestPayload(
202
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
+ args, model, dbOp, zodSchemas) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const { meta } = args, rest = __rest(args, ["meta"]);
206
+ if (meta === null || meta === void 0 ? void 0 : meta.serialization) {
207
+ // superjson deserialization
208
+ args = superjson_1.default.deserialize({ json: rest, meta: meta.serialization });
209
+ }
210
+ return this.zodValidate(zodSchemas, model, dbOp, args);
211
+ });
212
+ }
213
+ getZodSchema(zodSchemas, model, operation) {
214
+ var _a, _b;
215
+ // e.g.: UserInputSchema { findUnique: [schema] }
216
+ return (_b = (_a = zodSchemas.input) === null || _a === void 0 ? void 0 : _a[`${(0, upper_case_first_1.upperCaseFirst)(model)}InputSchema`]) === null || _b === void 0 ? void 0 : _b[operation];
217
+ }
218
+ zodValidate(zodSchemas, model, operation, args) {
219
+ const zodSchema = zodSchemas && this.getZodSchema(zodSchemas, model, operation);
220
+ if (zodSchema) {
221
+ const parseResult = zodSchema.safeParse(args);
222
+ if (parseResult.success) {
223
+ return { data: args, error: undefined };
224
+ }
225
+ else {
226
+ return { data: undefined, error: (0, zod_validation_error_1.fromZodError)(parseResult.error).message };
227
+ }
228
+ }
229
+ else {
230
+ return { data: args, error: undefined };
231
+ }
232
+ }
233
+ unmarshalQ(value, meta) {
234
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
235
+ let parsedValue;
236
+ try {
237
+ parsedValue = JSON.parse(value);
238
+ }
239
+ catch (_a) {
240
+ throw new Error('invalid "q" query parameter');
241
+ }
242
+ if (meta) {
243
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
244
+ let parsedMeta;
245
+ try {
246
+ parsedMeta = JSON.parse(meta);
247
+ }
248
+ catch (_b) {
249
+ throw new Error('invalid "meta" query parameter');
250
+ }
251
+ if (parsedMeta.serialization) {
252
+ return superjson_1.default.deserialize({ json: parsedValue, meta: parsedMeta.serialization });
253
+ }
254
+ }
255
+ return parsedValue;
256
+ }
257
+ }
258
+ function makeHandler() {
259
+ const handler = new RequestHandler();
260
+ return handler.handleRequest.bind(handler);
261
+ }
262
+ exports.default = makeHandler;
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/rpc/index.ts"],"names":[],"mappings":"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"}
package/api/utils.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { LoggerConfig } from '../types';
2
+ export declare function logError(logger: LoggerConfig | undefined | null, message: string, code?: string): void;
3
+ export declare function logWarning(logger: LoggerConfig | undefined | null, message: string): void;
4
+ export declare function logInfo(logger: LoggerConfig | undefined | null, message: string): void;
5
+ /**
6
+ * Processes entity data returned from Prisma call.
7
+ */
8
+ export declare function processEntityData(data: any): void;
9
+ /**
10
+ * Registers custom superjson serializers.
11
+ */
12
+ export declare function registerCustomSerializers(): void;
package/api/utils.js ADDED
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerCustomSerializers = exports.processEntityData = exports.logInfo = exports.logWarning = exports.logError = void 0;
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ const runtime_1 = require("@zenstackhq/runtime");
9
+ const decimal_js_1 = require("decimal.js");
10
+ const superjson_1 = __importDefault(require("superjson"));
11
+ function logError(logger, message, code) {
12
+ if (logger === undefined) {
13
+ console.error(`@zenstackhq/server: error ${code ? '[' + code + ']' : ''}, ${message}`);
14
+ }
15
+ else if (logger === null || logger === void 0 ? void 0 : logger.error) {
16
+ logger.error(message, code);
17
+ }
18
+ }
19
+ exports.logError = logError;
20
+ function logWarning(logger, message) {
21
+ if (logger === undefined) {
22
+ console.warn(`@zenstackhq/server: ${message}`);
23
+ }
24
+ else if (logger === null || logger === void 0 ? void 0 : logger.warn) {
25
+ logger.warn(message);
26
+ }
27
+ }
28
+ exports.logWarning = logWarning;
29
+ function logInfo(logger, message) {
30
+ if (logger === undefined) {
31
+ console.log(`@zenstackhq/server: ${message}`);
32
+ }
33
+ else if (logger === null || logger === void 0 ? void 0 : logger.info) {
34
+ logger.info(message);
35
+ }
36
+ }
37
+ exports.logInfo = logInfo;
38
+ function stripAuxFields(data) {
39
+ if (Array.isArray(data)) {
40
+ return data.forEach(stripAuxFields);
41
+ }
42
+ else if (data && typeof data === 'object') {
43
+ for (const [key, value] of Object.entries(data)) {
44
+ if (runtime_1.AUXILIARY_FIELDS.includes(key)) {
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
+ delete data[key];
47
+ }
48
+ else {
49
+ stripAuxFields(value);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ /**
55
+ * Processes entity data returned from Prisma call.
56
+ */
57
+ function processEntityData(data) {
58
+ if (data) {
59
+ stripAuxFields(data);
60
+ }
61
+ }
62
+ exports.processEntityData = processEntityData;
63
+ /**
64
+ * Registers custom superjson serializers.
65
+ */
66
+ function registerCustomSerializers() {
67
+ superjson_1.default.registerCustom({
68
+ isApplicable: (v) => decimal_js_1.Decimal.isDecimal(v),
69
+ serialize: (v) => v.toJSON(),
70
+ deserialize: (v) => new decimal_js_1.Decimal(v),
71
+ }, 'Decimal');
72
+ superjson_1.default.registerCustom({
73
+ isApplicable: (v) => Buffer.isBuffer(v),
74
+ serialize: (v) => v.toString('base64'),
75
+ deserialize: (v) => Buffer.from(v, 'base64'),
76
+ }, 'Bytes');
77
+ }
78
+ exports.registerCustomSerializers = registerCustomSerializers;
79
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export { default as ZenStackMiddleware } from './middleware';
2
+ export * from './middleware';
package/express/index.js CHANGED
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
18
  };
@@ -6,4 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
20
  exports.ZenStackMiddleware = void 0;
7
21
  var middleware_1 = require("./middleware");
8
22
  Object.defineProperty(exports, "ZenStackMiddleware", { enumerable: true, get: function () { return __importDefault(middleware_1).default; } });
23
+ __exportStar(require("./middleware"), exports);
9
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA6D;AAApD,iIAAA,OAAO,OAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,2CAA6D;AAApD,iIAAA,OAAO,OAAsB;AACtC,+CAA6B"}
@@ -1,23 +1,23 @@
1
- import { ModelZodSchema } from '@zenstackhq/runtime/zod';
2
1
  import type { Handler, Request, Response } from 'express';
3
- import { LoggerConfig } from '../openapi';
2
+ import { AdapterBaseOptions } from '../types';
4
3
  /**
5
4
  * Express middleware options
6
5
  */
7
- export interface MiddlewareOptions {
6
+ export interface MiddlewareOptions extends AdapterBaseOptions {
8
7
  /**
9
8
  * Callback for getting a PrismaClient for the given request
10
9
  */
11
10
  getPrisma: (req: Request, res: Response) => unknown | Promise<unknown>;
12
11
  /**
13
- * Logger settings
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;
14
19
  */
15
- logger?: LoggerConfig;
16
- /**
17
- * Zod schemas for validating request input. Pass `true` to load from standard location
18
- * (need to enable `@core/zod` plugin in schema.zmodel) or omit to disable input validation.
19
- */
20
- zodSchemas?: ModelZodSchema | boolean;
20
+ sendResponse?: boolean;
21
21
  }
22
22
  /**
23
23
  * Creates an Express middleware for handling CRUD requests.
@@ -8,35 +8,73 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const zod_1 = require("@zenstackhq/runtime/zod");
13
- const openapi_1 = require("../openapi");
15
+ const rpc_1 = __importDefault(require("../api/rpc"));
14
16
  /**
15
17
  * Creates an Express middleware for handling CRUD requests.
16
18
  */
17
19
  const factory = (options) => {
18
- let schemas;
20
+ let zodSchemas;
19
21
  if (typeof options.zodSchemas === 'object') {
20
- schemas = options.zodSchemas;
22
+ zodSchemas = options.zodSchemas;
21
23
  }
22
24
  else if (options.zodSchemas === true) {
23
- schemas = (0, zod_1.getModelZodSchemas)();
25
+ try {
26
+ zodSchemas = require('@zenstackhq/runtime/zod');
27
+ }
28
+ catch (_a) {
29
+ throw new Error('Unable to load zod schemas from default location');
30
+ }
24
31
  }
25
- return (request, response) => __awaiter(void 0, void 0, void 0, function* () {
32
+ const requestHandler = options.handler || (0, rpc_1.default)();
33
+ if (options.useSuperJson !== undefined) {
34
+ console.warn('The option "useSuperJson" is deprecated. The server APIs automatically use superjson for serialization.');
35
+ }
36
+ return (request, response, next) => __awaiter(void 0, void 0, void 0, function* () {
26
37
  const prisma = (yield options.getPrisma(request, response));
27
- if (!prisma) {
38
+ const { sendResponse } = options;
39
+ if (sendResponse === false && !prisma) {
28
40
  throw new Error('unable to get prisma from request context');
29
41
  }
30
- const r = yield (0, openapi_1.handleRequest)({
31
- method: request.method,
32
- path: request.path,
33
- query: request.query,
34
- requestBody: request.body,
35
- prisma,
36
- logger: options.logger,
37
- zodSchemas: schemas,
38
- });
39
- response.status(r.status).json(r.body);
42
+ if (!prisma) {
43
+ return response.status(500).json({ message: 'unable to get prisma from request context' });
44
+ }
45
+ // express converts query parameters with square brackets into object
46
+ // e.g.: filter[foo]=bar is parsed to { filter: { foo: 'bar' } }
47
+ // we need to revert this behavior and reconstruct params from original URL
48
+ const url = request.protocol + '://' + request.get('host') + request.originalUrl;
49
+ const searchParams = new URL(url).searchParams;
50
+ const query = Object.fromEntries(searchParams);
51
+ try {
52
+ const r = yield requestHandler({
53
+ method: request.method,
54
+ path: request.path,
55
+ query,
56
+ requestBody: request.body,
57
+ prisma,
58
+ modelMeta: options.modelMeta,
59
+ zodSchemas,
60
+ logger: options.logger,
61
+ });
62
+ if (sendResponse === false) {
63
+ // attach response and pass control to the next middleware
64
+ response.locals = {
65
+ status: r.status,
66
+ body: r.body,
67
+ };
68
+ return next();
69
+ }
70
+ return response.status(r.status).json(r.body);
71
+ }
72
+ catch (err) {
73
+ if (sendResponse === false) {
74
+ throw err;
75
+ }
76
+ return response.status(500).json({ message: `An unhandled error occurred: ${err}` });
77
+ }
40
78
  });
41
79
  };
42
80
  exports.default = factory;