@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
39 lines (38 loc) • 1.28 kB
TypeScript
import type { IApiBaseEntity } from '../../../api-base-entity.interface';
import type { EntityManager, Repository } from "typeorm";
/**
* Data container for function subscriber execution context.
* Contains transaction manager and repository references.
* This interface provides typed access to the DATA field in function execution contexts.
* @example
* ```typescript
* async onBeforeCreate(
* context: IApiSubscriberFunctionExecutionContext<
* User,
* TApiFunctionCreateProperties<User>,
* IApiSubscriberFunctionExecutionContextData<User>
* >
* ): Promise<TApiFunctionCreateProperties<User>> {
* const manager = context.DATA.eventManager;
* const repository = context.DATA.repository;
*
* if (manager) {
* await manager.save(RelatedEntity, { ... });
* }
*
* return context.result;
* }
* ```
*/
export interface IApiSubscriberFunctionExecutionContextData<E extends IApiBaseEntity> {
/**
* Entity manager for transactional operations.
* Available when service methods are called with a transaction manager.
*/
eventManager?: EntityManager;
/**
* TypeORM repository instance for the entity.
* Provides access to database operations for the entity type.
*/
repository: Repository<E>;
}