prisma-generator-express 1.42.0 → 1.44.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/generators/generateFastifyHandler.d.ts +2 -0
- package/dist/generators/generateFastifyHandler.js +21 -6
- package/dist/generators/generateFastifyHandler.js.map +1 -1
- package/dist/generators/generateHonoHandler.d.ts +2 -0
- package/dist/generators/generateHonoHandler.js +8 -6
- package/dist/generators/generateHonoHandler.js.map +1 -1
- package/dist/generators/generateOperationCore.d.ts +0 -1
- package/dist/generators/generateOperationCore.js +34 -546
- package/dist/generators/generateOperationCore.js.map +1 -1
- package/dist/generators/generateRelationMeta.d.ts +13 -0
- package/dist/generators/generateRelationMeta.js +110 -0
- package/dist/generators/generateRelationMeta.js.map +1 -0
- package/dist/generators/generateRouteConfigType.js +13 -5
- package/dist/generators/generateRouteConfigType.js.map +1 -1
- package/dist/generators/generateRouter.js +83 -19
- package/dist/generators/generateRouter.js.map +1 -1
- package/dist/generators/generateRouterFastify.js +127 -384
- package/dist/generators/generateRouterFastify.js.map +1 -1
- package/dist/generators/generateRouterHono.js +48 -36
- package/dist/generators/generateRouterHono.js.map +1 -1
- package/dist/generators/generateUnifiedHandler.d.ts +2 -0
- package/dist/generators/generateUnifiedHandler.js +28 -10
- package/dist/generators/generateUnifiedHandler.js.map +1 -1
- package/dist/generators/generateUnifiedScalarUI.d.ts +2 -0
- package/dist/generators/generateUnifiedScalarUI.js +19 -16
- package/dist/generators/generateUnifiedScalarUI.js.map +1 -1
- package/dist/index.js +21 -5
- package/dist/index.js.map +1 -1
- package/dist/utils/copyFiles.js +12 -0
- package/dist/utils/copyFiles.js.map +1 -1
- package/dist/utils/writeFileSafely.js +2 -2
- package/dist/utils/writeFileSafely.js.map +1 -1
- package/package.json +1 -1
- package/src/copy/autoIncludePlanner.ts +354 -0
- package/src/copy/autoIncludeRuntime.ts +362 -0
- package/src/copy/operationRuntime.ts +614 -0
- package/src/copy/routeConfig.express.ts +5 -3
- package/src/copy/routeConfig.fastify.ts +2 -2
- package/src/copy/routeConfig.hono.ts +3 -3
- package/src/copy/routeConfig.ts +20 -9
- package/src/generators/generateFastifyHandler.ts +23 -6
- package/src/generators/generateHonoHandler.ts +10 -6
- package/src/generators/generateOperationCore.ts +34 -546
- package/src/generators/generateRelationMeta.ts +160 -0
- package/src/generators/generateRouteConfigType.ts +13 -6
- package/src/generators/generateRouter.ts +83 -19
- package/src/generators/generateRouterFastify.ts +127 -384
- package/src/generators/generateRouterHono.ts +48 -36
- package/src/generators/generateUnifiedHandler.ts +30 -10
- package/src/generators/generateUnifiedScalarUI.ts +21 -16
- package/src/index.ts +31 -13
- package/src/utils/copyFiles.ts +13 -0
- package/src/utils/writeFileSafely.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRouterFastify.js","sourceRoot":"","sources":["../../src/generators/generateRouterFastify.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"generateRouterFastify.js","sourceRoot":"","sources":["../../src/generators/generateRouterFastify.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,17 +55,17 @@ import type { RouteConfig, HonoHookHandler } from '../routeConfig.target${ext}'
|
|
|
55
55
|
import { parseQueryParams } from '../parseQueryParams${ext}'
|
|
56
56
|
import { sanitizeKeys } from '../misc${ext}'
|
|
57
57
|
import { buildModelOpenApi } from '../buildModelOpenApi${ext}'
|
|
58
|
-
import { mapError, transformResult, HttpError } from '../operationRuntime${ext}'
|
|
58
|
+
import { mapError, transformResult, HttpError, type OperationContext } from '../operationRuntime${ext}'
|
|
59
59
|
|
|
60
60
|
${(0, generateRouteConfigType_1.generateRouteConfigType)(modelName, 'HonoHookHandler', guardShapesImport, importStyle, 'hono')}
|
|
61
61
|
|
|
62
62
|
type HonoVariables = {
|
|
63
|
-
prisma:
|
|
64
|
-
postgres?:
|
|
65
|
-
sqlite?:
|
|
63
|
+
prisma: unknown
|
|
64
|
+
postgres?: unknown
|
|
65
|
+
sqlite?: unknown
|
|
66
66
|
parsedQuery?: Record<string, unknown>
|
|
67
67
|
body?: unknown
|
|
68
|
-
routeConfig?:
|
|
68
|
+
routeConfig?: { pagination?: OperationContext['paginationConfig'] }
|
|
69
69
|
guardShape?: Record<string, unknown>
|
|
70
70
|
guardCaller?: string
|
|
71
71
|
resultData?: unknown
|
|
@@ -80,9 +80,15 @@ const MODEL_FIELDS = ${JSON.stringify(fieldsMeta, null, 2)} as const
|
|
|
80
80
|
|
|
81
81
|
const MODEL_ENUMS = ${JSON.stringify(enumsMeta, null, 2)} as const
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
before
|
|
85
|
-
after
|
|
83
|
+
type OperationConfigLike = {
|
|
84
|
+
before?: HonoHookHandler[]
|
|
85
|
+
after?: HonoHookHandler[]
|
|
86
|
+
shape?: Record<string, unknown>
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const defaultOpConfig: OperationConfigLike = {
|
|
90
|
+
before: [],
|
|
91
|
+
after: [],
|
|
86
92
|
}
|
|
87
93
|
|
|
88
94
|
function normalizePrefix(p: string): string {
|
|
@@ -124,7 +130,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
124
130
|
return c.json({ message: err.message }, err.status)
|
|
125
131
|
}
|
|
126
132
|
const httpError = mapError(err)
|
|
127
|
-
return c.json({ message: httpError.message }, httpError.status as
|
|
133
|
+
return c.json({ message: httpError.message }, httpError.status as Parameters<typeof c.json>[1])
|
|
128
134
|
})
|
|
129
135
|
|
|
130
136
|
const parseQueryMw = async (c: Context<HonoEnv>, next: Next): Promise<void> => {
|
|
@@ -153,12 +159,15 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
153
159
|
await next()
|
|
154
160
|
}
|
|
155
161
|
|
|
156
|
-
const setContextMw = (opConfig:
|
|
157
|
-
|
|
162
|
+
const setContextMw = (opConfig: OperationConfigLike) => async (c: Context<HonoEnv>, next: Next): Promise<void> => {
|
|
163
|
+
const paginationConfig = (config as { pagination?: OperationContext['paginationConfig'] }).pagination
|
|
164
|
+
if (paginationConfig) {
|
|
165
|
+
c.set('routeConfig', { pagination: paginationConfig })
|
|
166
|
+
}
|
|
158
167
|
if (opConfig.shape) {
|
|
159
168
|
c.set('guardShape', opConfig.shape)
|
|
160
169
|
const headerName = config.guard?.variantHeader || 'x-api-variant'
|
|
161
|
-
const caller = config.guard?.resolveVariant?.(c as
|
|
170
|
+
const caller = config.guard?.resolveVariant?.(c as Context)
|
|
162
171
|
?? c.req.header(headerName)
|
|
163
172
|
?? undefined
|
|
164
173
|
if (caller) {
|
|
@@ -174,7 +183,10 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
174
183
|
if (data === undefined) {
|
|
175
184
|
return c.json({ message: 'No data set by handler' }, 500)
|
|
176
185
|
}
|
|
177
|
-
return c.json(
|
|
186
|
+
return c.json(
|
|
187
|
+
transformResult(data) as Parameters<typeof c.json>[0],
|
|
188
|
+
status as Parameters<typeof c.json>[1],
|
|
189
|
+
)
|
|
178
190
|
}
|
|
179
191
|
|
|
180
192
|
const wrap = (fn: (c: Context<HonoEnv>) => Promise<void>) =>
|
|
@@ -190,19 +202,19 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
190
202
|
app.get(openapiJsonPath, (c) => {
|
|
191
203
|
const spec = buildModelOpenApi(
|
|
192
204
|
'${modelName}',
|
|
193
|
-
MODEL_FIELDS as
|
|
194
|
-
MODEL_ENUMS as
|
|
205
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
206
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
195
207
|
config,
|
|
196
208
|
{ format: 'json' },
|
|
197
209
|
)
|
|
198
|
-
return c.json(spec as
|
|
210
|
+
return c.json(spec as Parameters<typeof c.json>[0])
|
|
199
211
|
})
|
|
200
212
|
|
|
201
213
|
app.get(openapiYamlPath, (c) => {
|
|
202
214
|
const yaml = buildModelOpenApi(
|
|
203
215
|
'${modelName}',
|
|
204
|
-
MODEL_FIELDS as
|
|
205
|
-
MODEL_ENUMS as
|
|
216
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
217
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
206
218
|
config,
|
|
207
219
|
{ format: 'yaml' },
|
|
208
220
|
) as string
|
|
@@ -211,7 +223,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
211
223
|
}
|
|
212
224
|
|
|
213
225
|
if (config.enableAll || config.findFirst) {
|
|
214
|
-
const opConfig = config.findFirst
|
|
226
|
+
const opConfig: OperationConfigLike = (config.findFirst as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
215
227
|
const { before = [], after = [] } = opConfig
|
|
216
228
|
const path = basePath ? \`\${basePath}/first\` : '/first'
|
|
217
229
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}FindFirst), ...after, sendResultMw)
|
|
@@ -221,7 +233,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
221
233
|
}
|
|
222
234
|
|
|
223
235
|
if (config.enableAll || config.findFirstOrThrow) {
|
|
224
|
-
const opConfig = config.findFirstOrThrow
|
|
236
|
+
const opConfig: OperationConfigLike = (config.findFirstOrThrow as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
225
237
|
const { before = [], after = [] } = opConfig
|
|
226
238
|
const path = basePath ? \`\${basePath}/first/strict\` : '/first/strict'
|
|
227
239
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}FindFirstOrThrow), ...after, sendResultMw)
|
|
@@ -231,7 +243,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
231
243
|
}
|
|
232
244
|
|
|
233
245
|
if (config.enableAll || config.findManyPaginated) {
|
|
234
|
-
const opConfig = config.findManyPaginated
|
|
246
|
+
const opConfig: OperationConfigLike = (config.findManyPaginated as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
235
247
|
const { before = [], after = [] } = opConfig
|
|
236
248
|
const path = basePath ? \`\${basePath}/paginated\` : '/paginated'
|
|
237
249
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}FindManyPaginated), ...after, sendResultMw)
|
|
@@ -241,7 +253,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
241
253
|
}
|
|
242
254
|
|
|
243
255
|
if (config.enableAll || config.aggregate) {
|
|
244
|
-
const opConfig = config.aggregate
|
|
256
|
+
const opConfig: OperationConfigLike = (config.aggregate as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
245
257
|
const { before = [], after = [] } = opConfig
|
|
246
258
|
const path = basePath ? \`\${basePath}/aggregate\` : '/aggregate'
|
|
247
259
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}Aggregate), ...after, sendResultMw)
|
|
@@ -251,7 +263,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
251
263
|
}
|
|
252
264
|
|
|
253
265
|
if (config.enableAll || config.count) {
|
|
254
|
-
const opConfig = config.count
|
|
266
|
+
const opConfig: OperationConfigLike = (config.count as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
255
267
|
const { before = [], after = [] } = opConfig
|
|
256
268
|
const path = basePath ? \`\${basePath}/count\` : '/count'
|
|
257
269
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}Count), ...after, sendResultMw)
|
|
@@ -261,7 +273,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
261
273
|
}
|
|
262
274
|
|
|
263
275
|
if (config.enableAll || config.groupBy) {
|
|
264
|
-
const opConfig = config.groupBy
|
|
276
|
+
const opConfig: OperationConfigLike = (config.groupBy as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
265
277
|
const { before = [], after = [] } = opConfig
|
|
266
278
|
const path = basePath ? \`\${basePath}/groupby\` : '/groupby'
|
|
267
279
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}GroupBy), ...after, sendResultMw)
|
|
@@ -271,7 +283,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
271
283
|
}
|
|
272
284
|
|
|
273
285
|
if (config.enableAll || config.findUniqueOrThrow) {
|
|
274
|
-
const opConfig = config.findUniqueOrThrow
|
|
286
|
+
const opConfig: OperationConfigLike = (config.findUniqueOrThrow as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
275
287
|
const { before = [], after = [] } = opConfig
|
|
276
288
|
const path = basePath ? \`\${basePath}/unique/strict\` : '/unique/strict'
|
|
277
289
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}FindUniqueOrThrow), ...after, sendResultMw)
|
|
@@ -281,7 +293,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
281
293
|
}
|
|
282
294
|
|
|
283
295
|
if (config.enableAll || config.findUnique) {
|
|
284
|
-
const opConfig = config.findUnique
|
|
296
|
+
const opConfig: OperationConfigLike = (config.findUnique as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
285
297
|
const { before = [], after = [] } = opConfig
|
|
286
298
|
const path = basePath ? \`\${basePath}/unique\` : '/unique'
|
|
287
299
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}FindUnique), ...after, sendResultMw)
|
|
@@ -291,7 +303,7 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
291
303
|
}
|
|
292
304
|
|
|
293
305
|
if (config.enableAll || config.findMany) {
|
|
294
|
-
const opConfig = config.findMany
|
|
306
|
+
const opConfig: OperationConfigLike = (config.findMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
295
307
|
const { before = [], after = [] } = opConfig
|
|
296
308
|
const path = basePath || '/'
|
|
297
309
|
app.get(path, parseQueryMw, setContextMw(opConfig), ...before, wrap(${prefix}FindMany), ...after, sendResultMw)
|
|
@@ -302,63 +314,63 @@ export function ${routerFunctionName}<TCtx = unknown>(
|
|
|
302
314
|
}
|
|
303
315
|
|
|
304
316
|
if (config.enableAll || config.createManyAndReturn) {
|
|
305
|
-
const opConfig = config.createManyAndReturn
|
|
317
|
+
const opConfig: OperationConfigLike = (config.createManyAndReturn as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
306
318
|
const { before = [], after = [] } = opConfig
|
|
307
319
|
const path = basePath ? \`\${basePath}/many/return\` : '/many/return'
|
|
308
320
|
app.post(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}CreateManyAndReturn), ...after, sendResultMw)
|
|
309
321
|
}
|
|
310
322
|
|
|
311
323
|
if (config.enableAll || config.createMany) {
|
|
312
|
-
const opConfig = config.createMany
|
|
324
|
+
const opConfig: OperationConfigLike = (config.createMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
313
325
|
const { before = [], after = [] } = opConfig
|
|
314
326
|
const path = basePath ? \`\${basePath}/many\` : '/many'
|
|
315
327
|
app.post(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}CreateMany), ...after, sendResultMw)
|
|
316
328
|
}
|
|
317
329
|
|
|
318
330
|
if (config.enableAll || config.create) {
|
|
319
|
-
const opConfig = config.create
|
|
331
|
+
const opConfig: OperationConfigLike = (config.create as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
320
332
|
const { before = [], after = [] } = opConfig
|
|
321
333
|
const path = basePath || '/'
|
|
322
334
|
app.post(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}Create), ...after, sendResultMw)
|
|
323
335
|
}
|
|
324
336
|
|
|
325
337
|
if (config.enableAll || config.updateManyAndReturn) {
|
|
326
|
-
const opConfig = config.updateManyAndReturn
|
|
338
|
+
const opConfig: OperationConfigLike = (config.updateManyAndReturn as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
327
339
|
const { before = [], after = [] } = opConfig
|
|
328
340
|
const path = basePath ? \`\${basePath}/many/return\` : '/many/return'
|
|
329
341
|
app.put(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}UpdateManyAndReturn), ...after, sendResultMw)
|
|
330
342
|
}
|
|
331
343
|
|
|
332
344
|
if (config.enableAll || config.updateMany) {
|
|
333
|
-
const opConfig = config.updateMany
|
|
345
|
+
const opConfig: OperationConfigLike = (config.updateMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
334
346
|
const { before = [], after = [] } = opConfig
|
|
335
347
|
const path = basePath ? \`\${basePath}/many\` : '/many'
|
|
336
348
|
app.put(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}UpdateMany), ...after, sendResultMw)
|
|
337
349
|
}
|
|
338
350
|
|
|
339
351
|
if (config.enableAll || config.update) {
|
|
340
|
-
const opConfig = config.update
|
|
352
|
+
const opConfig: OperationConfigLike = (config.update as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
341
353
|
const { before = [], after = [] } = opConfig
|
|
342
354
|
const path = basePath || '/'
|
|
343
355
|
app.put(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}Update), ...after, sendResultMw)
|
|
344
356
|
}
|
|
345
357
|
|
|
346
358
|
if (config.enableAll || config.upsert) {
|
|
347
|
-
const opConfig = config.upsert
|
|
359
|
+
const opConfig: OperationConfigLike = (config.upsert as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
348
360
|
const { before = [], after = [] } = opConfig
|
|
349
361
|
const path = basePath || '/'
|
|
350
362
|
app.patch(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}Upsert), ...after, sendResultMw)
|
|
351
363
|
}
|
|
352
364
|
|
|
353
365
|
if (config.enableAll || config.deleteMany) {
|
|
354
|
-
const opConfig = config.deleteMany
|
|
366
|
+
const opConfig: OperationConfigLike = (config.deleteMany as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
355
367
|
const { before = [], after = [] } = opConfig
|
|
356
368
|
const path = basePath ? \`\${basePath}/many\` : '/many'
|
|
357
369
|
app.delete(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}DeleteMany), ...after, sendResultMw)
|
|
358
370
|
}
|
|
359
371
|
|
|
360
372
|
if (config.enableAll || config.delete) {
|
|
361
|
-
const opConfig = config.delete
|
|
373
|
+
const opConfig: OperationConfigLike = (config.delete as OperationConfigLike | undefined) ?? defaultOpConfig
|
|
362
374
|
const { before = [], after = [] } = opConfig
|
|
363
375
|
const path = basePath || '/'
|
|
364
376
|
app.delete(path, parseBodyMw, setContextMw(opConfig), ...before, wrap(${prefix}Delete), ...after, sendResultMw)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRouterHono.js","sourceRoot":"","sources":["../../src/generators/generateRouterHono.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"generateRouterHono.js","sourceRoot":"","sources":["../../src/generators/generateRouterHono.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { DMMF } from '@prisma/generator-helper';
|
|
2
|
+
import { ImportStyle } from '../utils/resolveImportStyle';
|
|
2
3
|
export interface UnifiedHandlerOptions {
|
|
3
4
|
model: DMMF.Model;
|
|
5
|
+
importStyle: ImportStyle;
|
|
4
6
|
}
|
|
5
7
|
export declare function generateUnifiedHandler(options: UnifiedHandlerOptions): string;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateUnifiedHandler = generateUnifiedHandler;
|
|
4
4
|
const strings_1 = require("../utils/strings");
|
|
5
|
+
const importExt_1 = require("../utils/importExt");
|
|
5
6
|
const CORE_NAME_MAP = {
|
|
6
7
|
delete: 'deleteUnique',
|
|
7
8
|
};
|
|
@@ -29,6 +30,7 @@ const ALL_OPS = [
|
|
|
29
30
|
'groupBy',
|
|
30
31
|
];
|
|
31
32
|
function generateUnifiedHandler(options) {
|
|
33
|
+
const ext = (0, importExt_1.importExt)(options.importStyle);
|
|
32
34
|
const modelName = options.model.name;
|
|
33
35
|
const prefix = (0, strings_1.toCamelCase)(modelName);
|
|
34
36
|
const handlers = ALL_OPS.map((op) => {
|
|
@@ -40,7 +42,7 @@ export async function ${exportName}(
|
|
|
40
42
|
next: NextFunction,
|
|
41
43
|
) {
|
|
42
44
|
try {
|
|
43
|
-
res.locals.data = await core.${coreFnName(op)}(buildContext(req, res))
|
|
45
|
+
;(res.locals as LocalsBag).data = await core.${coreFnName(op)}(buildContext(req, res))
|
|
44
46
|
next()
|
|
45
47
|
} catch (error: unknown) {
|
|
46
48
|
next(mapError(error))
|
|
@@ -48,19 +50,35 @@ export async function ${exportName}(
|
|
|
48
50
|
}`;
|
|
49
51
|
}).join('\n');
|
|
50
52
|
return `import { Request, Response, NextFunction } from 'express'
|
|
51
|
-
import * as core from './${modelName}Core'
|
|
52
|
-
import { OperationContext, mapError } from '../operationRuntime'
|
|
53
|
+
import * as core from './${modelName}Core${ext}'
|
|
54
|
+
import { OperationContext, mapError } from '../operationRuntime${ext}'
|
|
55
|
+
|
|
56
|
+
type ExtendedRequest = Request & {
|
|
57
|
+
prisma?: unknown
|
|
58
|
+
postgres?: unknown
|
|
59
|
+
sqlite?: unknown
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type LocalsBag = {
|
|
63
|
+
parsedQuery?: Record<string, unknown>
|
|
64
|
+
routeConfig?: { pagination?: unknown }
|
|
65
|
+
guardShape?: Record<string, unknown>
|
|
66
|
+
guardCaller?: string
|
|
67
|
+
data?: unknown
|
|
68
|
+
}
|
|
53
69
|
|
|
54
70
|
function buildContext(req: Request, res: Response): OperationContext {
|
|
71
|
+
const extReq = req as ExtendedRequest
|
|
72
|
+
const locals = res.locals as LocalsBag
|
|
55
73
|
return {
|
|
56
|
-
prisma:
|
|
57
|
-
postgres:
|
|
58
|
-
sqlite:
|
|
59
|
-
parsedQuery:
|
|
74
|
+
prisma: extReq.prisma,
|
|
75
|
+
postgres: extReq.postgres,
|
|
76
|
+
sqlite: extReq.sqlite,
|
|
77
|
+
parsedQuery: locals.parsedQuery,
|
|
60
78
|
body: req.body,
|
|
61
|
-
guardShape:
|
|
62
|
-
guardCaller:
|
|
63
|
-
paginationConfig:
|
|
79
|
+
guardShape: locals.guardShape,
|
|
80
|
+
guardCaller: locals.guardCaller,
|
|
81
|
+
paginationConfig: (locals.routeConfig?.pagination) as OperationContext['paginationConfig'],
|
|
64
82
|
}
|
|
65
83
|
}
|
|
66
84
|
${handlers}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedHandler.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedHandler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateUnifiedHandler.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedHandler.ts"],"names":[],"mappings":";;AAuCA,wDAyDC;AA/FD,8CAA8C;AAE9C,kDAA8C;AAO9C,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,cAAc;CACvB,CAAA;AAED,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;AAChC,CAAC;AAED,MAAM,OAAO,GAAG;IACd,UAAU;IACV,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,OAAO;IACP,SAAS;CACV,CAAA;AAED,SAAgB,sBAAsB,CAAC,OAA8B;IACnE,MAAM,GAAG,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;IACpC,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,SAAS,CAAC,CAAA;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAClC,MAAM,UAAU,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAEzE,OAAO;wBACa,UAAU;;;;;;mDAMiB,UAAU,CAAC,EAAE,CAAC;;;;;EAK/D,CAAA;IACA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO;2BACkB,SAAS,OAAO,GAAG;iEACmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlE,QAAQ;CACT,CAAA;AACD,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
import { Target } from '../constants';
|
|
3
|
+
import { ImportStyle } from '../utils/resolveImportStyle';
|
|
3
4
|
export declare function generateScalarUIHandler(options: {
|
|
4
5
|
model: DMMF.Model;
|
|
5
6
|
enums: DMMF.DatamodelEnum[];
|
|
6
7
|
target?: Target;
|
|
8
|
+
importStyle: ImportStyle;
|
|
7
9
|
}): string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateScalarUIHandler = generateScalarUIHandler;
|
|
4
|
+
const importExt_1 = require("../utils/importExt");
|
|
4
5
|
function exampleValueForType(fieldType) {
|
|
5
6
|
switch (fieldType) {
|
|
6
7
|
case 'String':
|
|
@@ -45,8 +46,8 @@ function generateExpressDocsExport(modelName) {
|
|
|
45
46
|
if (ui === 'yaml') {
|
|
46
47
|
const yaml = buildModelOpenApi(
|
|
47
48
|
'${modelName}',
|
|
48
|
-
MODEL_FIELDS as
|
|
49
|
-
MODEL_ENUMS as
|
|
49
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
50
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
50
51
|
config,
|
|
51
52
|
{ format: 'yaml' }
|
|
52
53
|
)
|
|
@@ -55,8 +56,8 @@ function generateExpressDocsExport(modelName) {
|
|
|
55
56
|
|
|
56
57
|
const spec = buildModelOpenApi(
|
|
57
58
|
'${modelName}',
|
|
58
|
-
MODEL_FIELDS as
|
|
59
|
-
MODEL_ENUMS as
|
|
59
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
60
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
60
61
|
config,
|
|
61
62
|
{ format: 'json' }
|
|
62
63
|
)
|
|
@@ -80,7 +81,8 @@ function generateFastifyDocsExport(modelName) {
|
|
|
80
81
|
const disabled = isOpenApiDisabled(config.disableOpenApi)
|
|
81
82
|
if (disabled) { reply.code(404).send('OpenAPI documentation is disabled in production'); return }
|
|
82
83
|
|
|
83
|
-
const
|
|
84
|
+
const queryParams = request.query as { ui?: string } | undefined
|
|
85
|
+
const rawUi = queryParams?.ui || config.docsUi || 'docs'
|
|
84
86
|
const validUis: DocsUI[] = ['docs', 'scalar', 'json', 'yaml', 'playground']
|
|
85
87
|
const ui: DocsUI = validUis.includes(rawUi as DocsUI) ? (rawUi as DocsUI) : 'docs'
|
|
86
88
|
|
|
@@ -94,8 +96,8 @@ function generateFastifyDocsExport(modelName) {
|
|
|
94
96
|
if (ui === 'yaml') {
|
|
95
97
|
const yaml = buildModelOpenApi(
|
|
96
98
|
'${modelName}',
|
|
97
|
-
MODEL_FIELDS as
|
|
98
|
-
MODEL_ENUMS as
|
|
99
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
100
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
99
101
|
config,
|
|
100
102
|
{ format: 'yaml' }
|
|
101
103
|
)
|
|
@@ -104,8 +106,8 @@ function generateFastifyDocsExport(modelName) {
|
|
|
104
106
|
|
|
105
107
|
const spec = buildModelOpenApi(
|
|
106
108
|
'${modelName}',
|
|
107
|
-
MODEL_FIELDS as
|
|
108
|
-
MODEL_ENUMS as
|
|
109
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
110
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
109
111
|
config,
|
|
110
112
|
{ format: 'json' }
|
|
111
113
|
)
|
|
@@ -143,8 +145,8 @@ function generateHonoDocsExport(modelName) {
|
|
|
143
145
|
if (ui === 'yaml') {
|
|
144
146
|
const yaml = buildModelOpenApi(
|
|
145
147
|
'${modelName}',
|
|
146
|
-
MODEL_FIELDS as
|
|
147
|
-
MODEL_ENUMS as
|
|
148
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
149
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
148
150
|
config,
|
|
149
151
|
{ format: 'yaml' }
|
|
150
152
|
) as string
|
|
@@ -153,13 +155,13 @@ function generateHonoDocsExport(modelName) {
|
|
|
153
155
|
|
|
154
156
|
const spec = buildModelOpenApi(
|
|
155
157
|
'${modelName}',
|
|
156
|
-
MODEL_FIELDS as
|
|
157
|
-
MODEL_ENUMS as
|
|
158
|
+
MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
|
|
159
|
+
MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
|
|
158
160
|
config,
|
|
159
161
|
{ format: 'json' }
|
|
160
162
|
)
|
|
161
163
|
|
|
162
|
-
if (ui === 'json') return c.json(spec as
|
|
164
|
+
if (ui === 'json') return c.json(spec as Record<string, unknown>)
|
|
163
165
|
|
|
164
166
|
const pageTitle = config.docsTitle || \`${modelName} API\`
|
|
165
167
|
|
|
@@ -175,6 +177,7 @@ function generateHonoDocsExport(modelName) {
|
|
|
175
177
|
function generateScalarUIHandler(options) {
|
|
176
178
|
const { model, enums } = options;
|
|
177
179
|
const target = options.target || 'express';
|
|
180
|
+
const ext = (0, importExt_1.importExt)(options.importStyle);
|
|
178
181
|
const modelName = model.name;
|
|
179
182
|
const fieldsMeta = model.fields.map((f) => ({
|
|
180
183
|
name: f.name,
|
|
@@ -225,7 +228,7 @@ function generateScalarUIHandler(options) {
|
|
|
225
228
|
? generateHonoDocsExport(modelName)
|
|
226
229
|
: generateExpressDocsExport(modelName);
|
|
227
230
|
return `${frameworkImport}
|
|
228
|
-
import { buildModelOpenApi } from '../buildModelOpenApi'
|
|
231
|
+
import { buildModelOpenApi } from '../buildModelOpenApi${ext}'
|
|
229
232
|
import {
|
|
230
233
|
renderDocs,
|
|
231
234
|
renderScalar,
|
|
@@ -237,7 +240,7 @@ import {
|
|
|
237
240
|
type DocsUI,
|
|
238
241
|
type DocsConfig,
|
|
239
242
|
type DocsModelContext,
|
|
240
|
-
} from '../docsRenderer'
|
|
243
|
+
} from '../docsRenderer${ext}'
|
|
241
244
|
|
|
242
245
|
export const MODEL_FIELDS: FieldMeta[] = ${JSON.stringify(fieldsMeta, null, 2)}
|
|
243
246
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedScalarUI.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedScalarUI.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateUnifiedScalarUI.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedScalarUI.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ const generateUnifiedScalarUI_1 = require("./generators/generateUnifiedScalarUI"
|
|
|
15
15
|
const generateUnifiedDocs_1 = require("./generators/generateUnifiedDocs");
|
|
16
16
|
const generateQueryBuilderHelper_1 = require("./generators/generateQueryBuilderHelper");
|
|
17
17
|
const generateOperationCore_1 = require("./generators/generateOperationCore");
|
|
18
|
+
const generateRelationMeta_1 = require("./generators/generateRelationMeta");
|
|
18
19
|
const generateImportPrismaStatement_1 = require("./generators/generateImportPrismaStatement");
|
|
19
20
|
const writeFileSafely_1 = require("./utils/writeFileSafely");
|
|
20
21
|
const copyFiles_1 = require("./utils/copyFiles");
|
|
@@ -49,15 +50,11 @@ function getTarget(options) {
|
|
|
49
50
|
console.log(` Output: ${options.generator.output?.value}`);
|
|
50
51
|
console.log(` Import style: ${importStyle}`);
|
|
51
52
|
await (0, copyFiles_1.copyFiles)(options, target, importStyle);
|
|
52
|
-
await (0, writeFileSafely_1.writeFileSafely)({
|
|
53
|
-
content: (0, generateOperationCore_1.generateOperationRuntime)(importStyle),
|
|
54
|
-
options,
|
|
55
|
-
operation: 'operationRuntime',
|
|
56
|
-
});
|
|
57
53
|
const modelNames = [];
|
|
58
54
|
const generateHandler = target === 'fastify' ? generateFastifyHandler_1.generateFastifyHandler :
|
|
59
55
|
target === 'hono' ? generateHonoHandler_1.generateHonoHandler :
|
|
60
56
|
generateUnifiedHandler_1.generateUnifiedHandler;
|
|
57
|
+
const allModels = options.dmmf.datamodel.models;
|
|
61
58
|
for (const model of options.dmmf.datamodel.models) {
|
|
62
59
|
if (model.documentation && model.documentation.includes('generator off')) {
|
|
63
60
|
console.log(` Skipping: ${model.name} (generator off)`);
|
|
@@ -116,6 +113,25 @@ function getTarget(options) {
|
|
|
116
113
|
model: model,
|
|
117
114
|
operation: 'Docs',
|
|
118
115
|
});
|
|
116
|
+
if (target === 'express') {
|
|
117
|
+
await (0, writeFileSafely_1.writeFileSafely)({
|
|
118
|
+
content: (0, generateRelationMeta_1.generateRelationMeta)({
|
|
119
|
+
model: model,
|
|
120
|
+
allModels,
|
|
121
|
+
importStyle,
|
|
122
|
+
}),
|
|
123
|
+
options,
|
|
124
|
+
model: model,
|
|
125
|
+
operation: 'Relations',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (target === 'express') {
|
|
130
|
+
await (0, writeFileSafely_1.writeFileSafely)({
|
|
131
|
+
content: (0, generateRelationMeta_1.generateRelationModelsIndex)({ modelNames, importStyle }),
|
|
132
|
+
options,
|
|
133
|
+
operation: 'relationModelsIndex',
|
|
134
|
+
});
|
|
119
135
|
}
|
|
120
136
|
await (0, writeFileSafely_1.writeFileSafely)({
|
|
121
137
|
content: (0, generateUnifiedDocs_1.generateUnifiedDocs)(modelNames, target, importStyle),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,+DAAmF;AACnF,gDAAuB;AACvB,gFAA4E;AAC5E,gFAA4E;AAC5E,0EAAsE;AACtE,gEAAoE;AACpE,8EAAkF;AAClF,wEAA4E;AAC5E,kFAA8E;AAC9E,0EAAsE;AACtE,wFAAoF;AACpF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/copyFiles.js
CHANGED
|
@@ -44,6 +44,11 @@ const SHARED_FILES = [
|
|
|
44
44
|
'misc.ts',
|
|
45
45
|
'routeConfig.ts',
|
|
46
46
|
'docsRenderer.ts',
|
|
47
|
+
'operationRuntime.ts',
|
|
48
|
+
];
|
|
49
|
+
const EXPRESS_ONLY_FILES = [
|
|
50
|
+
'autoIncludePlanner.ts',
|
|
51
|
+
'autoIncludeRuntime.ts',
|
|
47
52
|
];
|
|
48
53
|
function resolveTemplateDir(subpath) {
|
|
49
54
|
const fromSrc = path.join(__dirname, '..', '..', 'src', subpath);
|
|
@@ -112,6 +117,13 @@ async function copyFiles(options, target, importStyle) {
|
|
|
112
117
|
if (err)
|
|
113
118
|
errors.push(err);
|
|
114
119
|
}
|
|
120
|
+
if (target === 'express') {
|
|
121
|
+
for (const file of EXPRESS_ONLY_FILES) {
|
|
122
|
+
const err = copyFileSync(copyBase, outputPath, file, importStyle, { required: true });
|
|
123
|
+
if (err)
|
|
124
|
+
errors.push(err);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
115
127
|
const targetConfigFile = 'routeConfig.' + target + '.ts';
|
|
116
128
|
const err = copyFileSync(copyBase, outputPath, targetConfigFile, importStyle, {
|
|
117
129
|
required: true,
|