qq-official-bot
Version:
133 lines (132 loc) • 4.36 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMiddlewareReceiver = exports.createWebhookReceiver = exports.createWebsocketReceiver = exports.ReceiverConfigBuilder = exports.ReceiverFactory = void 0;
const WebSocketReceiver_1 = require("./WebSocketReceiver");
const WebhookReceiver_1 = require("./WebhookReceiver");
const MiddlewareReceiver_1 = require("./MiddlewareReceiver");
/**
* 接收器工厂类
* 统一管理不同类型接收器的创建和配置
*/
class ReceiverFactory {
/**
* 根据模式和配置创建接收器
*/
static createReceiver(mode, config) {
switch (mode) {
case "websocket" /* ReceiverMode.WEBSOCKET */:
return this.createWebSocketReceiver(config);
case "webhook" /* ReceiverMode.WEBHOOK */:
return this.createWebhookReceiver(config);
case "middleware" /* 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;
_a = ReceiverFactory;
/**
* 注册的接收器实例
*/
ReceiverFactory.receivers = new Map();
/**
* 创建WebSocket接收器
*/
ReceiverFactory.createWebSocketReceiver = (config) => {
const receiver = new WebSocketReceiver_1.WebSocketReceiver(config);
_a.registerReceiver("websocket" /* ReceiverMode.WEBSOCKET */, receiver);
return receiver;
};
/**
* 创建Webhook接收器
*/
ReceiverFactory.createWebhookReceiver = (config) => {
const receiver = new WebhookReceiver_1.WebhookReceiver(config);
_a.registerReceiver("webhook" /* ReceiverMode.WEBHOOK */, receiver);
return receiver;
};
/**
* 创建Middleware接收器
*/
ReceiverFactory.createMiddlewareReceiver = (config) => {
const receiver = new MiddlewareReceiver_1.MiddlewareReceiver(config);
_a.registerReceiver("middleware" /* ReceiverMode.MIDDLEWARE */, receiver);
return receiver;
};
/**
* 接收器配置构建器
*/
class ReceiverConfigBuilder {
}
exports.ReceiverConfigBuilder = ReceiverConfigBuilder;
/**
* 构建WebSocket接收器配置
*/
ReceiverConfigBuilder.websocket = (options = {}) => {
return new WebSocketReceiver_1.WebSocketReceiverConfig(options);
};
/**
* 构建Webhook接收器配置
*/
ReceiverConfigBuilder.webhook = (options) => {
return new WebhookReceiver_1.WebhookReceiverConfig(options);
};
/**
* 构建Middleware接收器配置
*/
ReceiverConfigBuilder.middleware = (options) => {
return new MiddlewareReceiver_1.MiddlewareReceiverConfig(options);
};
// 向后兼容的工厂函数导出
var WebSocketReceiver_2 = require("./WebSocketReceiver");
Object.defineProperty(exports, "createWebsocketReceiver", { enumerable: true, get: function () { return WebSocketReceiver_2.createWebsocketReceiver; } });
var WebhookReceiver_2 = require("./WebhookReceiver");
Object.defineProperty(exports, "createWebhookReceiver", { enumerable: true, get: function () { return WebhookReceiver_2.createWebhookReceiver; } });
var MiddlewareReceiver_2 = require("./MiddlewareReceiver");
Object.defineProperty(exports, "createMiddlewareReceiver", { enumerable: true, get: function () { return MiddlewareReceiver_2.createMiddlewareReceiver; } });