UNPKG

mira-app-core

Version:

Core library for Mira TypeScript project - provides base functionality without auto-execution

115 lines 4.25 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.MiraBackend = void 0; const WebSocketServer_1 = require("./WebSocketServer"); const LibraryStorage_1 = require("./LibraryStorage"); const path = __importStar(require("path")); class MiraBackend { constructor(options) { // 确保options有默认值 const config = options || {}; console.log('🎯 MiraBackend constructor received options:', JSON.stringify(config, null, 2)); this.dataPath = config.dataPath || process.env.DATA_PATH || path.join(process.cwd(), 'data'); console.log('📂 Data path resolved to:', this.dataPath); // WebSocket服务器现在是可选的,由外部服务器管理 if (config.wsPort) { console.log('🔌 Initializing WebSocket server on port:', config.wsPort); this.webSocketServer = new WebSocketServer_1.MiraWebsocketServer(config.wsPort, this); } this.libraries = new LibraryStorage_1.LibraryStorage(this); // 只有在明确要求时才自动加载 if (config.autoLoad !== false) { console.log('📚 Auto-loading libraries...'); this.libraries.loadAll().then((loaded) => console.log(`${loaded} Libraries loaded`)); } // 只有在明确要求时才自动启动 if (config.autoStart === true) { console.log('🚀 Auto-starting backend...'); this.start(); } } /** * 手动启动服务器 */ start() { if (this.webSocketServer) { this.webSocketServer.start('/ws'); console.log('📡 WebSocket server started'); } // 处理退出 process.on('SIGINT', async () => { console.log('Shutting down backend...'); await this.stop(); process.exit(); }); } /** * 停止服务器 */ async stop() { if (this.webSocketServer) { await this.webSocketServer.stop(); } console.log('🔄 Backend shutdown completed'); } /** * 获取数据路径 */ getDataPath() { return this.dataPath; } /** * 获取库存储实例 */ getLibraries() { return this.libraries; } /** * 创建并启动服务器的静态方法 (向后兼容) * 注意:HTTP服务器功能已移动到 mira-app-server 包 */ static createAndStart(options) { console.warn('⚠️ MiraBackend.createAndStart is deprecated. Use MiraServer from mira-app-server package for full server functionality.'); return new MiraBackend({ dataPath: options?.dataPath, wsPort: options?.wsPort, autoLoad: true, autoStart: true }); } } exports.MiraBackend = MiraBackend; //# sourceMappingURL=MiraBackend.js.map