@coko/server
Version:
Reusable server for use by Coko's projects
43 lines • 2.3 kB
TypeScript
import { Model, AjvValidator, ColumnRefOrOrderByDescriptor, Transaction, PartialModelObject } from 'objection';
export type QueryResult<T> = {
result: T[];
totalCount: number;
};
export type FindOptions = {
trx?: Transaction;
related?: string | string[];
orderBy?: ColumnRefOrOrderByDescriptor[];
page?: number;
pageSize?: number;
};
export type TrxOption = {
trx?: Transaction;
};
export type TrxAndRelatedOptions = {
trx?: Transaction;
related?: string | string[];
};
declare class BaseModel extends Model {
id: string;
created: string;
updated: string;
type: string;
static createValidator(): AjvValidator;
static get jsonSchema(): object;
$beforeInsert(): void;
$beforeUpdate(): void;
static find<T extends BaseModel>(this: new () => T, data: PartialModelObject<T>, options?: FindOptions): Promise<QueryResult<T>>;
static findByIds<T extends BaseModel>(this: new () => T, ids: string[], options?: TrxAndRelatedOptions): Promise<T[]>;
static findById<T extends BaseModel>(this: new () => T, id: string, options?: TrxAndRelatedOptions): Promise<T>;
static findOne<T extends BaseModel>(this: new () => T, data: PartialModelObject<T>, options?: TrxAndRelatedOptions): Promise<T>;
static insert<T extends BaseModel>(this: new () => T, data: PartialModelObject<T>, options?: TrxAndRelatedOptions): Promise<T>;
static insert<T extends BaseModel>(this: new () => T, data: PartialModelObject<T>[], options?: TrxAndRelatedOptions): Promise<T[]>;
patch(data: PartialModelObject<this>, options?: TrxOption): Promise<this>;
static patchAndFetchById<T extends BaseModel>(this: new () => T, id: string, data: PartialModelObject<T>, options?: TrxAndRelatedOptions): Promise<T>;
update(data: PartialModelObject<this>, options?: TrxOption): Promise<this>;
static updateAndFetchById<T extends BaseModel>(this: new () => T, id: string, data: PartialModelObject<T>, options?: TrxAndRelatedOptions): Promise<T>;
static deleteById<T extends BaseModel>(this: new () => T, id: string, options?: TrxOption): Promise<number>;
static deleteByIds<T extends BaseModel>(this: new () => T, ids: string[], options?: TrxOption): Promise<number>;
}
export default BaseModel;
//# sourceMappingURL=base.model.d.ts.map