prisma-generator-express 1.43.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.
Files changed (34) hide show
  1. package/dist/generators/generateFastifyHandler.d.ts +2 -0
  2. package/dist/generators/generateFastifyHandler.js +4 -2
  3. package/dist/generators/generateFastifyHandler.js.map +1 -1
  4. package/dist/generators/generateHonoHandler.d.ts +2 -0
  5. package/dist/generators/generateHonoHandler.js +4 -2
  6. package/dist/generators/generateHonoHandler.js.map +1 -1
  7. package/dist/generators/generateRelationMeta.js +7 -3
  8. package/dist/generators/generateRelationMeta.js.map +1 -1
  9. package/dist/generators/generateRouteConfigType.js +9 -1
  10. package/dist/generators/generateRouteConfigType.js.map +1 -1
  11. package/dist/generators/generateRouter.js +44 -18
  12. package/dist/generators/generateRouter.js.map +1 -1
  13. package/dist/generators/generateUnifiedHandler.d.ts +2 -0
  14. package/dist/generators/generateUnifiedHandler.js +4 -2
  15. package/dist/generators/generateUnifiedHandler.js.map +1 -1
  16. package/dist/generators/generateUnifiedScalarUI.d.ts +2 -0
  17. package/dist/generators/generateUnifiedScalarUI.js +19 -16
  18. package/dist/generators/generateUnifiedScalarUI.js.map +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/utils/writeFileSafely.js +0 -3
  21. package/dist/utils/writeFileSafely.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/copy/autoIncludePlanner.ts +64 -9
  24. package/src/copy/autoIncludeRuntime.ts +91 -36
  25. package/src/copy/operationRuntime.ts +12 -1
  26. package/src/generators/generateFastifyHandler.ts +6 -2
  27. package/src/generators/generateHonoHandler.ts +6 -2
  28. package/src/generators/generateRelationMeta.ts +8 -2
  29. package/src/generators/generateRouteConfigType.ts +8 -1
  30. package/src/generators/generateRouter.ts +44 -18
  31. package/src/generators/generateUnifiedHandler.ts +6 -2
  32. package/src/generators/generateUnifiedScalarUI.ts +21 -16
  33. package/src/index.ts +6 -6
  34. package/src/utils/writeFileSafely.ts +0 -3
@@ -1,5 +1,7 @@
1
1
  import { DMMF } from '@prisma/generator-helper'
2
2
  import { Target } from '../constants'
3
+ import { ImportStyle } from '../utils/resolveImportStyle'
4
+ import { importExt } from '../utils/importExt'
3
5
 
4
6
  function exampleValueForType(fieldType: string): unknown {
5
7
  switch (fieldType) {
@@ -46,8 +48,8 @@ function generateExpressDocsExport(modelName: string): string {
46
48
  if (ui === 'yaml') {
47
49
  const yaml = buildModelOpenApi(
48
50
  '${modelName}',
49
- MODEL_FIELDS as any,
50
- MODEL_ENUMS as any,
51
+ MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
52
+ MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
51
53
  config,
52
54
  { format: 'yaml' }
53
55
  )
@@ -56,8 +58,8 @@ function generateExpressDocsExport(modelName: string): string {
56
58
 
57
59
  const spec = buildModelOpenApi(
58
60
  '${modelName}',
59
- MODEL_FIELDS as any,
60
- MODEL_ENUMS as any,
61
+ MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
62
+ MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
61
63
  config,
62
64
  { format: 'json' }
63
65
  )
@@ -82,7 +84,8 @@ function generateFastifyDocsExport(modelName: string): string {
82
84
  const disabled = isOpenApiDisabled(config.disableOpenApi)
83
85
  if (disabled) { reply.code(404).send('OpenAPI documentation is disabled in production'); return }
84
86
 
85
- const rawUi = ((request.query as any)?.ui as string | undefined) || config.docsUi || 'docs'
87
+ const queryParams = request.query as { ui?: string } | undefined
88
+ const rawUi = queryParams?.ui || config.docsUi || 'docs'
86
89
  const validUis: DocsUI[] = ['docs', 'scalar', 'json', 'yaml', 'playground']
87
90
  const ui: DocsUI = validUis.includes(rawUi as DocsUI) ? (rawUi as DocsUI) : 'docs'
88
91
 
@@ -96,8 +99,8 @@ function generateFastifyDocsExport(modelName: string): string {
96
99
  if (ui === 'yaml') {
97
100
  const yaml = buildModelOpenApi(
98
101
  '${modelName}',
99
- MODEL_FIELDS as any,
100
- MODEL_ENUMS as any,
102
+ MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
103
+ MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
101
104
  config,
102
105
  { format: 'yaml' }
103
106
  )
@@ -106,8 +109,8 @@ function generateFastifyDocsExport(modelName: string): string {
106
109
 
107
110
  const spec = buildModelOpenApi(
108
111
  '${modelName}',
109
- MODEL_FIELDS as any,
110
- MODEL_ENUMS as any,
112
+ MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
113
+ MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
111
114
  config,
112
115
  { format: 'json' }
113
116
  )
@@ -146,8 +149,8 @@ function generateHonoDocsExport(modelName: string): string {
146
149
  if (ui === 'yaml') {
147
150
  const yaml = buildModelOpenApi(
148
151
  '${modelName}',
149
- MODEL_FIELDS as any,
150
- MODEL_ENUMS as any,
152
+ MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
153
+ MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
151
154
  config,
152
155
  { format: 'yaml' }
153
156
  ) as string
@@ -156,13 +159,13 @@ function generateHonoDocsExport(modelName: string): string {
156
159
 
157
160
  const spec = buildModelOpenApi(
158
161
  '${modelName}',
159
- MODEL_FIELDS as any,
160
- MODEL_ENUMS as any,
162
+ MODEL_FIELDS as unknown as Parameters<typeof buildModelOpenApi>[1],
163
+ MODEL_ENUMS as unknown as Parameters<typeof buildModelOpenApi>[2],
161
164
  config,
162
165
  { format: 'json' }
163
166
  )
164
167
 
165
- if (ui === 'json') return c.json(spec as any)
168
+ if (ui === 'json') return c.json(spec as Record<string, unknown>)
166
169
 
167
170
  const pageTitle = config.docsTitle || \`${modelName} API\`
168
171
 
@@ -180,9 +183,11 @@ export function generateScalarUIHandler(options: {
180
183
  model: DMMF.Model
181
184
  enums: DMMF.DatamodelEnum[]
182
185
  target?: Target
186
+ importStyle: ImportStyle
183
187
  }): string {
184
188
  const { model, enums } = options
185
189
  const target = options.target || 'express'
190
+ const ext = importExt(options.importStyle)
186
191
  const modelName = model.name
187
192
 
188
193
  const fieldsMeta = model.fields.map((f: any) => ({
@@ -254,7 +259,7 @@ export function generateScalarUIHandler(options: {
254
259
  : generateExpressDocsExport(modelName)
255
260
 
256
261
  return `${frameworkImport}
257
- import { buildModelOpenApi } from '../buildModelOpenApi'
262
+ import { buildModelOpenApi } from '../buildModelOpenApi${ext}'
258
263
  import {
259
264
  renderDocs,
260
265
  renderScalar,
@@ -266,7 +271,7 @@ import {
266
271
  type DocsUI,
267
272
  type DocsConfig,
268
273
  type DocsModelContext,
269
- } from '../docsRenderer'
274
+ } from '../docsRenderer${ext}'
270
275
 
271
276
  export const MODEL_FIELDS: FieldMeta[] = ${JSON.stringify(fieldsMeta, null, 2)}
272
277
 
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@ import { generateRelationMeta, generateRelationModelsIndex } from './generators/
14
14
  import { getRelativeClientPath, getGuardShapesImport } from './generators/generateImportPrismaStatement'
15
15
  import { writeFileSafely } from './utils/writeFileSafely'
16
16
  import { copyFiles } from './utils/copyFiles'
17
- import { resolveImportStyle } from './utils/resolveImportStyle'
17
+ import { resolveImportStyle, ImportStyle } from './utils/resolveImportStyle'
18
18
  import { GENERATOR_NAME, Target } from './constants'
19
19
 
20
20
  function getTarget(options: GeneratorOptions): Target {
@@ -53,7 +53,7 @@ generatorHandler({
53
53
  await copyFiles(options, target, importStyle)
54
54
 
55
55
  const modelNames: string[] = []
56
- const generateHandler =
56
+ const generateHandler: (opts: { model: DMMF.Model; importStyle: ImportStyle }) => string =
57
57
  target === 'fastify' ? generateFastifyHandler :
58
58
  target === 'hono' ? generateHonoHandler :
59
59
  generateUnifiedHandler
@@ -78,7 +78,7 @@ generatorHandler({
78
78
  })
79
79
 
80
80
  await writeFileSafely({
81
- content: generateHandler({ model: model as DMMF.Model, importStyle } as any),
81
+ content: generateHandler({ model: model as DMMF.Model, importStyle }),
82
82
  options,
83
83
  model: model as DMMF.Model,
84
84
  operation: 'Handlers',
@@ -91,14 +91,14 @@ generatorHandler({
91
91
  enums: options.dmmf.datamodel.enums as DMMF.DatamodelEnum[],
92
92
  guardShapesImport,
93
93
  importStyle,
94
- } as any)
94
+ })
95
95
  : target === 'hono'
96
96
  ? generateHonoRouterFunction({
97
97
  model: model as DMMF.Model,
98
98
  enums: options.dmmf.datamodel.enums as DMMF.DatamodelEnum[],
99
99
  guardShapesImport,
100
100
  importStyle,
101
- } as any)
101
+ })
102
102
  : generateRouterFunction({
103
103
  model: model as DMMF.Model,
104
104
  enums: options.dmmf.datamodel.enums as DMMF.DatamodelEnum[],
@@ -120,7 +120,7 @@ generatorHandler({
120
120
  enums: options.dmmf.datamodel.enums as DMMF.DatamodelEnum[],
121
121
  target,
122
122
  importStyle,
123
- } as any),
123
+ }),
124
124
  options,
125
125
  model: model as DMMF.Model,
126
126
  operation: 'Docs',
@@ -36,9 +36,6 @@ export async function writeFileSafely({
36
36
  case 'queryBuilder':
37
37
  filePath = path.join(outputPath, 'queryBuilder.ts')
38
38
  break
39
- case 'operationRuntime':
40
- filePath = path.join(outputPath, 'operationRuntime.ts')
41
- break
42
39
  case 'relationModelsIndex':
43
40
  filePath = path.join(outputPath, 'relationModels.ts')
44
41
  break