diff --git a/adminforth/modules/operationalResource.ts b/adminforth/modules/operationalResource.ts index 1a98938c..02f0a832 100644 --- a/adminforth/modules/operationalResource.ts +++ b/adminforth/modules/operationalResource.ts @@ -5,7 +5,19 @@ function filtersIfFilter(filter: IAdminForthFilter | IAdminForthFilter[] | undef if (!filter) { return []; } - return (Array.isArray(filter) ? filter : [filter]) as IAdminForthFilter[]; + const ret = (Array.isArray(filter) ? filter : [filter]) as IAdminForthFilter[]; + + ret.forEach((f) => { + if (typeof f !== 'object') { + throw new Error('Filter must be an object'); + } + if (!f._adminforth) { + throw new Error('Filter must be Filters.X() or Filters.NOT() or Filters.OR() or Filters.AND()'); + } + + }); + + return ret; } function sortsIfSort(sort: IAdminForthSort | IAdminForthSort[]): IAdminForthSort[] { diff --git a/adminforth/types/Back.ts b/adminforth/types/Back.ts index a636cc0a..2c84299f 100644 --- a/adminforth/types/Back.ts +++ b/adminforth/types/Back.ts @@ -110,6 +110,7 @@ export interface IAdminForthFilter { field: string; operator: AdminForthFilterOperators; value: any; + _adminforth?: boolean; } export interface IAdminForthSort { @@ -1043,13 +1044,13 @@ export type FDataFilter = (field: string, value: any) => IAdminForthFilter; export class Filters { static EQ(field: string, value: any): IAdminForthFilter { - return { field, operator: AdminForthFilterOperators.EQ, value }; + return { field, operator: AdminForthFilterOperators.EQ, value, _adminforth: true }; } static NEQ(field: string, value: any): IAdminForthFilter { - return { field, operator: AdminForthFilterOperators.NE, value }; + return { field, operator: AdminForthFilterOperators.NE, value, _adminforth: true }; } static GT(field: string, value: any): IAdminForthFilter { - return { field, operator: AdminForthFilterOperators.GT, value }; + return { field, operator: AdminForthFilterOperators.GT, value, _adminforth: true }; } static GTE(field: string, value: any): IAdminForthFilter { return { field, operator: AdminForthFilterOperators.GTE, value };