@decaf-ts/db-decorators
Version:
Agnostic database decorators and repository
37 lines (36 loc) • 1.52 kB
TypeScript
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;
}