UNPKG

gamesocket.io

Version:
48 lines (47 loc) 1.54 kB
'use strict' var __importDefault = (this && this.__importDefault) || function (mod) { return mod && mod.__esModule ? mod : { default: mod } } Object.defineProperty(exports, '__esModule', { value: true }) exports.DataManager = void 0 const uuid_1 = require('uuid') const DataEscort_js_1 = require('./DataEscort/DataEscort.js') const node_string_decoder_1 = require('node:string_decoder') const Logger_js_1 = __importDefault(require('../Logger/Logger.js')) const decoder = new node_string_decoder_1.StringDecoder('utf8') class DataManager { static _escorts = new Map() static spawn(event, data) { const newID = this.createID() let escort = new DataEscort_js_1.DataEscort(newID, event, data) this._escorts.set(newID, escort) if (Logger_js_1.default.flags.trace) Logger_js_1.default.trace(`Spawned escort with id "${newID}"\n\tInner data is: ${JSON.stringify(data)}`) return escort } static get(id) { return this._escorts.get(id) } static drop(entity) { if (typeof entity == 'string') return this._escorts.delete(entity) return this._escorts.delete(entity.id) } static createID() { return (0, uuid_1.v4)() } static decode(buffer) { if (!(buffer instanceof ArrayBuffer)) Logger_js_1.default.fatal('Socket message must be ArrayBuffer') else { let data = decoder.write(Buffer.from(buffer)) try { let jsonData = JSON.parse(data) return jsonData } catch (E) { return data } } } } exports.DataManager = DataManager