UNPKG

@interopio/gateway-server

Version:

## `@glue42/gateway-ent` compatibility

35 lines (28 loc) 1.1 kB
import {Gateway, GatewayClient, GatewayMessage} from '@interopio/gateway-server/gateway-ent'; import {GatewayServer} from '@interopio/gateway-server'; export class ServerDelegate implements Gateway { private server?: GatewayServer.Server; constructor(private readonly config: GatewayServer.ServerConfig) { } async connect(cb: (client: GatewayClient, msg: GatewayMessage) => void): Promise<GatewayClient> { if (!this.server) { throw new Error(`not started`); } const client = await this.server.gateway.connect((c, m) => cb(c as unknown as GatewayClient, m as GatewayMessage)); return client as unknown as GatewayClient; } info(): { endpoint: string } { return this.server?.gateway.info() as { endpoint: string }; } async start(): Promise<Gateway> { if (!this.server) { this.server = await GatewayServer.Factory(this.config); } return this; } async stop(): Promise<Gateway> { await this.server?.close(); delete this.server; return this; } }