Files
XCDesktop/api/infra/types.ts

32 lines
935 B
TypeScript
Raw Normal View History

2026-03-08 01:34:54 +08:00
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>
}