@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
30 lines (29 loc) • 1.38 kB
TypeScript
import type { EApiRouteType } from '../../../../enum/decorator/api/route-type.enum';
import type { IApiBaseEntity } from '../../../api-base-entity.interface';
import type { IApiSubscriberExecutionContext } from './execution-context.interface';
/**
* Execution context for route subscriber callbacks.
* Extends base execution context with route type information.
* @template E - Entity type extending IApiBaseEntity
* @template Result - Type of the result field (mutable data payload)
* @template Input - Type of the DATA field (immutable context data). Use IApiSubscriberRouteExecutionContextData<E> or IApiSubscriberRouteExecutionContextDataExtended<E> for typed access.
* @example
* ```typescript
* import type { IApiSubscriberRouteExecutionContextData } from '@elsikora/nestjs-crud-automator';
*
* async onBeforeCreate(
* context: IApiSubscriberRouteExecutionContext<
* User,
* { body: DeepPartial<User> },
* IApiSubscriberRouteExecutionContextData<User>
* >
* ): Promise<{ body: DeepPartial<User> }> {
* const entityMetadata = context.DATA.entityMetadata;
* const method = context.DATA.method;
* // ...
* }
* ```
*/
export interface IApiSubscriberRouteExecutionContext<E extends IApiBaseEntity, Result = unknown, Input = unknown> extends IApiSubscriberExecutionContext<E, Result, Input> {
readonly ROUTE_TYPE: EApiRouteType;
}