prisma-generator-express 1.24.0 → 1.25.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/dist/bin.d.ts +1 -1
- package/dist/bin.js +1 -1
- package/dist/bin.js.map +1 -1
- package/dist/generators/generateRouter.js +5 -5
- package/dist/generators/generateUnifiedDocs.js +78 -69
- package/dist/generators/generateUnifiedDocs.js.map +1 -1
- package/dist/generators/generateUnifiedHandler.js +27 -22
- package/dist/generators/generateUnifiedHandler.js.map +1 -1
- package/dist/generators/generateUnifiedScalarUI.js +30 -13
- package/dist/generators/generateUnifiedScalarUI.js.map +1 -1
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/dist/utils/writeFileSafely.js +0 -6
- package/dist/utils/writeFileSafely.js.map +1 -1
- package/package.json +1 -1
- package/src/bin.ts +1 -1
- package/src/client/encodeQueryParams.ts +1 -1
- package/src/copy/buildModelOpenApi.ts +83 -19
- package/src/copy/parseQueryParams.ts +1 -1
- package/src/generators/generateImportPrismaStatement.ts +1 -1
- package/src/generators/generateRouter.ts +5 -5
- package/src/generators/generateUnifiedDocs.ts +79 -69
- package/src/generators/generateUnifiedHandler.ts +28 -23
- package/src/generators/generateUnifiedScalarUI.ts +31 -14
- package/src/index.ts +9 -9
- package/src/utils/writeFileSafely.ts +1 -9
package/dist/bin.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import '.';
|
|
2
|
+
import './index.js';
|
package/dist/bin.js
CHANGED
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;AACA,sBAAmB"}
|
|
@@ -44,10 +44,10 @@ import {
|
|
|
44
44
|
${modelName}Aggregate,
|
|
45
45
|
${modelName}Count,
|
|
46
46
|
${modelName}GroupBy
|
|
47
|
-
} from './${modelName}Handlers'
|
|
48
|
-
import type { RouteConfig } from '../routeConfig'
|
|
49
|
-
import { parseQueryParams } from '../parseQueryParams'
|
|
50
|
-
import { buildModelOpenApi } from '../buildModelOpenApi'
|
|
47
|
+
} from './${modelName}Handlers.js'
|
|
48
|
+
import type { RouteConfig } from '../routeConfig.js'
|
|
49
|
+
import { parseQueryParams } from '../parseQueryParams.js'
|
|
50
|
+
import { buildModelOpenApi } from '../buildModelOpenApi.js'
|
|
51
51
|
|
|
52
52
|
const _env = typeof process !== 'undefined' && process.env ? process.env : {} as Record<string, string | undefined>
|
|
53
53
|
|
|
@@ -127,7 +127,7 @@ export function ${routerFunctionName}(config: RouteConfig = {}) {
|
|
|
127
127
|
if (qbEnabled) {
|
|
128
128
|
const qbConfig = getQueryBuilderConfig(config)
|
|
129
129
|
if (qbConfig) {
|
|
130
|
-
import('../queryBuilder').then(mod => mod.startQueryBuilder(qbConfig)).catch(() => {})
|
|
130
|
+
import('../queryBuilder.js').then(mod => mod.startQueryBuilder(qbConfig)).catch((err) => { if (_env.NODE_ENV !== 'production') console.warn('[query-builder]', err) })
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -5,6 +5,9 @@ function generateUnifiedDocs(models) {
|
|
|
5
5
|
const imports = models
|
|
6
6
|
.map((model) => `import { ${model}Docs } from './${model}/${model}Docs'`)
|
|
7
7
|
.join('\n');
|
|
8
|
+
const handlersEntries = models
|
|
9
|
+
.map((model) => ` ${model}: ${model}Docs`)
|
|
10
|
+
.join(',\n');
|
|
8
11
|
return `${imports}
|
|
9
12
|
import { Request, Response } from 'express'
|
|
10
13
|
import type { RouteConfig } from './routeConfig'
|
|
@@ -12,7 +15,7 @@ import type { RouteConfig } from './routeConfig'
|
|
|
12
15
|
const _env = typeof process !== 'undefined' && process.env ? process.env : {} as Record<string, string | undefined>
|
|
13
16
|
|
|
14
17
|
const docsHandlers: Record<string, (config: any) => (req: Request, res: Response) => any> = {
|
|
15
|
-
${
|
|
18
|
+
${handlersEntries}
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
type DocsUI = 'docs' | 'scalar' | 'json' | 'yaml' | 'playground'
|
|
@@ -35,11 +38,11 @@ export interface CombinedDocsConfig {
|
|
|
35
38
|
|
|
36
39
|
function escapeHtml(input: string) {
|
|
37
40
|
return input
|
|
38
|
-
.
|
|
39
|
-
.
|
|
40
|
-
.
|
|
41
|
-
.
|
|
42
|
-
.
|
|
41
|
+
.replace(/&/g, '&')
|
|
42
|
+
.replace(/</g, '<')
|
|
43
|
+
.replace(/>/g, '>')
|
|
44
|
+
.replace(/"/g, '"')
|
|
45
|
+
.replace(/'/g, ''')
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
function removeTrailingSlash(p: string): string {
|
|
@@ -79,66 +82,72 @@ export function generateCombinedDocs(config: CombinedDocsConfig) {
|
|
|
79
82
|
const basePath = removeTrailingSlash(config.basePath || '/docs')
|
|
80
83
|
const generatedAt = new Date().toISOString()
|
|
81
84
|
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
</
|
|
141
|
-
</
|
|
85
|
+
const modelRows = registeredModels.map((m) => {
|
|
86
|
+
const lower = m.toLowerCase()
|
|
87
|
+
const docsUrl = basePath + '/' + lower
|
|
88
|
+
const scalarUrl = docsUrl + '?ui=scalar'
|
|
89
|
+
const jsonUrl = docsUrl + '?ui=json'
|
|
90
|
+
const yamlUrl = docsUrl + '?ui=yaml'
|
|
91
|
+
const playgroundUrl = docsUrl + '?ui=playground'
|
|
92
|
+
const modelCfg = config.modelConfigs[m]
|
|
93
|
+
const modelPlayground = isPlaygroundAvailable(modelCfg)
|
|
94
|
+
const playgroundLink = modelPlayground
|
|
95
|
+
? ', <a href="' + playgroundUrl + '" class="text-inherit underline">playground</a>'
|
|
96
|
+
: ''
|
|
97
|
+
return '<tr>' +
|
|
98
|
+
'<td class="text-left py-2 px-2 border-b border-gray-300 align-top">' + escapeHtml(m) + '</td>' +
|
|
99
|
+
'<td class="text-left py-2 px-2 border-b border-gray-300 align-top"><a href="' + docsUrl + '" class="text-inherit underline">' + escapeHtml(docsUrl) + '</a></td>' +
|
|
100
|
+
'<td class="text-left py-2 px-2 border-b border-gray-300 align-top">' +
|
|
101
|
+
'<a href="' + scalarUrl + '" class="text-inherit underline">scalar</a>, ' +
|
|
102
|
+
'<a href="' + jsonUrl + '" class="text-inherit underline">json</a>, ' +
|
|
103
|
+
'<a href="' + yamlUrl + '" class="text-inherit underline">yaml</a>' +
|
|
104
|
+
playgroundLink +
|
|
105
|
+
'</td>' +
|
|
106
|
+
'</tr>'
|
|
107
|
+
}).join('')
|
|
108
|
+
|
|
109
|
+
const descriptionHtml = description
|
|
110
|
+
? '<div class="mt-1.5 text-gray-500 text-sm">' + escapeHtml(description) + '</div>'
|
|
111
|
+
: ''
|
|
112
|
+
const versionHtml = version
|
|
113
|
+
? '<div>Version: ' + escapeHtml(version) + '</div>'
|
|
114
|
+
: ''
|
|
115
|
+
|
|
116
|
+
const html =
|
|
117
|
+
'<!DOCTYPE html>' +
|
|
118
|
+
'<html lang="en">' +
|
|
119
|
+
'<head>' +
|
|
120
|
+
'<meta charset="utf-8" />' +
|
|
121
|
+
'<meta name="viewport" content="width=device-width, initial-scale=1" />' +
|
|
122
|
+
'<title>' + escapeHtml(title) + '</title>' +
|
|
123
|
+
'<script src="https://cdn.tailwindcss.com"></' + 'script>' +
|
|
124
|
+
'</head>' +
|
|
125
|
+
'<body class="m-0 bg-white text-gray-900 font-serif leading-normal">' +
|
|
126
|
+
'<div class="max-w-[980px] mx-auto px-7 pt-10 pb-16">' +
|
|
127
|
+
'<div class="border-b-2 border-gray-900 pb-3.5 mb-[18px]">' +
|
|
128
|
+
'<div class="text-[28px] font-bold tracking-wide">' + escapeHtml(title) + '</div>' +
|
|
129
|
+
descriptionHtml +
|
|
130
|
+
'<div class="mt-3 flex gap-x-5 text-[13px] text-gray-500">' +
|
|
131
|
+
versionHtml +
|
|
132
|
+
'<div>Generated: ' + escapeHtml(generatedAt) + '</div>' +
|
|
133
|
+
'</div>' +
|
|
134
|
+
'</div>' +
|
|
135
|
+
'<div class="mt-[22px]">' +
|
|
136
|
+
'<h2 class="m-0 mb-2.5 text-lg border-t border-gray-300 pt-3.5">Models</h2>' +
|
|
137
|
+
'<table class="w-full border-collapse text-[13px]">' +
|
|
138
|
+
'<thead>' +
|
|
139
|
+
'<tr>' +
|
|
140
|
+
'<th class="text-left py-2 px-2 border-b border-gray-300 align-top font-bold">Model</th>' +
|
|
141
|
+
'<th class="text-left py-2 px-2 border-b border-gray-300 align-top font-bold">Documentation</th>' +
|
|
142
|
+
'<th class="text-left py-2 px-2 border-b border-gray-300 align-top font-bold">Views</th>' +
|
|
143
|
+
'</tr>' +
|
|
144
|
+
'</thead>' +
|
|
145
|
+
'<tbody>' + modelRows + '</tbody>' +
|
|
146
|
+
'</table>' +
|
|
147
|
+
'</div>' +
|
|
148
|
+
'</div>' +
|
|
149
|
+
'</body>' +
|
|
150
|
+
'</html>'
|
|
142
151
|
|
|
143
152
|
res.type('html').send(html)
|
|
144
153
|
}
|
|
@@ -161,9 +170,9 @@ export function registerModelDocs(
|
|
|
161
170
|
registeredModels.forEach((model) => {
|
|
162
171
|
const handler = docsHandlers[model]
|
|
163
172
|
const cfg = configs[model] || {}
|
|
164
|
-
const
|
|
165
|
-
console.log(
|
|
166
|
-
app.get(
|
|
173
|
+
const docPath = normalizedBase + '/' + model.toLowerCase()
|
|
174
|
+
console.log(' Registered docs: ' + docPath)
|
|
175
|
+
app.get(docPath, handler(cfg))
|
|
167
176
|
})
|
|
168
177
|
}
|
|
169
178
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedDocs.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedDocs.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"generateUnifiedDocs.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedDocs.ts"],"names":[],"mappings":";;AAAA,kDAiLC;AAjLD,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,MAAM,OAAO,GAAG,MAAM;SACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,KAAK,kBAAkB,KAAK,IAAI,KAAK,OAAO,CAAC;SACxE,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,eAAe,GAAG,MAAM;SAC3B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,CAAC;SAC1C,IAAI,CAAC,KAAK,CAAC,CAAA;IAEd,OAAO,GAAG,OAAO;;;;;;;EAOjB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgKhB,CAAA;AACD,CAAC"}
|
|
@@ -146,6 +146,7 @@ function handleError(error: unknown, next: NextFunction): void {
|
|
|
146
146
|
return
|
|
147
147
|
}
|
|
148
148
|
if (typeof code === 'string' && code.startsWith('P')) {
|
|
149
|
+
console.warn('[prisma-generator-express] Unmapped Prisma error code:', code, (error as any).message || '')
|
|
149
150
|
next(new HttpError(500, 'Database operation failed'))
|
|
150
151
|
return
|
|
151
152
|
}
|
|
@@ -278,11 +279,11 @@ export async function ${functionName}(
|
|
|
278
279
|
|
|
279
280
|
let data
|
|
280
281
|
if (shape) {
|
|
281
|
-
assertGuard(extended.${modelNameLower})
|
|
282
|
+
assertGuard((extended as any).${modelNameLower})
|
|
282
283
|
const caller = res.locals.guardCaller
|
|
283
|
-
data = await extended.${modelNameLower}.guard(shape, caller).${op}(query)
|
|
284
|
+
data = await (extended as any).${modelNameLower}.guard(shape, caller).${op}(query)
|
|
284
285
|
} else {
|
|
285
|
-
data = await extended.${modelNameLower}.${op}(query)
|
|
286
|
+
data = await (extended as any).${modelNameLower}.${op}(query)
|
|
286
287
|
}
|
|
287
288
|
|
|
288
289
|
res.locals.data = data
|
|
@@ -308,11 +309,11 @@ export async function ${modelName}FindMany(
|
|
|
308
309
|
|
|
309
310
|
let data
|
|
310
311
|
if (shape) {
|
|
311
|
-
assertGuard(extended.${modelNameLower})
|
|
312
|
+
assertGuard((extended as any).${modelNameLower})
|
|
312
313
|
const caller = res.locals.guardCaller
|
|
313
|
-
data = await extended.${modelNameLower}.guard(shape, caller).findMany(query)
|
|
314
|
+
data = await (extended as any).${modelNameLower}.guard(shape, caller).findMany(query)
|
|
314
315
|
} else {
|
|
315
|
-
data = await extended.${modelNameLower}.findMany(query)
|
|
316
|
+
data = await (extended as any).${modelNameLower}.findMany(query)
|
|
316
317
|
}
|
|
317
318
|
|
|
318
319
|
res.locals.data = data
|
|
@@ -367,11 +368,11 @@ ${validationLines ? validationLines + '\n' : ''} const extended = await getEx
|
|
|
367
368
|
|
|
368
369
|
let data
|
|
369
370
|
if (shape) {
|
|
370
|
-
assertGuard(extended.${modelNameLower})
|
|
371
|
+
assertGuard((extended as any).${modelNameLower})
|
|
371
372
|
const caller = res.locals.guardCaller
|
|
372
|
-
data = await extended.${modelNameLower}.guard(shape, caller).${op.method}(body)
|
|
373
|
+
data = await (extended as any).${modelNameLower}.guard(shape, caller).${op.method}(body)
|
|
373
374
|
} else {
|
|
374
|
-
data = await extended.${modelNameLower}.${op.method}(body)
|
|
375
|
+
data = await (extended as any).${modelNameLower}.${op.method}(body)
|
|
375
376
|
}
|
|
376
377
|
|
|
377
378
|
res.locals.data = data
|
|
@@ -397,6 +398,14 @@ async function countForPagination(
|
|
|
397
398
|
const countShape = shape ? buildCountShape(shape) : undefined
|
|
398
399
|
|
|
399
400
|
if (hasDistinct) {
|
|
401
|
+
if (shape) {
|
|
402
|
+
const countArgs: Record<string, any> = {}
|
|
403
|
+
if (query.where) countArgs.where = query.where
|
|
404
|
+
return countShape
|
|
405
|
+
? await delegate.guard(countShape, caller).count(countArgs)
|
|
406
|
+
: await delegate.count(countArgs)
|
|
407
|
+
}
|
|
408
|
+
|
|
400
409
|
const selectField = distinctFields[0]
|
|
401
410
|
const distinctArgs: Record<string, any> = {
|
|
402
411
|
where: query.where,
|
|
@@ -405,17 +414,13 @@ async function countForPagination(
|
|
|
405
414
|
take: DISTINCT_COUNT_LIMIT + 1,
|
|
406
415
|
}
|
|
407
416
|
|
|
408
|
-
const results =
|
|
409
|
-
? await delegate.guard(shape, caller).findMany(distinctArgs)
|
|
410
|
-
: await delegate.findMany(distinctArgs)
|
|
417
|
+
const results = await delegate.findMany(distinctArgs)
|
|
411
418
|
|
|
412
419
|
if (results.length > DISTINCT_COUNT_LIMIT) {
|
|
413
420
|
console.warn('[prisma-generator-express] Distinct count exceeds ' + DISTINCT_COUNT_LIMIT + ', falling back to approximate total')
|
|
414
421
|
const countArgs: Record<string, any> = {}
|
|
415
422
|
if (query.where) countArgs.where = query.where
|
|
416
|
-
return
|
|
417
|
-
? await delegate.guard(countShape, caller).count(countArgs)
|
|
418
|
-
: await delegate.count(countArgs)
|
|
423
|
+
return await delegate.count(countArgs)
|
|
419
424
|
}
|
|
420
425
|
|
|
421
426
|
return results.length
|
|
@@ -438,7 +443,7 @@ export async function ${modelName}FindManyPaginated(req: Request, res: Response,
|
|
|
438
443
|
const caller = res.locals.guardCaller
|
|
439
444
|
|
|
440
445
|
if (shape) {
|
|
441
|
-
assertGuard(extended.${modelNameLower})
|
|
446
|
+
assertGuard((extended as any).${modelNameLower})
|
|
442
447
|
}
|
|
443
448
|
|
|
444
449
|
let items: any[]
|
|
@@ -462,18 +467,18 @@ export async function ${modelName}FindManyPaginated(req: Request, res: Response,
|
|
|
462
467
|
) {
|
|
463
468
|
console.warn('[prisma-generator-express] Interactive transactions not available, pagination queries are non-atomic')
|
|
464
469
|
items = shape
|
|
465
|
-
? await extended.${modelNameLower}.guard(shape, caller).findMany(query)
|
|
466
|
-
: await extended.${modelNameLower}.findMany(query)
|
|
467
|
-
total = await countForPagination(extended.${modelNameLower}, query, shape, caller)
|
|
470
|
+
? await (extended as any).${modelNameLower}.guard(shape, caller).findMany(query)
|
|
471
|
+
: await (extended as any).${modelNameLower}.findMany(query)
|
|
472
|
+
total = await countForPagination((extended as any).${modelNameLower}, query, shape, caller)
|
|
468
473
|
} else {
|
|
469
474
|
throw txError
|
|
470
475
|
}
|
|
471
476
|
}
|
|
472
477
|
} else {
|
|
473
478
|
items = shape
|
|
474
|
-
? await extended.${modelNameLower}.guard(shape, caller).findMany(query)
|
|
475
|
-
: await extended.${modelNameLower}.findMany(query)
|
|
476
|
-
total = await countForPagination(extended.${modelNameLower}, query, shape, caller)
|
|
479
|
+
? await (extended as any).${modelNameLower}.guard(shape, caller).findMany(query)
|
|
480
|
+
: await (extended as any).${modelNameLower}.findMany(query)
|
|
481
|
+
total = await countForPagination((extended as any).${modelNameLower}, query, shape, caller)
|
|
477
482
|
}
|
|
478
483
|
|
|
479
484
|
const skip = (query.skip as number) ?? 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedHandler.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedHandler.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"generateUnifiedHandler.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ function generateScalarUIHandler(options) {
|
|
|
36
36
|
isRequired: f.isRequired,
|
|
37
37
|
hasDefaultValue: f.hasDefaultValue,
|
|
38
38
|
isUpdatedAt: Boolean(f.isUpdatedAt),
|
|
39
|
-
documentation: f.documentation,
|
|
39
|
+
documentation: f.documentation ?? null,
|
|
40
40
|
isId: Boolean(f.isId),
|
|
41
41
|
isUnique: Boolean(f.isUnique),
|
|
42
42
|
relationFromFields: f.relationFromFields,
|
|
@@ -67,14 +67,33 @@ function generateScalarUIHandler(options) {
|
|
|
67
67
|
fields: idx.fields,
|
|
68
68
|
}));
|
|
69
69
|
return `import { Request, Response } from 'express'
|
|
70
|
-
import { buildModelOpenApi } from '../buildModelOpenApi'
|
|
71
|
-
import type { RouteConfig } from '../routeConfig'
|
|
72
|
-
import { OPERATION_DEFS, isOperationEnabled } from '../operationDefinitions'
|
|
70
|
+
import { buildModelOpenApi } from '../buildModelOpenApi.js'
|
|
71
|
+
import type { RouteConfig } from '../routeConfig.js'
|
|
72
|
+
import { OPERATION_DEFS, isOperationEnabled } from '../operationDefinitions.js'
|
|
73
73
|
|
|
74
74
|
const _env = typeof process !== 'undefined' && process.env ? process.env : {} as Record<string, string | undefined>
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
interface FieldMeta {
|
|
77
|
+
name: string
|
|
78
|
+
kind: string
|
|
79
|
+
type: string
|
|
80
|
+
isList: boolean
|
|
81
|
+
isRequired: boolean
|
|
82
|
+
hasDefaultValue: boolean
|
|
83
|
+
isUpdatedAt: boolean
|
|
84
|
+
documentation: string | null
|
|
85
|
+
isId: boolean
|
|
86
|
+
isUnique: boolean
|
|
87
|
+
relationFromFields?: string[]
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
interface EnumMeta {
|
|
91
|
+
name: string
|
|
92
|
+
values: { name: string }[]
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export const MODEL_FIELDS: FieldMeta[] = ${JSON.stringify(fieldsMeta, null, 2)}
|
|
96
|
+
export const MODEL_ENUMS: EnumMeta[] = ${JSON.stringify(enumsMeta, null, 2)}
|
|
78
97
|
|
|
79
98
|
const COMPOUND_ID: { fields: string[] } | null = ${JSON.stringify(compoundIdMeta)}
|
|
80
99
|
|
|
@@ -94,8 +113,6 @@ type DocsConfig = RouteConfig & {
|
|
|
94
113
|
docsUi?: DocsUI
|
|
95
114
|
}
|
|
96
115
|
|
|
97
|
-
type FieldMeta = typeof MODEL_FIELDS[number]
|
|
98
|
-
|
|
99
116
|
interface OpDetail {
|
|
100
117
|
transport: string
|
|
101
118
|
required: string[]
|
|
@@ -345,11 +362,11 @@ function isPlaygroundAvailable(config: DocsConfig) {
|
|
|
345
362
|
|
|
346
363
|
function escapeHtml(input: string) {
|
|
347
364
|
return input
|
|
348
|
-
.
|
|
349
|
-
.
|
|
350
|
-
.
|
|
351
|
-
.
|
|
352
|
-
.
|
|
365
|
+
.replace(/&/g, '&')
|
|
366
|
+
.replace(/</g, '<')
|
|
367
|
+
.replace(/>/g, '>')
|
|
368
|
+
.replace(/"/g, '"')
|
|
369
|
+
.replace(/'/g, ''')
|
|
353
370
|
}
|
|
354
371
|
|
|
355
372
|
function safeJsonForHtml(obj: unknown): string {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUnifiedScalarUI.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedScalarUI.ts"],"names":[],"mappings":";;AA2BA,
|
|
1
|
+
{"version":3,"file":"generateUnifiedScalarUI.js","sourceRoot":"","sources":["../../src/generators/generateUnifiedScalarUI.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const generator_helper_1 = require("@prisma/generator-helper");
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
4
|
+
const generateUnifiedHandler_js_1 = require("./generators/generateUnifiedHandler.js");
|
|
5
|
+
const generateRouter_js_1 = require("./generators/generateRouter.js");
|
|
6
|
+
const generateUnifiedScalarUI_js_1 = require("./generators/generateUnifiedScalarUI.js");
|
|
7
|
+
const generateUnifiedDocs_js_1 = require("./generators/generateUnifiedDocs.js");
|
|
8
|
+
const generateQueryBuilderHelper_js_1 = require("./generators/generateQueryBuilderHelper.js");
|
|
9
|
+
const generateImportPrismaStatement_js_1 = require("./generators/generateImportPrismaStatement.js");
|
|
10
|
+
const writeFileSafely_js_1 = require("./utils/writeFileSafely.js");
|
|
11
|
+
const copyFiles_js_1 = require("./utils/copyFiles.js");
|
|
12
|
+
const constants_js_1 = require("./constants.js");
|
|
13
13
|
(0, generator_helper_1.generatorHandler)({
|
|
14
14
|
onManifest() {
|
|
15
15
|
return {
|
|
16
16
|
version: require('../package.json').version,
|
|
17
17
|
defaultOutput: '../generated',
|
|
18
|
-
prettyName:
|
|
18
|
+
prettyName: constants_js_1.GENERATOR_NAME,
|
|
19
19
|
};
|
|
20
20
|
},
|
|
21
21
|
async onGenerate(options) {
|
|
22
|
-
const prismaImportStatement = (0,
|
|
22
|
+
const prismaImportStatement = (0, generateImportPrismaStatement_js_1.generateImportPrismaStatement)(options);
|
|
23
23
|
console.log('\n═══ Prisma Generator Express ═══');
|
|
24
|
-
await (0,
|
|
24
|
+
await (0, copyFiles_js_1.copyFiles)(options);
|
|
25
25
|
const modelNames = [];
|
|
26
26
|
for (const model of options.dmmf.datamodel.models) {
|
|
27
27
|
if (model.documentation &&
|
|
@@ -30,9 +30,9 @@ const constants_1 = require("./constants");
|
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
32
32
|
modelNames.push(model.name);
|
|
33
|
-
const relativeClientPath = (0,
|
|
34
|
-
await (0,
|
|
35
|
-
content: (0,
|
|
33
|
+
const relativeClientPath = (0, generateImportPrismaStatement_js_1.getRelativeClientPath)(options, model.name);
|
|
34
|
+
await (0, writeFileSafely_js_1.writeFileSafely)({
|
|
35
|
+
content: (0, generateUnifiedHandler_js_1.generateUnifiedHandler)({
|
|
36
36
|
model: model,
|
|
37
37
|
prismaImportStatement,
|
|
38
38
|
}),
|
|
@@ -40,8 +40,8 @@ const constants_1 = require("./constants");
|
|
|
40
40
|
model: model,
|
|
41
41
|
operation: 'Handlers',
|
|
42
42
|
});
|
|
43
|
-
await (0,
|
|
44
|
-
content: (0,
|
|
43
|
+
await (0, writeFileSafely_js_1.writeFileSafely)({
|
|
44
|
+
content: (0, generateRouter_js_1.generateRouterFunction)({
|
|
45
45
|
model: model,
|
|
46
46
|
enums: options.dmmf.datamodel.enums,
|
|
47
47
|
relativeClientPath,
|
|
@@ -50,8 +50,8 @@ const constants_1 = require("./constants");
|
|
|
50
50
|
model: model,
|
|
51
51
|
operation: 'Router',
|
|
52
52
|
});
|
|
53
|
-
await (0,
|
|
54
|
-
content: (0,
|
|
53
|
+
await (0, writeFileSafely_js_1.writeFileSafely)({
|
|
54
|
+
content: (0, generateUnifiedScalarUI_js_1.generateScalarUIHandler)({
|
|
55
55
|
model: model,
|
|
56
56
|
enums: options.dmmf.datamodel.enums,
|
|
57
57
|
}),
|
|
@@ -60,13 +60,13 @@ const constants_1 = require("./constants");
|
|
|
60
60
|
operation: 'Docs',
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
await (0,
|
|
64
|
-
content: (0,
|
|
63
|
+
await (0, writeFileSafely_js_1.writeFileSafely)({
|
|
64
|
+
content: (0, generateUnifiedDocs_js_1.generateUnifiedDocs)(modelNames),
|
|
65
65
|
options,
|
|
66
66
|
operation: 'combinedDocs',
|
|
67
67
|
});
|
|
68
|
-
await (0,
|
|
69
|
-
content: (0,
|
|
68
|
+
await (0, writeFileSafely_js_1.writeFileSafely)({
|
|
69
|
+
content: (0, generateQueryBuilderHelper_js_1.generateQueryBuilderHelper)(options),
|
|
70
70
|
options,
|
|
71
71
|
operation: 'queryBuilder',
|
|
72
72
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,+DAIiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,+DAIiC;AACjC,sFAA+E;AAC/E,sEAAuE;AACvE,wFAAiF;AACjF,gFAAyE;AACzE,8FAAuF;AACvF,oGAGsD;AACtD,mEAA4D;AAC5D,uDAAgD;AAChD,iDAA+C;AAE/C,IAAA,mCAAgB,EAAC;IACf,UAAU;QACR,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;YAC3C,aAAa,EAAE,cAAc;YAC7B,UAAU,EAAE,6BAAc;SAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAyB;QACxC,MAAM,qBAAqB,GAAG,IAAA,gEAA6B,EAAC,OAAO,CAAC,CAAA;QAEpE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;QAEjD,MAAM,IAAA,wBAAS,EAAC,OAAO,CAAC,CAAA;QAExB,MAAM,UAAU,GAAa,EAAE,CAAA;QAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAClD,IACE,KAAK,CAAC,aAAa;gBACnB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC7C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAA;gBACxD,SAAQ;YACV,CAAC;YAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAE3B,MAAM,kBAAkB,GAAG,IAAA,wDAAqB,EAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAErE,MAAM,IAAA,oCAAe,EAAC;gBACpB,OAAO,EAAE,IAAA,kDAAsB,EAAC;oBAC9B,KAAK,EAAE,KAAmB;oBAC1B,qBAAqB;iBACtB,CAAC;gBACF,OAAO;gBACP,KAAK,EAAE,KAAmB;gBAC1B,SAAS,EAAE,UAAU;aACtB,CAAC,CAAA;YAEF,MAAM,IAAA,oCAAe,EAAC;gBACpB,OAAO,EAAE,IAAA,0CAAsB,EAAC;oBAC9B,KAAK,EAAE,KAAmB;oBAC1B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAA6B;oBAC3D,kBAAkB;iBACnB,CAAC;gBACF,OAAO;gBACP,KAAK,EAAE,KAAmB;gBAC1B,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAA;YAEF,MAAM,IAAA,oCAAe,EAAC;gBACpB,OAAO,EAAE,IAAA,oDAAuB,EAAC;oBAC/B,KAAK,EAAE,KAAmB;oBAC1B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAA6B;iBAC5D,CAAC;gBACF,OAAO;gBACP,KAAK,EAAE,KAAmB;gBAC1B,SAAS,EAAE,MAAM;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,IAAA,oCAAe,EAAC;YACpB,OAAO,EAAE,IAAA,4CAAmB,EAAC,UAAU,CAAC;YACxC,OAAO;YACP,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAA;QAEF,MAAM,IAAA,oCAAe,EAAC;YACpB,OAAO,EAAE,IAAA,0DAA0B,EAAC,OAAO,CAAC;YAC5C,OAAO;YACP,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,SAAS,CAAC,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -54,12 +54,6 @@ async function writeFileSafely({ content, options, model, operation, }) {
|
|
|
54
54
|
}
|
|
55
55
|
let filePath;
|
|
56
56
|
switch (operation) {
|
|
57
|
-
case 'cacheConfig':
|
|
58
|
-
filePath = path.join(outputPath, 'cacheConfig.ts');
|
|
59
|
-
break;
|
|
60
|
-
case 'types/inputs':
|
|
61
|
-
filePath = path.join(outputPath, 'types', 'inputs.ts');
|
|
62
|
-
break;
|
|
63
57
|
case 'combinedDocs':
|
|
64
58
|
filePath = path.join(outputPath, 'combinedDocs.ts');
|
|
65
59
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeFileSafely.js","sourceRoot":"","sources":["../../src/utils/writeFileSafely.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,
|
|
1
|
+
{"version":3,"file":"writeFileSafely.js","sourceRoot":"","sources":["../../src/utils/writeFileSafely.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,0CAqDC;AAxED,uCAAwB;AACxB,2CAA4B;AAC5B,wDAA+B;AAS/B,IAAI,gBAAqD,CAAA;AAEzD,KAAK,UAAU,kBAAkB;IAC/B,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAA;IAC3D,gBAAgB,GAAG,MAAM,kBAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9D,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EACpC,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,GACQ;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAA;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,QAAgB,CAAA;IAEpB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,cAAc;YACjB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;YACnD,MAAK;QAEP,KAAK,cAAc;YACjB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;YACnD,MAAK;QAEP;YACE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAA;YAC/D,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAClB,UAAU,EACV,KAAK,CAAC,IAAI,EACV,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS,KAAK,CAC/B,CAAA;IACL,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,gBAAwB,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,kBAAkB,EAAE,CAAA;QAClD,gBAAgB,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;YAChD,GAAG,eAAe;YAClB,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,sCAAsC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACrF,CAAA;QACD,gBAAgB,GAAG,OAAO,CAAA;IAC5B,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC9C,CAAC"}
|
package/package.json
CHANGED
package/src/bin.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import '.'
|
|
2
|
+
import './index.js'
|