@decaf-ts/db-decorators
Version:
Agnostic database decorators and repository
24 lines (23 loc) • 1.31 kB
TypeScript
import { OperationKeys } from "../operations";
import { Context } from "../repository";
import { RepositoryFlags } from "../repository/types";
/**
* @description Interface for context-aware operations
* @summary Provides context management for database operations
* @template F - Type extending RepositoryFlags, defaults to RepositoryFlags
* @template C - Type extending Context<F>, defaults to Context<F>
* @interface Contextual
* @memberOf module:db-decorators
*/
export interface Contextual<F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> {
/**
* @description Creates a context for a specific operation
* @summary Generates an operation-specific context with custom flags
* @param {(OperationKeys.CREATE|OperationKeys.READ|OperationKeys.UPDATE|OperationKeys.DELETE)} operation - The operation type
* @template F - Type extending RepositoryFlags, defaults to RepositoryFlags
* @param {Partial<F>} overrides - Custom flag overrides for this context
* @param {...any[]} args - Additional arguments
* @return {Promise<C>} Promise resolving to the created context
*/
context(operation: OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE, overrides: Partial<F>, ...args: any[]): Promise<C>;
}