miter
Version:
A typescript web framework based on ExpressJs based loosely on SailsJs
87 lines (86 loc) • 2.44 kB
TypeScript
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;
};