@@ -92,6 +92,8 @@ const FilterOperations = [
92
92
93
93
type FilterOperationType = ( typeof FilterOperations ) [ number ] | undefined ;
94
94
95
+ const prismaIdDivider = '_' ;
96
+
95
97
registerCustomSerializers ( ) ;
96
98
97
99
/**
@@ -216,7 +218,7 @@ class RequestHandler extends APIHandlerBase {
216
218
217
219
constructor ( private readonly options : Options ) {
218
220
super ( ) ;
219
- this . idDivider = options . idDivider ?? '_' ;
221
+ this . idDivider = options . idDivider ?? prismaIdDivider ;
220
222
const segmentCharset = options . urlSegmentNameCharset ?? 'a-zA-Z0-9-_~ %' ;
221
223
this . urlPatterns = this . buildUrlPatterns ( this . idDivider , segmentCharset ) ;
222
224
}
@@ -1131,7 +1133,7 @@ class RequestHandler extends APIHandlerBase {
1131
1133
if ( ids . length === 0 ) {
1132
1134
return undefined ;
1133
1135
} else {
1134
- return data [ ids . map ( ( id ) => id . name ) . join ( this . idDivider ) ] ;
1136
+ return data [ this . makeIdKey ( ids ) ] ;
1135
1137
}
1136
1138
}
1137
1139
@@ -1233,7 +1235,7 @@ class RequestHandler extends APIHandlerBase {
1233
1235
} else {
1234
1236
return {
1235
1237
// TODO: support `@@id` with custom name
1236
- [ idFields . map ( ( idf ) => idf . name ) . join ( '_' ) ] : idFields . reduce (
1238
+ [ idFields . map ( ( idf ) => idf . name ) . join ( prismaIdDivider ) ] : idFields . reduce (
1237
1239
( acc , curr , idx ) => ( {
1238
1240
...acc ,
1239
1241
[ curr . name ] : this . coerce ( curr . type , resourceId . split ( this . idDivider ) [ idx ] ) ,
@@ -1257,7 +1259,7 @@ class RequestHandler extends APIHandlerBase {
1257
1259
1258
1260
private makePrismaIdKey ( idFields : FieldInfo [ ] ) {
1259
1261
// TODO: support `@@id` with custom name
1260
- return idFields . map ( ( idf ) => idf . name ) . join ( '_' ) ;
1262
+ return idFields . map ( ( idf ) => idf . name ) . join ( prismaIdDivider ) ;
1261
1263
}
1262
1264
1263
1265
private makeCompoundId ( idFields : FieldInfo [ ] , item : any ) {
0 commit comments