UNPKG

@rewiko/crud-request

Version:

NestJs CRUD for RESTful APIs - request query builder

90 lines (89 loc) 2.74 kB
export declare type QueryFields = string[]; export interface QueryFilter { field: string; operator: ComparisonOperator; value?: any; } export declare type QueryFilterArr = [string, ComparisonOperator, any?]; export interface QueryJoin { field: string; select?: QueryFields; } export declare type QueryJoinArr = [string, QueryFields?]; export interface QuerySort { field: string; order: QuerySortOperator; } export declare type QuerySortArr = [string, QuerySortOperator]; export declare type QuerySortOperator = 'ASC' | 'DESC'; declare type DeprecatedCondOperator = 'eq' | 'ne' | 'gt' | 'lt' | 'gte' | 'lte' | 'starts' | 'ends' | 'cont' | 'excl' | 'in' | 'notin' | 'isnull' | 'notnull' | 'between'; export declare enum CondOperator { EQUALS = "$eq", NOT_EQUALS = "$ne", GREATER_THAN = "$gt", LOWER_THAN = "$lt", GREATER_THAN_EQUALS = "$gte", LOWER_THAN_EQUALS = "$lte", STARTS = "$starts", ENDS = "$ends", CONTAINS = "$cont", EXCLUDES = "$excl", IN = "$in", NOT_IN = "$notin", IS_NULL = "$isnull", NOT_NULL = "$notnull", BETWEEN = "$between", EQUALS_LOW = "$eqL", NOT_EQUALS_LOW = "$neL", STARTS_LOW = "$startsL", ENDS_LOW = "$endsL", CONTAINS_LOW = "$contL", EXCLUDES_LOW = "$exclL", IN_LOW = "$inL", NOT_IN_LOW = "$notinL" } export declare type ComparisonOperator = DeprecatedCondOperator | keyof SFieldOperator | string; export declare type SPrimitivesVal = string | number | boolean; export declare type SFiledValues = SPrimitivesVal | SPrimitivesVal[]; export interface SFieldOperator { $eq?: SFiledValues; $ne?: SFiledValues; $gt?: SFiledValues; $lt?: SFiledValues; $gte?: SFiledValues; $lte?: SFiledValues; $starts?: SFiledValues; $ends?: SFiledValues; $cont?: SFiledValues; $excl?: SFiledValues; $in?: SFiledValues; $notin?: SFiledValues; $between?: SFiledValues; $isnull?: SFiledValues; $notnull?: SFiledValues; $eqL?: SFiledValues; $neL?: SFiledValues; $startsL?: SFiledValues; $endsL?: SFiledValues; $contL?: SFiledValues; $exclL?: SFiledValues; $inL?: SFiledValues; $notinL?: SFiledValues; $or?: SFieldOperator; $and?: never; } export declare type SField = SPrimitivesVal | SFieldOperator | { [$custom: string]: SFiledValues; }; export interface SFields { [key: string]: SField | Array<SFields | SConditionAND> | undefined; $or?: Array<SFields | SConditionAND>; $and?: never; } export interface SConditionAND { $and?: Array<SFields | SConditionAND>; $or?: never; } export declare type SConditionKey = '$and' | '$or'; export declare type SCondition = SFields | SConditionAND; export {};