import { createSequelizeTransactionManager } from "@common/infrastructure"; import { createAuthenticatedUserRepository, createTabContextRepository } from "../infraestructure"; import { createPassportAuthProvider } from "../infraestructure/passport/passport-auth-provider"; import { IAuthProvider } from "./auth-provider.interface"; import { IAuthService } from "./auth-service.interface"; import { AuthService } from "./auth.service"; export * from "./auth-provider.interface"; export * from "./auth-service.interface"; export const createAuthService = (): IAuthService => { const transactionManager = createSequelizeTransactionManager(); const authenticatedUserRepository = createAuthenticatedUserRepository(); const tabContextRepository = createTabContextRepository(); const authProvider: IAuthProvider = createPassportAuthProvider( authenticatedUserRepository, transactionManager ); return new AuthService( authenticatedUserRepository, tabContextRepository, transactionManager, authProvider ); };