UNPKG

mira-app-core

Version:

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

64 lines 2.34 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MiraHttpServer = void 0; const HttpRouter_1 = require("./HttpRouter"); const http_1 = __importDefault(require("http")); const express_1 = __importDefault(require("express")); const axios_1 = __importDefault(require("axios")); class MiraHttpServer { getRouter() { return this.httpRouter; } constructor(port, backend) { this.port = port; this.backend = backend; this.libraries = backend.libraries; // 创建Express应用 this.app = (0, express_1.default)(); this.port = port; this.httpRouter = new HttpRouter_1.HttpRouter(backend); this.app.use(express_1.default.json()); // 允许所有CORS this.app.use((req, res, next) => { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization"); if (req.method === "OPTIONS") { res.sendStatus(200); } else { next(); } }); this.server = http_1.default.createServer(this.app); this.app.use('/api', this.httpRouter.getRouter()); // 启动HTTP服务器 this.server.listen(this.port, () => { console.log(`HTTP server running on port ${this.port}`); }); } async request(options) { try { const response = await axios_1.default.request({ method: options.method, url: options.url, headers: options.headers, data: options.data }); return response.data; } catch (error) { if (axios_1.default.isAxiosError(error)) { throw new Error(`Request failed: ${error.message}`); } throw error; } } async stop() { this.server.close(); this.httpRouter.close(); } } exports.MiraHttpServer = MiraHttpServer; //# sourceMappingURL=HttpServer.js.map