diff --git a/packages/hypergraph/src/entity/findMany.ts b/packages/hypergraph/src/entity/findMany.ts index cf5f6a7d..086b9987 100644 --- a/packages/hypergraph/src/entity/findMany.ts +++ b/packages/hypergraph/src/entity/findMany.ts @@ -256,13 +256,13 @@ export function findMany( const evaluateFilter = (fieldFilter: EntityFieldFilter, fieldValue: T): boolean => { // Handle NOT operator - if ('NOT' in fieldFilter && fieldFilter.NOT) { - return !evaluateFilter(fieldFilter.NOT, fieldValue); + if ('not' in fieldFilter && fieldFilter.not) { + return !evaluateFilter(fieldFilter.not, fieldValue); } // Handle OR operator - if ('OR' in fieldFilter) { - const orFilters = fieldFilter.OR; + if ('or' in fieldFilter) { + const orFilters = fieldFilter.or; if (Array.isArray(orFilters)) { return orFilters.some((orFilter) => evaluateFilter(orFilter as EntityFieldFilter, fieldValue)); } @@ -337,13 +337,13 @@ export function findMany( const evaluateEntityFilter = (entityFilter: EntityFilter>, entity: Entity): boolean => { // handle top-level NOT operator - if ('NOT' in entityFilter && entityFilter.NOT) { - return !evaluateCrossFieldFilter(entityFilter.NOT, entity); + if ('not' in entityFilter && entityFilter.not) { + return !evaluateCrossFieldFilter(entityFilter.not, entity); } // handle top-level OR operator - if ('OR' in entityFilter && Array.isArray(entityFilter.OR)) { - return entityFilter.OR.some((orFilter) => evaluateCrossFieldFilter(orFilter, entity)); + if ('or' in entityFilter && Array.isArray(entityFilter.or)) { + return entityFilter.or.some((orFilter) => evaluateCrossFieldFilter(orFilter, entity)); } // evaluate regular field filters diff --git a/packages/hypergraph/src/entity/types.ts b/packages/hypergraph/src/entity/types.ts index 0e51a71d..546a493a 100644 --- a/packages/hypergraph/src/entity/types.ts +++ b/packages/hypergraph/src/entity/types.ts @@ -55,8 +55,8 @@ export type EntityNumberFilter = { is?: number; greaterThan?: number; lessThan?: number; - NOT?: EntityNumberFilter; - OR?: EntityNumberFilter[]; + not?: EntityNumberFilter; + or?: EntityNumberFilter[]; }; export type EntityTextFilter = { @@ -65,21 +65,21 @@ export type EntityTextFilter = { endsWith?: string; contains?: string; equals?: string; - NOT?: EntityTextFilter; - OR?: EntityTextFilter[]; + not?: EntityTextFilter; + or?: EntityTextFilter[]; }; export type CrossFieldFilter = { [K in keyof T]?: EntityFieldFilter; } & { - OR?: Array>; - NOT?: CrossFieldFilter; + or?: Array>; + not?: CrossFieldFilter; }; export type EntityFieldFilter = { is?: T; - NOT?: EntityFieldFilter; - OR?: Array>; + not?: EntityFieldFilter; + or?: Array>; } & (T extends boolean ? { is?: boolean; diff --git a/packages/hypergraph/test/entity/findMany.test.ts b/packages/hypergraph/test/entity/findMany.test.ts index fd0b4094..cc0e79b3 100644 --- a/packages/hypergraph/test/entity/findMany.test.ts +++ b/packages/hypergraph/test/entity/findMany.test.ts @@ -194,7 +194,7 @@ describe('findMany with filters', () => { handle, Person, { - name: { NOT: { is: 'John' } }, + name: { not: { is: 'John' } }, }, undefined, ); @@ -213,7 +213,7 @@ describe('findMany with filters', () => { handle, Person, { - age: { NOT: { is: 30 } }, + age: { not: { is: 30 } }, }, undefined, ); @@ -234,7 +234,7 @@ describe('findMany with filters', () => { handle, Person, { - name: { OR: [{ is: 'John' }, { is: 'Jane' }] }, + name: { or: [{ is: 'John' }, { is: 'Jane' }] }, }, undefined, ); @@ -253,7 +253,7 @@ describe('findMany with filters', () => { handle, Person, { - age: { OR: [{ is: 25 }, { is: 40 }] }, + age: { or: [{ is: 25 }, { is: 40 }] }, }, undefined, ); @@ -274,7 +274,7 @@ describe('findMany with filters', () => { handle, Person, { - name: { NOT: { OR: [{ is: 'John' }, { is: 'Jane' }] } }, + name: { not: { or: [{ is: 'John' }, { is: 'Jane' }] } }, }, undefined, ); @@ -293,7 +293,7 @@ describe('findMany with filters', () => { handle, Person, { - name: { NOT: { OR: [{ is: 'John' }, { is: 'Jane' }] } }, + name: { not: { or: [{ is: 'John' }, { is: 'Jane' }] } }, }, undefined, ); @@ -314,7 +314,7 @@ describe('findMany with filters', () => { handle, Person, { - OR: [{ name: { contains: 'o' } }, { age: { greaterThan: 35 } }], + or: [{ name: { contains: 'o' } }, { age: { greaterThan: 35 } }], }, undefined, ); @@ -333,7 +333,7 @@ describe('findMany with filters', () => { handle, Person, { - NOT: { + not: { name: { startsWith: 'J' }, age: { lessThan: 30 }, }, @@ -356,7 +356,7 @@ describe('findMany with filters', () => { handle, Person, { - OR: [ + or: [ { name: { startsWith: 'J' }, age: { lessThan: 30 }, @@ -385,8 +385,8 @@ describe('findMany with filters', () => { handle, Person, { - name: { NOT: { startsWith: 'J' } }, - age: { NOT: { greaterThan: 35 } }, + name: { not: { startsWith: 'J' } }, + age: { not: { greaterThan: 35 } }, }, undefined, ); @@ -407,7 +407,7 @@ describe('findMany with filters', () => { handle, Product, { - OR: [ + or: [ { category: { is: 'Electronics' }, price: { greaterThan: 800 }, @@ -436,7 +436,7 @@ describe('findMany with filters', () => { handle, Person, { - OR: [{ name: { startsWith: 'J' } }, { name: { contains: 'i' } }], + or: [{ name: { startsWith: 'J' } }, { name: { contains: 'i' } }], isActive: { is: true }, }, undefined, @@ -457,7 +457,7 @@ describe('findMany with filters', () => { handle, Person, { - NOT: { name: { startsWith: 'J' } }, + not: { name: { startsWith: 'J' } }, age: { greaterThan: 30 }, }, undefined,