UNPKG

a2r

Version:
61 lines (60 loc) 2.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable @typescript-eslint/no-explicit-any */ const shortid_1 = __importDefault(require("shortid")); const isClient_1 = __importDefault(require("../../tools/isClient")); const getSocket_1 = __importDefault(require("./getSocket")); const roles_1 = __importDefault(require("./roles")); const methodWrapper = (method, ...args) => { if (!(0, isClient_1.default)()) { const [email, ...userRoles] = args; if (method === 'add') { return roles_1.default.addRolesToUser(email, ...userRoles); } if (method === 'remove') { return roles_1.default.removeRolesFromUser(email, ...userRoles); } if (method === 'check') { return roles_1.default.isUserInRole(email, ...userRoles); } throw new Error(`Unknown method: ${method}`); } return new Promise((resolve, reject) => { (0, getSocket_1.default)() .then((socket) => { if (socket) { if (socket.disconnected) { socket.connect(); } const id = (0, shortid_1.default)(); socket.on(id, (res) => { socket.off(id); if (res.o) { resolve(res.d); } else { const error = new Error(res.e); error.stack = res.s; reject(error); } }); const call = { id, params: args, }; socket.emit(method, call); } else { console.error('No client socket available!'); reject(new Error('No client socket available!')); } }) .catch((ex) => { reject(ex); }); }); }; exports.default = methodWrapper;