trilogy
Version:
TypeScript SQLite layer with support for both native C++ & pure JavaScript drivers.
33 lines (32 loc) • 1.72 kB
TypeScript
import * as knex from 'knex';
import Model from './model';
import * as types from './types';
export declare function toKnexSchema<D extends types.ReturnDict>(model: Model<D>, options: types.ModelOptions): (table: knex.TableBuilder) => void;
export declare enum TriggerEvent {
Insert = "insert",
Update = "update",
Delete = "delete"
}
export declare function createTrigger(model: Model<any>, event: TriggerEvent): Promise<[types.Query, () => Promise<any[]>]>;
export declare function createTimestampTrigger(model: Model<any>, column?: string): Promise<any>;
export declare function castValue(value: any): any;
export declare function normalizeSchema<D extends types.LooseObject, T extends types.SchemaRaw<D> = types.SchemaRaw<D>, O extends types.Schema<D> = types.Schema<D>>(schema: T, options: types.ModelOptions): O;
export declare function toKnexMethod(type: string): 'text' | 'integer' | 'dateTime' | 'increments' | never;
export declare function toInputType(type: string, value: any): types.StorageType | never;
export declare function toReturnType(type: string, value: any): types.ReturnType | never;
export declare class Cast<D extends types.ReturnDict> {
private model;
constructor(model: Model<D>);
toDefinition(object: types.LooseObject | types.Criteria2 | types.CriteriaList, options: {
raw?: boolean;
}): types.CastToDefinition;
fromDefinition(object: types.LooseObject, options: {
raw?: boolean;
}): D;
toColumnDefinition(column: string, value: any, options?: {
raw?: boolean;
}): types.StorageType;
fromColumnDefinition(column: string, value: any, options?: {
raw?: boolean;
}): D[keyof D];
}