@decaf-ts/db-decorators
Version:
Agnostic database decorators and repository
37 lines (36 loc) • 2.2 kB
TypeScript
import { IRepository } from "../interfaces/IRepository";
import { Constructor, Model } from "@decaf-ts/decorator-validation";
import { Context } from "./Context";
export declare abstract class BaseRepository<M extends Model> implements IRepository<M> {
private readonly _class;
private _pk;
get class(): Constructor<M>;
get pk(): string;
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: Context<M>): Promise<M>;
protected createAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
protected createAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
abstract read(key: string | number, ...args: any[]): Promise<M>;
readAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
protected readSuffix(model: M, context: Context<M>): Promise<M>;
protected readPrefix(key: string, ...args: any[]): Promise<any[]>;
protected readAllPrefix(keys: string[] | number[], ...args: any[]): Promise<any[]>;
protected readAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
abstract update(model: M, ...args: any[]): Promise<M>;
updateAll(models: M[], ...args: any): Promise<M[]>;
protected updateSuffix(model: M, context: Context<M>): Promise<M>;
protected updatePrefix(model: M, ...args: any[]): Promise<any[]>;
protected updateAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
protected updateAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
abstract delete(key: string | number, ...args: any[]): Promise<M>;
deleteAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
protected deleteSuffix(model: M, context: Context<M>): Promise<M>;
protected deletePrefix(key: any, ...args: any[]): Promise<any[]>;
protected deleteAllPrefix(keys: string[] | number[], ...args: any[]): Promise<any[]>;
protected deleteAllSuffix(models: M[], context: Context<M>): Promise<M[]>;
protected merge(oldModel: M, model: M): M;
toString(): string;
}