UNPKG

miter

Version:

A typescript web framework based on ExpressJs based loosely on SailsJs

87 lines (86 loc) 2.44 kB
import { TransactionT } from '../../core/transaction'; export interface WherePGStatement { $any: Array<string | number>; $all: Array<string | number>; } export declare type WhereLogic = Partial<{ $ne: string | number | WhereLogic; $in: Array<string | number>; $not: boolean | string | number; $notIn: Array<string | number>; $gte: number | string | Date; $gt: number | string | Date; $lte: number | string | Date; $lt: number | string | Date; $like: string | WherePGStatement; $iLike: string | WherePGStatement; $ilike: string | WherePGStatement; $notLike: string | WherePGStatement; $notILike: string | WherePGStatement; $between: [number, number]; "..": [number, number]; $notBetween: [number, number]; "!..": [number, number]; $overlap: [number, number]; "&&": [number, number]; $contains: any; "@>": any; $contained: any; "<@": any; }>; export declare type WhereClauseSimpleValue<T> = T | null; export declare type WhereClauseComplexValue<T> = { $not: WhereClauseSimpleValue<T>; } | { $in: WhereClauseSimpleValue<T>[]; } | { $notIn: WhereClauseSimpleValue<T>[]; } | { $gt: T; } | { $gte: T; } | { $lt: T; } | { $lte: T; } | { $between: [T, T]; } | { $notBetween: [T, T]; } | { $like: string; } | WhereClauseT<T>; export declare type WhereClauseValueT<T> = WhereClauseSimpleValue<T> | WhereClauseComplexValue<T>; export declare type WhereClauseT<T> = { [K in keyof (T)]?: WhereClauseValueT<T[K]>; } & { $and?: WhereClauseT<T>[]; $or?: WhereClauseT<T>[]; }; export declare type WhereOptions<T> = WhereClauseT<T>; export declare type IncludeClauseT<T> = string[]; export declare type OrderingT<T> = [keyof (T), 'ASC' | 'DESC']; export declare type OrderClauseT<T> = OrderingT<T>[]; export declare type QueryT<T> = { where?: WhereClauseT<T>; include?: IncludeClauseT<T>; order?: OrderClauseT<T>; limit?: number; offset?: number; transaction?: TransactionT; }; export declare type DefaultsClauseT<T> = { [K in keyof (T)]: T[K] | null; }; export interface FindOrCreateQueryT<T> extends QueryT<T> { defaults?: DefaultsClauseT<T>; } export declare type CountQueryT<T> = { where?: WhereClauseT<T>; include?: IncludeClauseT<T>; transaction?: TransactionT; }; export declare type DestroyQueryT<T> = { where?: WhereClauseT<T>; limit?: number; };