Initial commit

This commit is contained in:
2026-03-08 01:34:54 +08:00
commit 1f104f73c8
441 changed files with 64911 additions and 0 deletions

48
api/server.ts Normal file
View File

@@ -0,0 +1,48 @@
import app, { moduleManager, container } from './app.js';
import { startWatcher, stopWatcher } from './watcher/watcher.js';
import { logger } from './utils/logger.js';
const PORT = process.env.PORT || 3001;
startWatcher();
const server = app.listen(PORT, () => {
logger.info(`Server ready on port ${PORT}`);
});
async function gracefulShutdown(signal: string) {
logger.info(`${signal} signal received`);
try {
await stopWatcher();
} catch (error) {
logger.error('Error stopping watcher:', error);
}
const activeModules = moduleManager.getActiveModules();
for (const moduleId of activeModules.reverse()) {
try {
await moduleManager.deactivate(moduleId);
logger.info(`Module '${moduleId}' deactivated`);
} catch (error) {
logger.error(`Error deactivating module '${moduleId}':`, error);
}
}
try {
await container.dispose();
logger.info('Service container disposed');
} catch (error) {
logger.error('Error disposing container:', error);
}
server.close(() => {
logger.info('Server closed');
process.exit(0);
});
}
process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
process.on('SIGINT', () => gracefulShutdown('SIGINT'));
export default app;