import BaseAction from '@/onebot/action/BaseAction'; import { OB11BaseEvent } from '@/onebot/event/OB11BaseEvent'; export interface IOB11NetworkAdapter { registerAction, P, R>(action: T): void; onEvent(event: T): void; open(): void | Promise; close(): void | Promise; } export class OB11NetworkManager { adapters: IOB11NetworkAdapter[] = []; async getAllAdapters() { return this.adapters; } async registerAdapter(adapter: IOB11NetworkAdapter) { return this.adapters.push(adapter); } async closeSomeAdapters(adapters: IOB11NetworkAdapter[]) { this.adapters = this.adapters.filter(adapter => !adapters.includes(adapter)); await Promise.all(adapters.map(adapter => adapter.close())); } async closeAllAdapters() { this.adapters = []; await Promise.all(this.adapters.map(adapter => adapter.close())); } } export * from './active-http'; export * from './active-websocket'; export * from './passive-http'; export * from './passive-websocket';