29 lines
922 B
TypeScript
29 lines
922 B
TypeScript
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>('todoService')
|
|
return createTodoRoutes({ todoService })
|
|
},
|
|
lifecycle: {
|
|
onLoad: (container: ServiceContainer): void => {
|
|
container.register('todoService', () => new TodoService())
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
export default createTodoModule
|