import type { Router } from 'express' import type { ServiceContainer } from '../../infra/container.js' import { createApiModule } from '../../infra/createModule.js' import { TODO_MODULE } from '../../../shared/modules/todo/index.js' import { TodoService } from './service.js' import { createTodoRoutes } from './routes.js' export * from './types.js' export * from './parser.js' export * from './service.js' export * from './schemas.js' export * from './routes.js' export const createTodoModule = () => { return createApiModule(TODO_MODULE, { routes: (container: ServiceContainer): Router => { const todoService = container.getSync('todoService') return createTodoRoutes({ todoService }) }, lifecycle: { onLoad: (container: ServiceContainer): void => { container.register('todoService', () => new TodoService()) }, }, }) } export default createTodoModule