UNPKG

pure-orm

Version:

A SQL Toolkit based on pure business objects passed to and from stateful data access objects

42 lines (41 loc) 1.73 kB
import { IModel, ICollection, IEntities } from './core'; import { ICoreIntegratedDriver } from './driver-integrations/index'; export interface ICreateOptions { entities: IEntities<IModel>; db: any; logError?: (err: Error) => never; } export interface IPureORM extends ICoreIntegratedDriver { getMatching: <T extends IModel>(model: T) => Promise<T>; getOneOrNoneMatching: <T extends IModel>(model: T) => Promise<T | void>; getAnyMatching: <T extends ICollection<IModel>>(model: IModel) => Promise<T | void>; getAllMatching: <T extends ICollection<IModel>>(model: IModel) => Promise<T>; create: <T extends IModel>(model: T) => Promise<T>; update: <T extends IModel>(model: T, options?: { on: string; }) => Promise<T>; delete: <T extends IModel>(model: T) => Promise<void>; deleteMatching: <T extends IModel>(model: T) => Promise<void>; getSqlInsertParts: (model: IModel) => { columns: string; values: Array<string>; valuesVar: Array<string>; }; getSqlUpdateParts: (model: IModel, on?: string) => { clause: string; idVar: string; values: Array<string>; }; getMatchingParts: (model: IModel) => { whereClause: string; values: Array<string>; }; getMatchingPartsObject: (model: IModel) => { whereClause: string; values: Array<string>; }; getNewWith: (model: IModel, sqlColumns: any, values: any) => IModel; getValueBySqlColumn: (model: IModel, sqlColumn: string) => string; getSqlColumnForPropertyName: (model: IModel, propertyName: string) => string; } export declare const create: ({ entities: externalEntities, db, logError }: ICreateOptions) => IPureORM;