UNPKG

@pashoo2/clean-architecture-boilerplate

Version:
13 lines (12 loc) 1.03 kB
import { Constructor } from '../../../interfaces/classes'; import { IDomainEntityEvent, TDomainEventPayload } from '../../../events/interfaces/domainEvents'; import { TIdentityValueObject } from '../../../valueObjects/interfaces'; import { TBaseDomainEntityEventParameters } from '../../../events/classes/baseDomainEntityEvent/baseDomainEntityEvent'; import { EDomainEntityEventType } from '../../../events/constants/eventType'; export interface IFabricDomainEntityEventParameters<EntityType extends string, EventName extends string> { entityType: EntityType; eventName: EventName; } export declare function createDomainEntityEventConstructor<EventName extends string, EntityType extends string, EntityId extends TIdentityValueObject, P extends TDomainEventPayload = undefined>({ eventName, entityType, }: IFabricDomainEntityEventParameters<EntityType, EventName>): Constructor<IDomainEntityEvent<EntityId, EntityType, EventName, P, EDomainEntityEventType.ENTITY_EVENT>, [ TBaseDomainEntityEventParameters<EntityId, P> ]>;