UNPKG

networking

Version:

Library for typed, event-based networking between a server and clients.

30 lines (29 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const emitter_1 = require("./emitter"); class RequestEmitter extends emitter_1.Emitter { // public emit(event: string, ...args: Json[]) : Promise<any>; emit(event, ...args) { return new Promise((resolve, reject) => { this.socket.emit('@net/request', event, ...args, (success, result) => { if (success) resolve(result); else reject(new Error('An error occurred on the remote when fulfilling this request')); }); }); } // public on(event: string, callback: (...args: Json[]) => void): void; on(event, callback) { if (!(event in this.callbacks)) this.callbacks[event] = []; this.callbacks[event].push({ once: false, callback }); } // public once(event: string, callback: (...args: Json[]) => void): void; once(event, callback) { if (!(event in this.callbacks)) this.callbacks[event] = []; this.callbacks[event].push({ once: true, callback }); } } exports.RequestEmitter = RequestEmitter;