prisma-generator-express 1.42.0 → 1.43.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 (45) hide show
  1. package/dist/generators/generateFastifyHandler.js +17 -4
  2. package/dist/generators/generateFastifyHandler.js.map +1 -1
  3. package/dist/generators/generateHonoHandler.js +4 -4
  4. package/dist/generators/generateOperationCore.d.ts +0 -1
  5. package/dist/generators/generateOperationCore.js +34 -546
  6. package/dist/generators/generateOperationCore.js.map +1 -1
  7. package/dist/generators/generateRelationMeta.d.ts +13 -0
  8. package/dist/generators/generateRelationMeta.js +106 -0
  9. package/dist/generators/generateRelationMeta.js.map +1 -0
  10. package/dist/generators/generateRouteConfigType.js +4 -4
  11. package/dist/generators/generateRouteConfigType.js.map +1 -1
  12. package/dist/generators/generateRouter.js +51 -13
  13. package/dist/generators/generateRouter.js.map +1 -1
  14. package/dist/generators/generateRouterFastify.js +127 -384
  15. package/dist/generators/generateRouterFastify.js.map +1 -1
  16. package/dist/generators/generateRouterHono.js +48 -36
  17. package/dist/generators/generateRouterHono.js.map +1 -1
  18. package/dist/generators/generateUnifiedHandler.js +24 -8
  19. package/dist/generators/generateUnifiedHandler.js.map +1 -1
  20. package/dist/index.js +21 -5
  21. package/dist/index.js.map +1 -1
  22. package/dist/utils/copyFiles.js +12 -0
  23. package/dist/utils/copyFiles.js.map +1 -1
  24. package/dist/utils/writeFileSafely.js +3 -0
  25. package/dist/utils/writeFileSafely.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/copy/autoIncludePlanner.ts +299 -0
  28. package/src/copy/autoIncludeRuntime.ts +307 -0
  29. package/src/copy/operationRuntime.ts +603 -0
  30. package/src/copy/routeConfig.express.ts +5 -3
  31. package/src/copy/routeConfig.fastify.ts +2 -2
  32. package/src/copy/routeConfig.hono.ts +3 -3
  33. package/src/copy/routeConfig.ts +20 -9
  34. package/src/generators/generateFastifyHandler.ts +17 -4
  35. package/src/generators/generateHonoHandler.ts +4 -4
  36. package/src/generators/generateOperationCore.ts +34 -546
  37. package/src/generators/generateRelationMeta.ts +154 -0
  38. package/src/generators/generateRouteConfigType.ts +5 -5
  39. package/src/generators/generateRouter.ts +51 -13
  40. package/src/generators/generateRouterFastify.ts +127 -384
  41. package/src/generators/generateRouterHono.ts +48 -36
  42. package/src/generators/generateUnifiedHandler.ts +24 -8
  43. package/src/index.ts +25 -7
  44. package/src/utils/copyFiles.ts +13 -0
  45. package/src/utils/writeFileSafely.ts +3 -0
@@ -36,26 +36,37 @@ export type ProgressiveStageResult<T = unknown> =
36
36
  | ProgressivePatch[]
37
37
  | ProgressiveStopResult<T>
38
38
 
39
- export type ProgressiveStageContext<TContext = unknown, TPrisma = any> = {
39
+ export type ProgressiveStageContext<TContext = unknown, TPrisma = unknown> = {
40
40
  ctx: TContext
41
- req: any
42
- res: any
41
+ req: unknown
42
+ res: unknown
43
43
  prisma: TPrisma
44
44
  variant: string
45
45
  accumulated: Record<string, unknown>
46
46
  signal: AbortSignal
47
47
  }
48
48
 
49
- export type ProgressiveStage<TContext = unknown, TPrisma = any, T = unknown> = (
49
+ export type ProgressiveStage<TContext = unknown, TPrisma = unknown, T = unknown> = (
50
50
  context: ProgressiveStageContext<TContext, TPrisma>,
51
51
  ) => Promise<ProgressiveStageResult<T>>
52
52
 
53
- export type ProgressiveVariantConfig = {
53
+ export type ManualProgressiveVariantConfig = {
54
54
  enabled?: boolean
55
+ mode?: 'manual'
55
56
  stages: string[]
56
57
  }
57
58
 
58
- export interface BaseOperationConfig<HookHandler, TShape = Record<string, any>> {
59
+ export type AutoIncludeProgressiveVariantConfig = {
60
+ enabled?: boolean
61
+ mode: 'autoInclude'
62
+ fallback?: 'singleResult' | 'error'
63
+ }
64
+
65
+ export type ProgressiveVariantConfig =
66
+ | ManualProgressiveVariantConfig
67
+ | AutoIncludeProgressiveVariantConfig
68
+
69
+ export interface BaseOperationConfig<HookHandler, TShape = Record<string, unknown>> {
59
70
  before?: HookHandler[]
60
71
  after?: HookHandler[]
61
72
  shape?: TShape
@@ -64,7 +75,7 @@ export interface BaseOperationConfig<HookHandler, TShape = Record<string, any>>
64
75
  export interface BaseRouteConfig<
65
76
  HookHandler,
66
77
  RequestType,
67
- TShape = Record<string, any>,
78
+ TShape = Record<string, unknown>,
68
79
  TCtx = unknown,
69
80
  > {
70
81
  enableAll?: boolean
@@ -111,5 +122,5 @@ export interface BaseRouteConfig<
111
122
  groupBy?: BaseOperationConfig<HookHandler, TShape>
112
123
  }
113
124
 
114
- export type OperationConfig = BaseOperationConfig<any>
115
- export type RouteConfig = BaseRouteConfig<any, any>
125
+ export type OperationConfig = BaseOperationConfig<unknown>
126
+ export type RouteConfig = BaseRouteConfig<unknown, unknown>
@@ -54,7 +54,7 @@ export async function ${exportName}(
54
54
  _reply: FastifyReply,
55
55
  ): Promise<void> {
56
56
  const data = await core.${coreFnName(op)}(buildContext(request))
57
- ;(request as any).resultData = data
57
+ ;(request as FastifyExtended).resultData = data
58
58
  }`
59
59
  }).join('\n')
60
60
 
@@ -68,8 +68,9 @@ export async function ${exportName}(
68
68
  _reply: FastifyReply,
69
69
  ): Promise<void> {
70
70
  const data = await core.${coreFnName(op)}(buildContext(request))
71
- ;(request as any).resultData = data
72
- ;(request as any).resultStatus = ${statusCode}
71
+ const ext = request as FastifyExtended
72
+ ext.resultData = data
73
+ ext.resultStatus = ${statusCode}
73
74
  }`
74
75
  }).join('\n')
75
76
 
@@ -77,8 +78,20 @@ export async function ${exportName}(
77
78
  import * as core from './${modelName}Core'
78
79
  import type { OperationContext } from '../operationRuntime'
79
80
 
81
+ type FastifyExtended = FastifyRequest & {
82
+ prisma?: unknown
83
+ postgres?: unknown
84
+ sqlite?: unknown
85
+ parsedQuery?: Record<string, unknown>
86
+ routeConfig?: { pagination?: OperationContext['paginationConfig'] }
87
+ guardShape?: Record<string, unknown>
88
+ guardCaller?: string
89
+ resultData?: unknown
90
+ resultStatus?: number
91
+ }
92
+
80
93
  function buildContext(request: FastifyRequest): OperationContext {
81
- const req = request as any
94
+ const req = request as FastifyExtended
82
95
  return {
83
96
  prisma: req.prisma,
84
97
  postgres: req.postgres,
@@ -72,12 +72,12 @@ import * as core from './${modelName}Core'
72
72
  import type { OperationContext } from '../operationRuntime'
73
73
 
74
74
  type HonoVariables = {
75
- prisma: any
76
- postgres?: any
77
- sqlite?: any
75
+ prisma: unknown
76
+ postgres?: unknown
77
+ sqlite?: unknown
78
78
  parsedQuery?: Record<string, unknown>
79
79
  body?: unknown
80
- routeConfig?: any
80
+ routeConfig?: { pagination?: OperationContext['paginationConfig'] }
81
81
  guardShape?: Record<string, unknown>
82
82
  guardCaller?: string
83
83
  resultData?: unknown