UNPKG

qq-official-bot

Version:
134 lines (133 loc) 4.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMiddlewareReceiver = exports.createWebhookReceiver = exports.createWebsocketReceiver = exports.ReceiverConfigBuilder = exports.ReceiverFactory = exports.ReceiverMode = void 0; const base_1 = require("./base"); const websocket_1 = require("./websocket"); const webhook_1 = require("./webhook"); const middleware_1 = require("./middleware"); var base_2 = require("./base"); Object.defineProperty(exports, "ReceiverMode", { enumerable: true, get: function () { return base_2.ReceiverMode; } }); /** * 接收器工厂类 * 统一管理不同类型接收器的创建和配置 */ class ReceiverFactory { /** * 创建WebSocket接收器 */ static createWebSocketReceiver(config) { const receiver = new websocket_1.WebSocketReceiver(config); this.registerReceiver(base_1.ReceiverMode.WEBSOCKET, receiver); return receiver; } /** * 创建Webhook接收器 */ static createWebhookReceiver(config) { const receiver = new webhook_1.WebhookReceiver(config); this.registerReceiver(base_1.ReceiverMode.WEBHOOK, receiver); return receiver; } /** * 创建Middleware接收器 */ static createMiddlewareReceiver(config) { const receiver = new middleware_1.MiddlewareReceiver(config); this.registerReceiver(base_1.ReceiverMode.MIDDLEWARE, receiver); return receiver; } /** * 根据模式和配置创建接收器 */ static createReceiver(mode, config) { switch (mode) { case base_1.ReceiverMode.WEBSOCKET: return this.createWebSocketReceiver(config); case base_1.ReceiverMode.WEBHOOK: return this.createWebhookReceiver(config); case base_1.ReceiverMode.MIDDLEWARE: return this.createMiddlewareReceiver(config); default: throw new Error(`Unknown receiver mode: ${mode}`); } } /** * 注册接收器实例 */ static registerReceiver(mode, receiver) { if (this.receivers.has(mode)) { throw new Error(`Receiver mode ${mode} already exists`); } this.receivers.set(mode, receiver); } /** * 获取注册的接收器实例 */ static getReceiver(mode) { return this.receivers.get(mode); } /** * 移除接收器实例 */ static removeReceiver(mode) { return this.receivers.delete(mode); } /** * 获取所有注册的接收器 */ static getAllReceivers() { return new Map(this.receivers); } /** * 清空所有接收器 */ static clearAll() { this.receivers.clear(); } /** * 获取接收器健康状态 */ static getHealthStatus() { const status = {}; for (const [mode, receiver] of this.receivers) { status[mode] = receiver.healthCheck(); } return status; } } exports.ReceiverFactory = ReceiverFactory; /** * 注册的接收器实例 */ ReceiverFactory.receivers = new Map(); /** * 接收器配置构建器 */ class ReceiverConfigBuilder { /** * 构建WebSocket接收器配置 */ static websocket(options = {}) { return new websocket_1.WebSocketReceiverConfig(options); } /** * 构建Webhook接收器配置 */ static webhook(options) { return new webhook_1.WebhookReceiverConfig(options); } /** * 构建Middleware接收器配置 */ static middleware(options) { return new middleware_1.MiddlewareReceiverConfig(options); } } exports.ReceiverConfigBuilder = ReceiverConfigBuilder; // 向后兼容的工厂函数导出 var websocket_2 = require("./websocket"); Object.defineProperty(exports, "createWebsocketReceiver", { enumerable: true, get: function () { return websocket_2.createWebsocketReceiver; } }); var webhook_2 = require("./webhook"); Object.defineProperty(exports, "createWebhookReceiver", { enumerable: true, get: function () { return webhook_2.createWebhookReceiver; } }); var middleware_2 = require("./middleware"); Object.defineProperty(exports, "createMiddlewareReceiver", { enumerable: true, get: function () { return middleware_2.createMiddlewareReceiver; } });