Skip to content

Commit 381d2eb

Browse files
committed
fix: id filtering crash for ObjectIDs in convertFilter util
1 parent 0cd6a63 commit 381d2eb

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/utils/converters.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ export const convertFilter = (modelFields: DMMF.Model['fields'], filterObject?:
3434
if (!filterObject) return {};
3535

3636
const uuidRegex = /^[0-9A-F]{8}-[0-9A-F]{4}-[5|4|3|2|1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
37+
const objectIdRegex = /^[0-9a-fA-F]{24}$/;
38+
3739
const { filters = {} } = filterObject;
3840
return Object.entries(filters).reduce((where, [name, filter]) => {
3941
if (['boolean', 'number', 'float', 'object', 'array'].includes(filter.property.type())) {
@@ -48,7 +50,9 @@ export const convertFilter = (modelFields: DMMF.Model['fields'], filterObject?:
4850
}
4951
} else if ((filter.property as Property).isEnum()) {
5052
where[name] = { equals: filter.value };
51-
} else if (filter.property.type() === 'string' && uuidRegex.test(filter.value.toString())) {
53+
} else if (
54+
filter.property.type() === 'string'
55+
&& (uuidRegex.test(filter.value.toString()) || objectIdRegex.test(filter.value.toString()))) {
5256
where[name] = { equals: filter.value };
5357
} else if (filter.property.type() === 'reference' && (filter.property as Property).foreignColumnName()) {
5458
where[(filter.property as Property).foreignColumnName() as string] = convertParam(

0 commit comments

Comments
 (0)