import type { Router } from 'express' import type { ServiceContainer } from '../../infra/container.js' import { createApiModule } from '../../infra/createModule.js' import { REMOTE_MODULE } from '../../../shared/modules/remote/index.js' import { RemoteService } from './service.js' import { createRemoteRoutes } from './routes.js' export * from './service.js' export * from './routes.js' export const createRemoteModule = () => { return createApiModule(REMOTE_MODULE, { routes: (container: ServiceContainer): Router => { const remoteService = container.getSync('remoteService') return createRemoteRoutes({ remoteService }) }, lifecycle: { onLoad: (container: ServiceContainer): void => { container.register('remoteService', () => new RemoteService()) }, }, }) } export default createRemoteModule