UNPKG

@decaf-ts/db-decorators

Version:

Agnostic database decorators and repository

40 lines (39 loc) 2.31 kB
import { IRepository } from "../interfaces/IRepository"; import { Constructor, Model } from "@decaf-ts/decorator-validation"; import { Context } from "./Context"; import { RepositoryFlags } from "./types"; export declare abstract class BaseRepository<M extends Model, F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> implements IRepository<M, F, C> { private readonly _class; private _pk; private _pkProps; get class(): Constructor<M>; get pk(): keyof M; protected get pkProps(): any; protected constructor(clazz?: Constructor<M>); abstract create(model: M, ...args: any[]): Promise<M>; createAll(models: M[], ...args: any[]): Promise<M[]>; protected createPrefix(model: M, ...args: any[]): Promise<any[]>; protected createSuffix(model: M, context: C): Promise<M>; protected createAllPrefix(models: M[], ...args: any[]): Promise<any[]>; protected createAllSuffix(models: M[], context: C): Promise<M[]>; abstract read(key: string | number, ...args: any[]): Promise<M>; readAll(keys: string[] | number[], ...args: any[]): Promise<M[]>; protected readSuffix(model: M, context: C): Promise<M>; protected readPrefix(key: string, ...args: any[]): Promise<any[]>; protected readAllPrefix(keys: string[] | number[], ...args: any[]): Promise<any[]>; protected readAllSuffix(models: M[], context: C): Promise<M[]>; abstract update(model: M, ...args: any[]): Promise<M>; updateAll(models: M[], ...args: any): Promise<M[]>; protected updateSuffix(model: M, context: C): Promise<M>; protected updatePrefix(model: M, ...args: any[]): Promise<any[]>; protected updateAllPrefix(models: M[], ...args: any[]): Promise<any[]>; protected updateAllSuffix(models: M[], context: C): Promise<M[]>; abstract delete(key: string | number, ...args: any[]): Promise<M>; deleteAll(keys: string[] | number[], ...args: any[]): Promise<M[]>; protected deleteSuffix(model: M, context: C): Promise<M>; protected deletePrefix(key: any, ...args: any[]): Promise<any[]>; protected deleteAllPrefix(keys: string[] | number[], ...args: any[]): Promise<any[]>; protected deleteAllSuffix(models: M[], context: C): Promise<M[]>; protected merge(oldModel: M, model: M): M; toString(): string; }