Initial commit
This commit is contained in:
31
api/infra/types.ts
Normal file
31
api/infra/types.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import type { Router, Application } from 'express'
|
||||
import type { ServiceContainer } from './container.js'
|
||||
|
||||
export interface ModuleMetadata {
|
||||
id: string
|
||||
name: string
|
||||
version: string
|
||||
basePath: string
|
||||
dependencies?: string[]
|
||||
order?: number
|
||||
}
|
||||
|
||||
export interface ModuleLifecycle {
|
||||
onLoad?(container: ServiceContainer): void | Promise<void>
|
||||
onUnload?(container: ServiceContainer): void | Promise<void>
|
||||
onActivate?(container: ServiceContainer): void | Promise<void>
|
||||
onDeactivate?(container: ServiceContainer): void | Promise<void>
|
||||
}
|
||||
|
||||
export interface ApiModule {
|
||||
metadata: ModuleMetadata
|
||||
lifecycle?: ModuleLifecycle
|
||||
createRouter: (container: ServiceContainer) => Router | Promise<Router>
|
||||
}
|
||||
|
||||
export interface LegacyApiModule {
|
||||
name: string
|
||||
basePath: string
|
||||
init?: (app: Application, container: ServiceContainer) => void | Promise<void>
|
||||
createRouter: (container: ServiceContainer) => Router | Promise<Router>
|
||||
}
|
||||
Reference in New Issue
Block a user