prisma-generator-express 1.45.1 → 1.47.0
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/dist/client/encodeQueryParams.js +4 -0
- package/dist/client/encodeQueryParams.js.map +1 -1
- package/dist/copy/misc.d.ts +4 -2
- package/dist/copy/misc.js +35 -24
- package/dist/copy/misc.js.map +1 -1
- package/dist/generators/generateFastifyHandler.js +2 -4
- package/dist/generators/generateFastifyHandler.js.map +1 -1
- package/dist/generators/generateHonoHandler.js +2 -4
- package/dist/generators/generateHonoHandler.js.map +1 -1
- package/dist/generators/generateImportPrismaStatement.d.ts +0 -1
- package/dist/generators/generateImportPrismaStatement.js +2 -20
- package/dist/generators/generateImportPrismaStatement.js.map +1 -1
- package/dist/generators/generateOperationCore.js +37 -1
- package/dist/generators/generateOperationCore.js.map +1 -1
- package/dist/generators/generateQueryBuilderHelper.js +9 -0
- package/dist/generators/generateQueryBuilderHelper.js.map +1 -1
- package/dist/generators/generateRelationMeta.js +0 -10
- package/dist/generators/generateRelationMeta.js.map +1 -1
- package/dist/generators/generateRouteConfigType.js +33 -12
- package/dist/generators/generateRouteConfigType.js.map +1 -1
- package/dist/generators/generateRouter.d.ts +0 -1
- package/dist/generators/generateRouter.js +96 -70
- package/dist/generators/generateRouter.js.map +1 -1
- package/dist/generators/generateRouterFastify.js +83 -89
- package/dist/generators/generateRouterFastify.js.map +1 -1
- package/dist/generators/generateRouterHono.js +257 -237
- package/dist/generators/generateRouterHono.js.map +1 -1
- package/dist/generators/generateUnifiedDocs.d.ts +2 -2
- package/dist/generators/generateUnifiedDocs.js +90 -252
- package/dist/generators/generateUnifiedDocs.js.map +1 -1
- package/dist/generators/generateUnifiedHandler.js +2 -4
- package/dist/generators/generateUnifiedHandler.js.map +1 -1
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/dist/utils/copyFiles.js +3 -2
- package/dist/utils/copyFiles.js.map +1 -1
- package/dist/utils/strings.d.ts +0 -1
- package/dist/utils/strings.js +0 -9
- package/dist/utils/strings.js.map +1 -1
- package/package.json +1 -1
- package/src/client/encodeQueryParams.ts +7 -15
- package/src/copy/autoIncludePlanner.ts +4 -17
- package/src/copy/autoIncludeRuntime.ts +11 -19
- package/src/copy/buildModelOpenApi.ts +11 -14
- package/src/copy/docsRenderer.ts +8 -14
- package/src/copy/misc.ts +28 -23
- package/src/copy/operationRuntime.ts +61 -43
- package/src/copy/parseQueryParams.ts +5 -14
- package/src/copy/routeConfig.express.ts +24 -18
- package/src/copy/routeConfig.fastify.ts +1 -1
- package/src/copy/routeConfig.hono.ts +34 -6
- package/src/copy/routeConfig.ts +3 -2
- package/src/generators/generateFastifyHandler.ts +2 -5
- package/src/generators/generateHonoHandler.ts +2 -5
- package/src/generators/generateImportPrismaStatement.ts +3 -35
- package/src/generators/generateOperationCore.ts +37 -1
- package/src/generators/generateQueryBuilderHelper.ts +9 -0
- package/src/generators/generateRelationMeta.ts +0 -10
- package/src/generators/generateRouteConfigType.ts +34 -10
- package/src/generators/generateRouter.ts +96 -71
- package/src/generators/generateRouterFastify.ts +83 -89
- package/src/generators/generateRouterHono.ts +257 -237
- package/src/generators/generateUnifiedDocs.ts +89 -267
- package/src/generators/generateUnifiedHandler.ts +2 -4
- package/src/index.ts +45 -14
- package/src/utils/copyFiles.ts +2 -2
- package/src/utils/strings.ts +0 -8
- package/src/copy/createOutputValidatorMiddleware.ts +0 -47
- package/src/copy/createValidatorMiddleware.ts +0 -62
- package/src/copy/transformZod.ts +0 -139
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateRouterFunction = generateRouterFunction;
|
|
4
|
-
const strings_1 = require("../utils/strings");
|
|
5
4
|
const generateRouteConfigType_1 = require("./generateRouteConfigType");
|
|
6
5
|
const importExt_1 = require("../utils/importExt");
|
|
7
6
|
function generateRouterFunction({ model, enums, guardShapesImport, importStyle, }) {
|
|
8
7
|
const ext = (0, importExt_1.importExt)(importStyle);
|
|
9
8
|
const modelName = model.name;
|
|
10
|
-
const prefix = (0, strings_1.toCamelCase)(modelName);
|
|
11
9
|
const modelNameLower = modelName.toLowerCase();
|
|
12
10
|
const delegateKey = modelName.charAt(0).toLowerCase() + modelName.slice(1);
|
|
13
|
-
const routerFunctionName = `${
|
|
11
|
+
const routerFunctionName = `${modelName}Router`;
|
|
14
12
|
const fieldsMeta = model.fields.map((f) => ({
|
|
15
13
|
name: f.name,
|
|
16
14
|
kind: f.kind,
|
|
@@ -33,29 +31,29 @@ function generateRouterFunction({ model, enums, guardShapesImport, importStyle,
|
|
|
33
31
|
import type { Request, Response, NextFunction, RequestHandler } from 'express'
|
|
34
32
|
import { startQueryBuilder } from '../queryBuilder${ext}'
|
|
35
33
|
import {
|
|
36
|
-
${
|
|
37
|
-
${
|
|
38
|
-
${
|
|
39
|
-
${
|
|
40
|
-
${
|
|
41
|
-
${
|
|
42
|
-
${
|
|
43
|
-
${
|
|
44
|
-
${
|
|
45
|
-
${
|
|
46
|
-
${
|
|
47
|
-
${
|
|
48
|
-
${
|
|
49
|
-
${
|
|
50
|
-
${
|
|
51
|
-
${
|
|
52
|
-
${
|
|
53
|
-
${
|
|
34
|
+
${modelName}FindUnique,
|
|
35
|
+
${modelName}FindUniqueOrThrow,
|
|
36
|
+
${modelName}FindFirst,
|
|
37
|
+
${modelName}FindFirstOrThrow,
|
|
38
|
+
${modelName}FindMany,
|
|
39
|
+
${modelName}FindManyPaginated,
|
|
40
|
+
${modelName}Create,
|
|
41
|
+
${modelName}CreateMany,
|
|
42
|
+
${modelName}CreateManyAndReturn,
|
|
43
|
+
${modelName}Update,
|
|
44
|
+
${modelName}UpdateMany,
|
|
45
|
+
${modelName}UpdateManyAndReturn,
|
|
46
|
+
${modelName}Upsert,
|
|
47
|
+
${modelName}Delete,
|
|
48
|
+
${modelName}DeleteMany,
|
|
49
|
+
${modelName}Aggregate,
|
|
50
|
+
${modelName}Count,
|
|
51
|
+
${modelName}GroupBy,
|
|
54
52
|
} from './${modelName}Handlers${ext}'
|
|
55
53
|
import * as core from './${modelName}Core${ext}'
|
|
56
54
|
import type { RouteConfig, QueryBuilderConfig } from '../routeConfig.target${ext}'
|
|
57
55
|
import { parseQueryParams } from '../parseQueryParams${ext}'
|
|
58
|
-
import { sanitizeKeys } from '../misc${ext}'
|
|
56
|
+
import { sanitizeKeys, normalizePrefix, getEnv } from '../misc${ext}'
|
|
59
57
|
import { buildModelOpenApi } from '../buildModelOpenApi${ext}'
|
|
60
58
|
import type { OperationContext } from '../operationRuntime${ext}'
|
|
61
59
|
import {
|
|
@@ -72,7 +70,7 @@ import { relationModels } from '../relationModels${ext}'
|
|
|
72
70
|
import { runAutoIncludeProgressive } from '../autoIncludeRuntime${ext}'
|
|
73
71
|
|
|
74
72
|
${(0, generateRouteConfigType_1.generateRouteConfigType)(modelName, 'RequestHandler', guardShapesImport, importStyle, 'express')}
|
|
75
|
-
const _env =
|
|
73
|
+
const _env = getEnv()
|
|
76
74
|
|
|
77
75
|
const MODEL_FIELDS = ${JSON.stringify(fieldsMeta, null, 2)} as const
|
|
78
76
|
const MODEL_ENUMS = ${JSON.stringify(enumsMeta, null, 2)} as const
|
|
@@ -99,19 +97,10 @@ type LocalsBag = {
|
|
|
99
97
|
data?: unknown
|
|
100
98
|
}
|
|
101
99
|
|
|
102
|
-
const defaultOpConfig: OperationConfigLike = {
|
|
103
|
-
before: [],
|
|
104
|
-
after: [],
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function normalizePrefix(p: string): string {
|
|
108
|
-
if (!p) return ''
|
|
109
|
-
let result = p
|
|
110
|
-
if (!result.startsWith('/')) result = '/' + result
|
|
111
|
-
while (result.length > 1 && result.endsWith('/')) result = result.slice(0, -1)
|
|
112
|
-
if (result === '/') return ''
|
|
113
|
-
return result
|
|
114
|
-
}
|
|
100
|
+
const defaultOpConfig: OperationConfigLike = Object.freeze({
|
|
101
|
+
before: Object.freeze([]) as unknown as RequestHandler[],
|
|
102
|
+
after: Object.freeze([]) as unknown as RequestHandler[],
|
|
103
|
+
})
|
|
115
104
|
|
|
116
105
|
function isQueryBuilderEnabled(config: { queryBuilder?: QueryBuilderConfig | false }): boolean {
|
|
117
106
|
if (config.queryBuilder === false) return false
|
|
@@ -130,9 +119,8 @@ function readLocals(res: Response): LocalsBag {
|
|
|
130
119
|
return res.locals as LocalsBag
|
|
131
120
|
}
|
|
132
121
|
|
|
133
|
-
export function ${routerFunctionName}<TCtx = unknown>(config: ${modelName}RouteConfig<TCtx> = {}) {
|
|
122
|
+
export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${modelName}RouteConfig<TCtx, TPrisma> = {}) {
|
|
134
123
|
const router = express.Router()
|
|
135
|
-
router.use(express.json())
|
|
136
124
|
|
|
137
125
|
const customPrefix = normalizePrefix(config.customUrlPrefix || '')
|
|
138
126
|
const modelPrefix = config.addModelPrefix !== false ? '/${modelNameLower}' : ''
|
|
@@ -143,6 +131,25 @@ export function ${routerFunctionName}<TCtx = unknown>(config: ${modelName}RouteC
|
|
|
143
131
|
|
|
144
132
|
const postReadsEnabled = !config.disablePostReads
|
|
145
133
|
|
|
134
|
+
const openApiJsonSpec = openApiDisabled
|
|
135
|
+
? null
|
|
136
|
+
: buildModelOpenApi(
|
|
137
|
+
'${modelName}',
|
|
138
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
139
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
140
|
+
config as unknown as Parameters<typeof buildModelOpenApi>[3],
|
|
141
|
+
{ format: 'json' },
|
|
142
|
+
)
|
|
143
|
+
const openApiYamlSpec = openApiDisabled
|
|
144
|
+
? null
|
|
145
|
+
: buildModelOpenApi(
|
|
146
|
+
'${modelName}',
|
|
147
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
148
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
149
|
+
config as unknown as Parameters<typeof buildModelOpenApi>[3],
|
|
150
|
+
{ format: 'yaml' },
|
|
151
|
+
)
|
|
152
|
+
|
|
146
153
|
const qbEnabled = isQueryBuilderEnabled(config)
|
|
147
154
|
if (qbEnabled) {
|
|
148
155
|
const qbConfig = getQueryBuilderConfig(config)
|
|
@@ -202,7 +209,7 @@ export function ${routerFunctionName}<TCtx = unknown>(config: ${modelName}RouteC
|
|
|
202
209
|
}
|
|
203
210
|
}
|
|
204
211
|
|
|
205
|
-
const maybeProgressiveSSE = (
|
|
212
|
+
const maybeProgressiveSSE = (
|
|
206
213
|
opConfig: OperationConfigLike,
|
|
207
214
|
coreFn: (ctx: OperationContext) => Promise<unknown>,
|
|
208
215
|
baseOp: string,
|
|
@@ -325,12 +332,10 @@ const maybeProgressiveSSE = (
|
|
|
325
332
|
const openapiJsonPath = basePath ? \`\${basePath}/openapi.json\` : '/openapi.json'
|
|
326
333
|
const openapiYamlPath = basePath ? \`\${basePath}/openapi.yaml\` : '/openapi.yaml'
|
|
327
334
|
router.get(openapiJsonPath, (_req, res) => {
|
|
328
|
-
|
|
329
|
-
res.json(spec)
|
|
335
|
+
res.json(openApiJsonSpec)
|
|
330
336
|
})
|
|
331
337
|
router.get(openapiYamlPath, (_req, res) => {
|
|
332
|
-
|
|
333
|
-
res.type('application/yaml').send(spec as string)
|
|
338
|
+
res.type('application/yaml').send(openApiYamlSpec as string)
|
|
334
339
|
})
|
|
335
340
|
}
|
|
336
341
|
|
|
@@ -338,66 +343,66 @@ const maybeProgressiveSSE = (
|
|
|
338
343
|
const opConfig: OperationConfigLike = (config.findFirst as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
339
344
|
const { before = [], after = [] } = opConfig
|
|
340
345
|
const path = basePath ? \`\${basePath}/first\` : '/first'
|
|
341
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findFirst, 'findFirst'), ${
|
|
342
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
346
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findFirst, 'findFirst'), ${modelName}FindFirst as RequestHandler, ...after, respond)
|
|
347
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}FindFirst as RequestHandler, ...after, respond)
|
|
343
348
|
}
|
|
344
349
|
if (config.enableAll || config.findFirstOrThrow) {
|
|
345
350
|
const opConfig: OperationConfigLike = (config.findFirstOrThrow as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
346
351
|
const { before = [], after = [] } = opConfig
|
|
347
352
|
const path = basePath ? \`\${basePath}/first/strict\` : '/first/strict'
|
|
348
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findFirstOrThrow, 'findFirstOrThrow'), ${
|
|
349
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
353
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findFirstOrThrow, 'findFirstOrThrow'), ${modelName}FindFirstOrThrow as RequestHandler, ...after, respond)
|
|
354
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}FindFirstOrThrow as RequestHandler, ...after, respond)
|
|
350
355
|
}
|
|
351
356
|
if (config.enableAll || config.findManyPaginated) {
|
|
352
357
|
const opConfig: OperationConfigLike = (config.findManyPaginated as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
353
358
|
const { before = [], after = [] } = opConfig
|
|
354
359
|
const path = basePath ? \`\${basePath}/paginated\` : '/paginated'
|
|
355
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findManyPaginated, 'findManyPaginated'), ${
|
|
356
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
360
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findManyPaginated, 'findManyPaginated'), ${modelName}FindManyPaginated as RequestHandler, ...after, respond)
|
|
361
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}FindManyPaginated as RequestHandler, ...after, respond)
|
|
357
362
|
}
|
|
358
363
|
if (config.enableAll || config.aggregate) {
|
|
359
364
|
const opConfig: OperationConfigLike = (config.aggregate as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
360
365
|
const { before = [], after = [] } = opConfig
|
|
361
366
|
const path = basePath ? \`\${basePath}/aggregate\` : '/aggregate'
|
|
362
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.aggregate, 'aggregate'), ${
|
|
363
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
367
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.aggregate, 'aggregate'), ${modelName}Aggregate as RequestHandler, ...after, respond)
|
|
368
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}Aggregate as RequestHandler, ...after, respond)
|
|
364
369
|
}
|
|
365
370
|
if (config.enableAll || config.count) {
|
|
366
371
|
const opConfig: OperationConfigLike = (config.count as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
367
372
|
const { before = [], after = [] } = opConfig
|
|
368
373
|
const path = basePath ? \`\${basePath}/count\` : '/count'
|
|
369
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.count, 'count'), ${
|
|
370
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
374
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.count, 'count'), ${modelName}Count as RequestHandler, ...after, respond)
|
|
375
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}Count as RequestHandler, ...after, respond)
|
|
371
376
|
}
|
|
372
377
|
if (config.enableAll || config.groupBy) {
|
|
373
378
|
const opConfig: OperationConfigLike = (config.groupBy as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
374
379
|
const { before = [], after = [] } = opConfig
|
|
375
380
|
const path = basePath ? \`\${basePath}/groupby\` : '/groupby'
|
|
376
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.groupBy, 'groupBy'), ${
|
|
377
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
381
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.groupBy, 'groupBy'), ${modelName}GroupBy as RequestHandler, ...after, respond)
|
|
382
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}GroupBy as RequestHandler, ...after, respond)
|
|
378
383
|
}
|
|
379
384
|
if (config.enableAll || config.findUniqueOrThrow) {
|
|
380
385
|
const opConfig: OperationConfigLike = (config.findUniqueOrThrow as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
381
386
|
const { before = [], after = [] } = opConfig
|
|
382
387
|
const path = basePath ? \`\${basePath}/unique/strict\` : '/unique/strict'
|
|
383
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findUniqueOrThrow, 'findUniqueOrThrow'), ${
|
|
384
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
388
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findUniqueOrThrow, 'findUniqueOrThrow'), ${modelName}FindUniqueOrThrow as RequestHandler, ...after, respond)
|
|
389
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}FindUniqueOrThrow as RequestHandler, ...after, respond)
|
|
385
390
|
}
|
|
386
391
|
if (config.enableAll || config.findUnique) {
|
|
387
392
|
const opConfig: OperationConfigLike = (config.findUnique as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
388
393
|
const { before = [], after = [] } = opConfig
|
|
389
394
|
const path = basePath ? \`\${basePath}/unique\` : '/unique'
|
|
390
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findUnique, 'findUnique'), ${
|
|
391
|
-
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
395
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findUnique, 'findUnique'), ${modelName}FindUnique as RequestHandler, ...after, respond)
|
|
396
|
+
if (postReadsEnabled) router.post(path, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}FindUnique as RequestHandler, ...after, respond)
|
|
392
397
|
}
|
|
393
398
|
if (config.enableAll || config.findMany) {
|
|
394
399
|
const opConfig: OperationConfigLike = (config.findMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
395
400
|
const { before = [], after = [] } = opConfig
|
|
396
401
|
const path = basePath || '/'
|
|
397
|
-
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findMany, 'findMany'), ${
|
|
402
|
+
router.get(path, parseQuery, setShape(opConfig), ...before, maybeProgressiveSSE(opConfig, core.findMany, 'findMany'), ${modelName}FindMany as RequestHandler, ...after, respond)
|
|
398
403
|
if (postReadsEnabled) {
|
|
399
404
|
const postPath = basePath ? \`\${basePath}/read\` : '/read'
|
|
400
|
-
router.post(postPath, parseBodyAsQuery, setShape(opConfig), ...before, ${
|
|
405
|
+
router.post(postPath, parseBodyAsQuery, setShape(opConfig), ...before, ${modelName}FindMany as RequestHandler, ...after, respond)
|
|
401
406
|
}
|
|
402
407
|
}
|
|
403
408
|
|
|
@@ -405,55 +410,76 @@ const maybeProgressiveSSE = (
|
|
|
405
410
|
const opConfig: OperationConfigLike = (config.createManyAndReturn as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
406
411
|
const { before = [], after = [] } = opConfig
|
|
407
412
|
const path = basePath ? \`\${basePath}/many/return\` : '/many/return'
|
|
408
|
-
router.post(path, setShape(opConfig), ...before, ${
|
|
413
|
+
router.post(path, setShape(opConfig), ...before, ${modelName}CreateManyAndReturn as RequestHandler, ...after, respondCreated)
|
|
409
414
|
}
|
|
410
415
|
if (config.enableAll || config.createMany) {
|
|
411
416
|
const opConfig: OperationConfigLike = (config.createMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
412
417
|
const { before = [], after = [] } = opConfig
|
|
413
418
|
const path = basePath ? \`\${basePath}/many\` : '/many'
|
|
414
|
-
router.post(path, setShape(opConfig), ...before, ${
|
|
419
|
+
router.post(path, setShape(opConfig), ...before, ${modelName}CreateMany as RequestHandler, ...after, respondCreated)
|
|
415
420
|
}
|
|
416
421
|
if (config.enableAll || config.create) {
|
|
417
422
|
const opConfig: OperationConfigLike = (config.create as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
418
423
|
const { before = [], after = [] } = opConfig
|
|
419
424
|
const path = basePath || '/'
|
|
420
|
-
router.post(path, setShape(opConfig), ...before, ${
|
|
425
|
+
router.post(path, setShape(opConfig), ...before, ${modelName}Create as RequestHandler, ...after, respondCreated)
|
|
421
426
|
}
|
|
422
427
|
if (config.enableAll || config.updateManyAndReturn) {
|
|
423
428
|
const opConfig: OperationConfigLike = (config.updateManyAndReturn as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
424
429
|
const { before = [], after = [] } = opConfig
|
|
425
430
|
const path = basePath ? \`\${basePath}/many/return\` : '/many/return'
|
|
426
|
-
router.put(path, setShape(opConfig), ...before, ${
|
|
431
|
+
router.put(path, setShape(opConfig), ...before, ${modelName}UpdateManyAndReturn as RequestHandler, ...after, respond)
|
|
427
432
|
}
|
|
428
433
|
if (config.enableAll || config.updateMany) {
|
|
429
434
|
const opConfig: OperationConfigLike = (config.updateMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
430
435
|
const { before = [], after = [] } = opConfig
|
|
431
436
|
const path = basePath ? \`\${basePath}/many\` : '/many'
|
|
432
|
-
router.put(path, setShape(opConfig), ...before, ${
|
|
437
|
+
router.put(path, setShape(opConfig), ...before, ${modelName}UpdateMany as RequestHandler, ...after, respond)
|
|
433
438
|
}
|
|
434
439
|
if (config.enableAll || config.update) {
|
|
435
440
|
const opConfig: OperationConfigLike = (config.update as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
436
441
|
const { before = [], after = [] } = opConfig
|
|
437
442
|
const path = basePath || '/'
|
|
438
|
-
router.put(path, setShape(opConfig), ...before, ${
|
|
443
|
+
router.put(path, setShape(opConfig), ...before, ${modelName}Update as RequestHandler, ...after, respond)
|
|
439
444
|
}
|
|
440
445
|
if (config.enableAll || config.upsert) {
|
|
441
446
|
const opConfig: OperationConfigLike = (config.upsert as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
442
447
|
const { before = [], after = [] } = opConfig
|
|
443
448
|
const path = basePath || '/'
|
|
444
|
-
router.patch(path, setShape(opConfig), ...before, ${
|
|
449
|
+
router.patch(path, setShape(opConfig), ...before, ${modelName}Upsert as RequestHandler, ...after, respond)
|
|
445
450
|
}
|
|
446
451
|
if (config.enableAll || config.deleteMany) {
|
|
447
452
|
const opConfig: OperationConfigLike = (config.deleteMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
448
453
|
const { before = [], after = [] } = opConfig
|
|
449
454
|
const path = basePath ? \`\${basePath}/many\` : '/many'
|
|
450
|
-
router.delete(path, setShape(opConfig), ...before, ${
|
|
455
|
+
router.delete(path, setShape(opConfig), ...before, ${modelName}DeleteMany as RequestHandler, ...after, respond)
|
|
451
456
|
}
|
|
452
457
|
if (config.enableAll || config.delete) {
|
|
453
458
|
const opConfig: OperationConfigLike = (config.delete as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
454
459
|
const { before = [], after = [] } = opConfig
|
|
455
460
|
const path = basePath || '/'
|
|
456
|
-
router.delete(path, setShape(opConfig), ...before, ${
|
|
461
|
+
router.delete(path, setShape(opConfig), ...before, ${modelName}Delete as RequestHandler, ...after, respond)
|
|
462
|
+
}
|
|
463
|
+
if (config.updateEach) {
|
|
464
|
+
const opConfig: OperationConfigLike = (config.batch as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
465
|
+
const { before = [], after = [] } = opConfig
|
|
466
|
+
const path = basePath ? \`\${basePath}/batch\` : '/batch'
|
|
467
|
+
router.post(
|
|
468
|
+
path,
|
|
469
|
+
setShape(opConfig),
|
|
470
|
+
...before,
|
|
471
|
+
async (req: Request, res: Response, next: NextFunction) => {
|
|
472
|
+
try {
|
|
473
|
+
const atomic = req.get('x-batch-atomic') === 'true'
|
|
474
|
+
readLocals(res).data = await core.batch(buildContext(req, res), atomic)
|
|
475
|
+
next()
|
|
476
|
+
} catch (err) {
|
|
477
|
+
next(mapError(err))
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
...after,
|
|
481
|
+
respond,
|
|
482
|
+
)
|
|
457
483
|
}
|
|
458
484
|
|
|
459
485
|
router.use((err: unknown, _req: Request, res: Response, next: NextFunction) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRouter.js","sourceRoot":"","sources":["../../src/generators/generateRouter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateRouter.js","sourceRoot":"","sources":["../../src/generators/generateRouter.ts"],"names":[],"mappings":"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"}
|