UNPKG

sdg-rpc

Version:

pomelo ts rpc

39 lines 4.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.create = void 0; const getProperties = function (o) { if (o.__proto__ === null) return []; return [...Object.getOwnPropertyNames(o), ...getProperties(o.__proto__)]; }; const genObjectProxy = function (serviceName, origin, attach, proxyCb) { const res = {}; for (const fn of getProperties(origin)) { if (fn !== 'constructor') { res[fn] = genFunctionProxy(serviceName, fn, attach, proxyCb); } } return res; }; const genFunctionProxy = function (serviceName, method, attach, proxyCb) { const proxy = (...args) => proxyCb(serviceName, method, args, attach); proxy.route = (routeParam) => (...args) => proxyCb(serviceName, method, [routeParam, ...args], attach); proxy.to = (sid) => (...args) => proxyCb(serviceName, method, [sid, ...args], attach); proxy.broadcast = (...args) => proxyCb(serviceName, method, ['*', ...args], attach); proxy.defaultRoute = (...args) => proxyCb(serviceName, method, [null, ...args], attach); proxy.toServer = (...args) => proxyCb(serviceName, method, args, attach); return proxy; }; const create = function (opts) { if (!opts || !opts.origin) { console.warn('opts and opts.origin should not be empty.'); return {}; } if (!opts.proxyCb || typeof opts.proxyCb !== 'function') { console.warn('opts.proxyCB is not a function, return the origin module directly.'); return opts.origin; } return genObjectProxy(opts.serviceName, opts.origin, opts.attach, opts.proxyCb); }; exports.create = create; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQU07SUFDcEMsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUk7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVwQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsVUFBVSxXQUFtQixFQUFFLE1BQVcsRUFBRSxNQUFhLEVBQUUsT0FBaUI7SUFDakcsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBRWYsS0FBSyxNQUFNLEVBQUUsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsSUFBSSxFQUFFLEtBQUssYUFBYSxFQUFFO1lBQ3hCLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5RDtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLFVBQVUsV0FBbUIsRUFBRSxNQUFjLEVBQUUsTUFBYSxFQUFFLE9BQWlCO0lBQ3RHLE1BQU0sS0FBSyxHQUFRLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVsRixLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsVUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ILEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckcsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNGLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRixLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVoRixPQUFPLEtBQWUsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFTSyxNQUFNLE1BQU0sR0FBRyxVQUFVLElBQWlCO0lBQy9DLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtRQUN2RCxPQUFPLENBQUMsSUFBSSxDQUFDLG9FQUFvRSxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xGLENBQUMsQ0FBQztBQVpXLFFBQUEsTUFBTSxVQVlqQiJ9