UNPKG

@decaf-ts/db-decorators

Version:

Agnostic database decorators and repository

37 lines (36 loc) 1.52 kB
import { OperationHandler } from "./types"; import { OperationKeys } from "./constants"; import { IRepository } from "../interfaces/IRepository"; import { Model } from "@decaf-ts/decorator-validation"; import { Context } from "../repository"; import { RepositoryFlags } from "../repository/types"; /** * @summary Holds the registered operation handlers * * @class OperationsRegistry * @implements IRegistry<OperationHandler<any>> * * @see OperationHandler * * @category Operations */ export declare class OperationsRegistry { private readonly cache; /** * @summary retrieves an {@link OperationHandler} if it exists * @param {string} target * @param {string} propKey * @param {string} operation * @param accum * @return {OperationHandler | undefined} */ get<M extends Model, R extends IRepository<M, F, C>, V, F extends RepositoryFlags, C extends Context<F>>(target: string | Record<string, any>, propKey: string, operation: string, accum?: OperationHandler<M, R, V, F, C>[]): OperationHandler<M, R, V, F, C>[] | undefined; /** * @summary Registers an {@link OperationHandler} * @param {OperationHandler} handler * @param {string} operation * @param {{}} target * @param {string | symbol} propKey */ register<M extends Model, R extends IRepository<M, F, C>, V, F extends RepositoryFlags, C extends Context<F>>(handler: OperationHandler<M, R, V, F, C>, operation: OperationKeys, target: M, propKey: string | symbol): void; }