UNPKG

gamesocket.io

Version:
73 lines (72 loc) 1.99 kB
'use strict' var __importDefault = (this && this.__importDefault) || function (mod) { return mod && mod.__esModule ? mod : { default: mod } } Object.defineProperty(exports, '__esModule', { value: true }) exports.EventEscort = exports.EventManager = void 0 const Logger_js_1 = __importDefault(require('../Logger/Logger.js')) class EventManager { namespace _escorts = new Map() _events = new Array() constructor(namespace) { this.namespace = namespace } spawn(event, callback) { if (Logger_js_1.default.flags.debug) Logger_js_1.default.debug( `${this.namespace}(EventManager): spawning handler escort "${event}". \nCallback is ${callback}`, ) let escort = new EventEscort('_', event, callback) this._escorts.set(event, escort) this._events.push(event) return escort } get(entity) { if (typeof entity == 'string') return this._escorts.get(entity) else return this._escorts.get(entity.event) } drop(entity) { if (typeof entity == 'string') return this._escorts.delete(entity) else return this._escorts.delete(entity.event) } get pool() { return this._escorts } get events() { return this._events } } exports.EventManager = EventManager class EventEscort { _id _event _handler constructor(_id, _event, callback) { this._id = _id this._event = _event if (!callback) this._handler = function (escort) { Logger_js_1.default.fatal(`Unsetted function on event '${this.name}'`) }.bind({ id: this._id, name: this._event }) else this._handler = callback.bind({ id: this._id, name: this._event }) } execute(escort) { this._handler.call({ id: this._id, name: this._event }, escort) } get used() { return this._handler } set used(callback) { this._handler = callback.bind({ id: this._id, name: this._event }) } get id() { return this._id } get event() { return this._event } } exports.EventEscort = EventEscort