miter
Version:
A typescript web framework based on ExpressJs based loosely on SailsJs
36 lines (35 loc) • 1.67 kB
TypeScript
/// <reference types="sequelize" />
import * as Sql from 'sequelize';
export declare type QueryT = Sql.FindOptions;
export declare type FindOrCreateQueryT = Sql.FindOrInitializeOptions<any>;
export declare type CountQueryT = Sql.CountOptions;
export declare type DestroyQueryT = Sql.DestroyOptions;
export interface CountAllResults<T> {
count: number;
results: T[];
page?: number;
perPage?: number;
}
export interface Db<T> {
create(t: (T | Object)[]): Promise<boolean>;
create(t: T | Object): Promise<T>;
findById(id: string | number, options?: QueryT): Promise<T | null>;
findOne(query: QueryT): Promise<T | null>;
findOrCreate(query: string | Sql.WhereOptions, defaults?: Object | T): Promise<[T, boolean]>;
findAndCountAll(query?: QueryT): Promise<CountAllResults<T>>;
findAll(query?: QueryT): Promise<T[]>;
all(query?: QueryT): Promise<T[]>;
count(query?: CountQueryT): Promise<number>;
max<T>(field: string): Promise<number>;
min<T>(field: string): Promise<number>;
sum<T>(field: string): Promise<number>;
save(t: T): Promise<T>;
update(id: number | string, replace: Object, returning?: boolean): Promise<[boolean | number, any]>;
update(t: T, replace: Object, returning?: boolean): Promise<[boolean | number, any]>;
update(query: QueryT, replace: Object, returning?: boolean): Promise<[boolean | number, any]>;
updateOrCreate(query: string | Sql.WhereOptions, defaults: Object | T): Promise<[T, boolean]>;
destroy(id: string | number): Promise<boolean>;
destroy(t: T): Promise<boolean>;
destroy(query: DestroyQueryT): Promise<number>;
fromJson(json: any): T;
}