import { EntityManager } from 'typeorm'; import { ILaqusLogger } from '../../infrastructure/logging'; import { IUserBase } from '../../core/models'; export interface IRequestScopeLogger { logger: ILaqusLogger; } /** * Objetiva passar utilitários como log, correlation, etc de método a método durante uma requisição * Implica em definir sempre no inicio da request. Ex.: no controller * Mas permite fazer uso e reaproveitamento de providers de qualquer escopo juntos, sem transformar escopos singleton em request * por terem providers request-scoped injetados. */ export interface IRequestScopedBag { correlationId?: string; logger?: IRequestScopeLogger; transaction?: EntityManager; loggedInUser?: IUserBase; }