@@ -113,27 +113,45 @@ export function mapError(error: unknown): HttpError {
113113 const code = (error as any).code as string
114114 const mapped = PRISMA_ERROR_MAP[code]
115115 if (mapped) {
116- return new HttpError(mapped.status, mapped.message)
116+ const detail = (error as any).message
117+ const message = detail
118+ ? mapped.message + ': ' + detail
119+ : mapped.message
120+ return new HttpError(mapped.status, message)
117121 }
118122 if (typeof code === 'string' && code.startsWith('P')) {
123+ const msg = (error as any).message || 'Database operation failed'
119124 console.warn(
120125 '[prisma-generator-express] Unmapped Prisma error code:',
121126 code,
122- (error as any).message || '' ,
127+ msg ,
123128 )
124- return new HttpError(500, 'Database operation failed' )
129+ return new HttpError(500, msg )
125130 }
126131 }
127132
128133 if (error && typeof error === 'object' && 'name' in error) {
129134 const name = (error as any).name
130135 if (name === 'PrismaClientValidationError') {
131- return new HttpError(400, 'Invalid query parameters')
136+ return new HttpError(400, (error as any).message || 'Invalid query parameters')
137+ }
138+ if (name === 'PrismaClientKnownRequestError') {
139+ return new HttpError(400, (error as any).message || 'Database request error')
140+ }
141+ if (name === 'PrismaClientInitializationError') {
142+ return new HttpError(503, (error as any).message || 'Database connection failed')
143+ }
144+ if (name === 'PrismaClientRustPanicError') {
145+ return new HttpError(500, (error as any).message || 'Internal database engine error')
146+ }
147+ if (name === 'PrismaClientUnknownRequestError') {
148+ return new HttpError(500, (error as any).message || 'Unknown database error')
132149 }
133150 }
134151
152+ const msg = error instanceof Error ? error.message : String(error)
135153 console.error('[prisma-generator-express] Unhandled error:', error)
136- return new HttpError(500, 'Internal server error')
154+ return new HttpError(500, msg || 'Internal server error')
137155}
138156
139157let _speedExtension: ((opts: any) => any) | null = null
0 commit comments