@oox/client 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser.js +7 -15
- package/browser.js.map +1 -1
- package/keepalive-connection-sample.js +1 -15
- package/keepalive-connection.js +7 -0
- package/package.json +1 -1
- package/types/app.d.ts +8 -1
- package/types/keepalive-connection-sample.d.ts +1 -1
package/browser.js
CHANGED
|
@@ -764,6 +764,12 @@ var oox = (function (exports) {
|
|
|
764
764
|
this.data = Object.assign(data, {
|
|
765
765
|
adapter: adapter.name,
|
|
766
766
|
});
|
|
767
|
+
this.on('connect', () => {
|
|
768
|
+
emit('keepalive:connect', this);
|
|
769
|
+
});
|
|
770
|
+
this.on('disconnect', () => {
|
|
771
|
+
emit('keepalive:disconnect', this);
|
|
772
|
+
});
|
|
767
773
|
}
|
|
768
774
|
/**
|
|
769
775
|
* 设置连接是否可用,并自动触发enabled或disabled事件
|
|
@@ -906,18 +912,6 @@ var oox = (function (exports) {
|
|
|
906
912
|
}
|
|
907
913
|
|
|
908
914
|
class SampleKeepAliveConnectionAdapter {
|
|
909
|
-
OOXEvent = {
|
|
910
|
-
CONNECT: 'connect',
|
|
911
|
-
DISCONNECT: 'disconnect',
|
|
912
|
-
ERROR: 'error',
|
|
913
|
-
CALL: 'call',
|
|
914
|
-
READY: 'oox:ready',
|
|
915
|
-
ENABLED: 'oox:enabled',
|
|
916
|
-
DISABLED: 'oox:disabled',
|
|
917
|
-
REGISTRY_SYNC_CONNECTIONS: 'oox:registry:sync_connections',
|
|
918
|
-
REGISTRY_SUBSCRIBE: 'oox:registry:subscribe',
|
|
919
|
-
REGISTRY_NOTIFY: 'oox:registry:notify',
|
|
920
|
-
};
|
|
921
915
|
/**
|
|
922
916
|
* 通知连接列表
|
|
923
917
|
*/
|
|
@@ -959,6 +953,7 @@ var oox = (function (exports) {
|
|
|
959
953
|
const connection = this.newConnection(identify);
|
|
960
954
|
addKeepAliveConnection(connection);
|
|
961
955
|
this.bindConnectionEvents(connection);
|
|
956
|
+
this.bindCall(connection);
|
|
962
957
|
try {
|
|
963
958
|
await new Promise((resolve, reject) => {
|
|
964
959
|
connection.once('enabled', resolve);
|
|
@@ -976,7 +971,6 @@ var oox = (function (exports) {
|
|
|
976
971
|
removeKeepAliveConnection(connection);
|
|
977
972
|
throw error;
|
|
978
973
|
}
|
|
979
|
-
this.bindCall(connection);
|
|
980
974
|
return connection;
|
|
981
975
|
}
|
|
982
976
|
async close(connection) {
|
|
@@ -1028,8 +1022,6 @@ var oox = (function (exports) {
|
|
|
1028
1022
|
* @param connection
|
|
1029
1023
|
*/
|
|
1030
1024
|
bindCall(connection) {
|
|
1031
|
-
if (!connection.enabled)
|
|
1032
|
-
throw new Error('Connection not enabled');
|
|
1033
1025
|
const { id, name, ip } = connection.data;
|
|
1034
1026
|
connection.nativeConnection.on(this.OOXEvent.CALL, async (action, params, context, callback) => {
|
|
1035
1027
|
const validContext = new Context({
|
package/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sources":["../../../node_modules/events/events.js","utils.js","tracer.js","app.js","config.js","context.js","keepalive-connection.js","keepalive-connection-sample.js","logger.js","proxy.js"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","export function getAllCallablePropertyNames(obj) {\n if (!obj)\n return [];\n let props = [], tmpProps = [], index = 0, size = 0, tmpProp = '';\n const bans = [\"constructor\", \"__defineGetter__\", \"__defineSetter__\",\n \"hasOwnProperty\", \"__lookupGetter__\", \"__lookupSetter__\",\n \"isPrototypeOf\", \"propertyIsEnumerable\", \"toString\",\n \"valueOf\", \"__proto__\", \"toLocaleString\"];\n do {\n tmpProps = Object.getOwnPropertyNames(obj);\n index = -1, size = tmpProps.length;\n while (++index < size) {\n tmpProp = tmpProps[index];\n if (!props.includes(tmpProp) && !bans.includes(tmpProp)) {\n props.push(tmpProp);\n }\n }\n } while (obj = Object.getPrototypeOf(obj));\n return props;\n}\nexport function genKVMethods(methods, kvMethods = new Map(), sourceKVMethods = new Map(), nameStack = []) {\n let keys = getAllCallablePropertyNames(methods);\n for (const key of keys) {\n /**\n * @type {Function}\n */\n let val = methods[key];\n if ('function' === typeof val) {\n const action = nameStack.concat(key).join('.');\n // 原函数绑定\n sourceKVMethods.set(action, val);\n // 壳函数绑定\n kvMethods.set(action, val.bind(methods));\n }\n else {\n genKVMethods(val, kvMethods, sourceKVMethods, nameStack.concat(key));\n }\n }\n return { kvMethods, sourceKVMethods };\n}\n","export const contexts = {};\nexport function parseTraceIdByStack(stack) {\n const [traceRow] = stack.split('/').filter(row => row.includes('OOX_TRACER.<computed>'));\n if (traceRow) {\n return traceRow.match(/(?<=as\\s).*?(?=\\s|\\])/g)?.[0] || null;\n }\n else {\n return null;\n }\n}\nexport function enterWith(context) {\n const traceId = context.traceId || '';\n contexts[traceId] = context;\n}\nexport function exitWith(context) {\n const traceId = context.traceId || '';\n delete contexts[traceId];\n}\nexport function getContext() {\n const traceId = parseTraceIdByStack(new Error().stack || '') || '';\n return contexts[traceId] || null;\n}\n","import { EventEmitter } from 'events';\nimport { genKVMethods } from './utils.js';\nimport * as tracer from './tracer.js';\nexport const eventHub = new EventEmitter();\n/**\n * sourceMethods => methods\n */\nlet sourceMethods = {};\n/**\n * the kvMethods is all actions refs [has bind this]\n */\nexport const kvMethods = new Map();\nexport const sourceKVMethods = new Map();\nexport function setMethods(methods) {\n sourceMethods = methods;\n kvMethods.clear();\n sourceKVMethods.clear();\n genKVMethods(methods, kvMethods, sourceKVMethods);\n}\nexport function getMethods() {\n return sourceMethods;\n}\nexport function on(event, listener) {\n eventHub.on(event, listener);\n}\nexport function once(event, listener) {\n eventHub.once(event, listener);\n}\nexport function off(event, listener) {\n eventHub.off(event, listener);\n}\nexport function emit(event, ...args) {\n return eventHub.emit(event, ...args);\n}\n/**\n * Call an Function on RPC server\n * @param action\n * @param params\n * @param context\n * @returns\n */\nexport async function call(action, params = [], context) {\n if (!Array.isArray(params))\n params = [params];\n const { traceId } = context;\n emit('call:start', Date.now(), action, params, context);\n const returns = {\n traceId,\n success: true\n };\n const OOX_TRACER = {};\n OOX_TRACER[traceId] = async (action, [...params], context) => {\n return await execute(action, [...params], context);\n };\n tracer.enterWith(context);\n try {\n const result = await OOX_TRACER[traceId](action, [...params], context);\n returns.body = result;\n emit('call:success', Date.now(), action, params, context, result);\n }\n catch (error) {\n returns.success = false;\n returns.error = {\n message: error.message,\n stack: error.stack\n };\n emit('call:fail', Date.now(), action, params, context, error);\n }\n finally {\n tracer.exitWith(context);\n return returns;\n }\n}\nexport async function execute(action, params, context) {\n const __proxy = '__proxy', _proxy = '_proxy';\n if (__proxy === action || _proxy === action || action.endsWith(_proxy))\n throw new Error('Invalid Action[' + action + ']');\n const methods = kvMethods;\n // 目标函数\n const target = methods.get(action);\n // 目标代理函数\n const targetProxy = methods.get(action + _proxy);\n // 即不存在目标也不存在目标代理时, 报错函数不存在\n if (!target && !targetProxy)\n throw new Error('Unknown Action [' + action + ']');\n // ============================ PROXY BEGIN ============================\n // 最顶层代理\n const topProxy = methods.get(__proxy);\n if (topProxy) {\n const proxyReturns = await topProxy(action, params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n // 'x.y.z' => [ 'x', 'y', 'z' ]\n const nameStack = action.split('.'), size = nameStack.length - 1;\n let index = -1, proxyPrefix = '';\n // 根代理遍历\n while (++index < size) {\n // x.\n // x.y.\n proxyPrefix += nameStack[index] + '.';\n // x.__proxy\n // x.y.__proxy\n const rootProxy = methods.get(proxyPrefix + __proxy);\n // x.__proxy ( 'y.z', ... )\n // x.y.__proxy ( 'z', ... )\n if (rootProxy) {\n const proxyReturns = await rootProxy(nameStack.slice(index).join('.'), params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n }\n // 同级代理\n const layerProxy = methods.get(proxyPrefix + _proxy);\n if (layerProxy) {\n const proxyReturns = await layerProxy(nameStack[index], params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n if (targetProxy) {\n const proxyReturns = await targetProxy(params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n // ============================= PROXY END =============================\n // make sure target action execute after all proxies\n if (target) {\n return await target(...params);\n }\n}\n","export class Config {\n id = '';\n name = 'DEFAULT_NAME';\n}\nexport const config = new Config();\n","import * as tracer from './tracer.js';\nexport class AppContext {\n // 请求溯源ID\n traceId = '';\n}\nexport class Context extends AppContext {\n // 请求溯源IP\n sourceIP = '';\n // 请求者IP\n ip = '';\n // 请求者名称\n caller = 'anonymous';\n // 请求者ID (长连接专用)\n callerId = '';\n // 请求者连接把柄\n connection;\n constructor(context) {\n super();\n if (context) {\n if ('toJSON' in context && typeof context.toJSON !== 'function') {\n throw new Error('Context.toJSON must be a function');\n }\n Object.assign(this, context);\n }\n }\n toJSON() {\n const context = Object.assign({}, this);\n delete context.connection;\n return context;\n }\n}\nlet genTraceIdFunction = () => crypto.randomUUID();\nexport function setGenTraceIdFunction(fn) {\n genTraceIdFunction = fn;\n}\n/**\n * 生成随机不重复id\n */\nexport function genTraceId() {\n return genTraceIdFunction();\n}\nexport function genContext(context) {\n const newContext = new Context(context);\n if (!newContext.traceId)\n newContext.traceId = genTraceId();\n if (!newContext.sourceIP)\n newContext.sourceIP = newContext.ip;\n return newContext;\n}\nexport function getContext() {\n return tracer.getContext() || genContext();\n}\n","import EventEmitter from 'events';\nimport { getContext } from './context.js';\nexport class KeepAliveConnectionError extends Error {\n connection;\n constructor(message, connection) {\n super(message);\n this.connection = connection;\n }\n}\nexport class KeepAliveConnection extends EventEmitter {\n // 是否为注册服务连接\n isRegistry = false;\n // 连接是否可用\n #enabled = false;\n data;\n nativeConnection;\n adapter;\n constructor(adapter, nativeConnection, data) {\n super();\n this.adapter = adapter;\n this.nativeConnection = nativeConnection;\n this.data = Object.assign(data, {\n adapter: adapter.name,\n });\n }\n /**\n * 设置连接是否可用,并自动触发enabled或disabled事件\n * @param enabled 是否可用\n */\n set enabled(enabled) {\n if (enabled !== this.#enabled) {\n this.#enabled = enabled;\n this.emit(enabled ? 'enabled' : 'disabled');\n if (enabled) {\n enabledKeepAliveConnections.add(this);\n }\n else {\n enabledKeepAliveConnections.remove(this);\n }\n }\n }\n get enabled() {\n return this.#enabled;\n }\n /**\n * enable & mount connection\n * @param params\n * @returns\n */\n ready(params) {\n // 连接已就绪,不允许重复就绪\n if (this.enabled)\n return;\n const { id, name } = params;\n keepAliveConnections.remove(this);\n // 更新连接数据\n this.data.id = id;\n this.data.name = name;\n keepAliveConnections.add(this);\n this.enabled = true;\n }\n disconnect() {\n this.enabled = false;\n this.nativeConnection.disconnect();\n }\n}\nexport class KeepAliveConnectionStore {\n #map = new Map();\n entries() {\n return this.#map.entries();\n }\n getConnectionsOfService(name) {\n return this.#map.get(name) || new Map();\n }\n has(name, id) {\n const connections = this.#map.get(name);\n if (!connections)\n return false;\n return connections.has(id);\n }\n get(name, id) {\n const connections = this.#map.get(name);\n if (!connections)\n return null;\n return connections.get(id) || null;\n }\n add(connection) {\n const { name, id } = connection.data;\n const connections = this.#map.get(name);\n if (connections) {\n connections.set(id, connection);\n }\n else {\n this.#map.set(name, new Map([[id, connection]]));\n }\n }\n remove(name, id) {\n if (name instanceof KeepAliveConnection) {\n id = name.data.id;\n name = name.data.name;\n }\n const connections = this.#map.get(name);\n if (connections && id !== undefined) {\n connections.delete(id);\n }\n }\n}\nexport const keepAliveConnectionAdapters = new Map();\nexport const keepAliveConnections = new KeepAliveConnectionStore();\nexport const enabledKeepAliveConnections = new KeepAliveConnectionStore();\nexport function addKeepAliveConnection(connection) {\n if (keepAliveConnections.has(connection.data.name, connection.data.id)) {\n connection.disconnect();\n throw new KeepAliveConnectionError('Connection already exists', connection);\n }\n keepAliveConnections.add(connection);\n}\nexport function removeKeepAliveConnection(arg1, arg2) {\n if (typeof arg1 === 'string') {\n const connection = keepAliveConnections.get(arg1, arg2);\n if (connection)\n connection.disconnect();\n keepAliveConnections.remove(arg1, arg2);\n enabledKeepAliveConnections.remove(arg1, arg2);\n }\n else {\n arg1.disconnect();\n keepAliveConnections.remove(arg1);\n enabledKeepAliveConnections.remove(arg1);\n }\n}\n/**\n * random connection select for default load balance policy\n * @param name service name\n * @returns selected connection\n */\nlet loadBalancePolicy = (name) => {\n const connections = enabledKeepAliveConnections.getConnectionsOfService(name);\n if (!connections || !connections.size)\n return null;\n const arrayConnections = Array.from(connections.values());\n const index = Math.floor(Math.random() * arrayConnections.length);\n return arrayConnections[index];\n};\nexport function setLoadBalancePolicy(policy) {\n loadBalancePolicy = policy;\n}\nexport async function rpc(arg1, action, params, context) {\n if (!context || !context.traceId) {\n context = getContext();\n }\n let connection = null;\n if (arg1 instanceof KeepAliveConnection) {\n connection = arg1;\n }\n else if ('string' === typeof arg1) {\n connection = loadBalancePolicy(arg1);\n }\n else\n throw new Error(`Unknown rpc arg1<${arg1}>`);\n if (!connection)\n throw new Error(`Connection<${arg1}> not found`);\n return connection.adapter.rpc(connection, action, params, context);\n}\n","import { call, } from './app.js';\nimport { Context, getContext } from './context.js';\nimport { KeepAliveConnectionError, removeKeepAliveConnection, addKeepAliveConnection, } from './keepalive-connection.js';\nexport class SampleKeepAliveConnectionAdapter {\n OOXEvent = {\n CONNECT: 'connect',\n DISCONNECT: 'disconnect',\n ERROR: 'error',\n CALL: 'call',\n READY: 'oox:ready',\n ENABLED: 'oox:enabled',\n DISABLED: 'oox:disabled',\n REGISTRY_SYNC_CONNECTIONS: 'oox:registry:sync_connections',\n REGISTRY_SUBSCRIBE: 'oox:registry:subscribe',\n REGISTRY_NOTIFY: 'oox:registry:notify',\n };\n /**\n * 通知连接列表\n */\n ['registry:notify'](connection, datas) {\n connection.nativeConnection.emit(this.OOXEvent.REGISTRY_NOTIFY, datas);\n }\n /**\n * 订阅连接列表\n */\n ['registry:subscribe'](connection, query) {\n connection.nativeConnection.emit(this.OOXEvent.REGISTRY_SUBSCRIBE, query);\n }\n bindConnectionEvents(connection) {\n const socket = connection.nativeConnection;\n socket.on(this.OOXEvent.READY, (params) => {\n connection.ready(params);\n });\n socket.on(this.OOXEvent.ENABLED, () => {\n connection.enabled = true;\n });\n socket.on(this.OOXEvent.DISABLED, () => {\n connection.enabled = false;\n });\n socket.on(this.OOXEvent.DISCONNECT, () => {\n socket.removeAllListeners();\n removeKeepAliveConnection(connection);\n connection.emit('disconnect');\n });\n socket.on(this.OOXEvent.CONNECT, () => {\n connection.emit('connect');\n });\n socket.on(this.OOXEvent.ERROR, (error) => {\n socket.removeAllListeners();\n removeKeepAliveConnection(connection);\n connection.emit('error', new KeepAliveConnectionError(error.message, connection));\n });\n }\n async open(identify) {\n const connection = this.newConnection(identify);\n addKeepAliveConnection(connection);\n this.bindConnectionEvents(connection);\n try {\n await new Promise((resolve, reject) => {\n connection.once('enabled', resolve);\n connection.once('error', reject);\n connection.once('disconnect', () => {\n reject(new Error('disconnect'));\n });\n if (connection.nativeConnection.connect) {\n connection.nativeConnection.connect();\n }\n });\n }\n catch (error) {\n connection.removeAllListeners();\n removeKeepAliveConnection(connection);\n throw error;\n }\n this.bindCall(connection);\n return connection;\n }\n async close(connection) {\n connection.nativeConnection.disconnect();\n return Promise.resolve();\n }\n /**\n * 发送事件\n * @param socket\n * @param event\n * @param params\n */\n async emit(socket, event, params) {\n if (!socket.connected)\n throw new Error('Socket not connected');\n return await new Promise((resolve, reject) => {\n const onError = (reason) => {\n const message = 'string' === typeof reason ? reason : reason instanceof Error ? reason.message : 'connect error';\n reject(new Error(message));\n };\n // RPC 执行时中断连接\n socket.once(this.OOXEvent.DISCONNECT, onError);\n socket.emit(event, ...params, (returns) => {\n socket.off(this.OOXEvent.DISCONNECT, onError);\n resolve(returns);\n });\n });\n }\n /**\n * RPC\n */\n async rpc(connection, action, params, context) {\n if (!context)\n context = getContext();\n const miniContext = {\n sourceIP: context.sourceIP,\n traceId: context.traceId,\n };\n const { success, error, body } = await this.emit(connection.nativeConnection, this.OOXEvent.CALL, [action, params, miniContext]);\n if (success)\n return body;\n else if (error)\n throw new Error(error.message);\n else\n throw new Error('[RPC] Unknown Error');\n }\n /**\n * 绑定 call 事件\n * @param connection\n */\n bindCall(connection) {\n if (!connection.enabled)\n throw new Error('Connection not enabled');\n const { id, name, ip } = connection.data;\n connection.nativeConnection.on(this.OOXEvent.CALL, async (action, params, context, callback) => {\n const validContext = new Context({\n ...context,\n ip: ip,\n caller: name,\n callerId: id,\n connection\n });\n this.call(action, params, validContext, callback);\n });\n }\n async call(action, params, context, callback) {\n const returns = await call(action, params, context);\n 'function' === typeof callback && callback(returns);\n return returns;\n }\n}\n","import { emit } from './app.js';\nimport * as tracer from './tracer.js';\nexport function info(...content) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'info', content);\n}\nexport function warn(...content) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'warn', content);\n}\nexport function error(...content) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'error', content);\n}\nexport function tag(name) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'tag', name);\n}\nexport function trace(name) {\n const context = tracer.getContext() || null;\n const trace = { stack: '' };\n Error.captureStackTrace(trace);\n const stack = trace.stack\n .replace(/.*\\n.*logger.js.*\\n/, name || 'Untitle\\n');\n emit('log', Date.now(), context, 'trace', stack);\n}\n","import { rpc } from './keepalive-connection.js';\n/**\n * 为了不重复创建Proxy,这个对象用于保存各个RPC服务的各个属性Proxy\n */\nconst rpcServiceAttrMap = Object.create(null);\nexport function proxy(name, action = '') {\n return new Proxy(function () { }, {\n get(target, key) {\n if (typeof key !== 'string')\n return undefined;\n const attrKey = action ? action + '.' + key : key;\n const attrKeyPath = name + '.' + attrKey;\n if (attrKeyPath in rpcServiceAttrMap) {\n // 不重复创建Proxy\n return rpcServiceAttrMap[attrKeyPath];\n }\n const attrProxy = proxy(name, attrKey);\n rpcServiceAttrMap[attrKeyPath] = attrProxy;\n return attrProxy;\n },\n has(target, key) {\n if (typeof key !== 'string')\n return false;\n return true;\n },\n apply(target, thisArg, args) {\n return rpc(name, action, args);\n }\n });\n}\n"],"names":["eventsModule","getContext","EventEmitter","tracer.enterWith","tracer.exitWith","tracer.getContext"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"browser.js","sources":["../../../node_modules/events/events.js","utils.js","tracer.js","app.js","config.js","context.js","keepalive-connection.js","keepalive-connection-sample.js","logger.js","proxy.js"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","export function getAllCallablePropertyNames(obj) {\n if (!obj)\n return [];\n let props = [], tmpProps = [], index = 0, size = 0, tmpProp = '';\n const bans = [\"constructor\", \"__defineGetter__\", \"__defineSetter__\",\n \"hasOwnProperty\", \"__lookupGetter__\", \"__lookupSetter__\",\n \"isPrototypeOf\", \"propertyIsEnumerable\", \"toString\",\n \"valueOf\", \"__proto__\", \"toLocaleString\"];\n do {\n tmpProps = Object.getOwnPropertyNames(obj);\n index = -1, size = tmpProps.length;\n while (++index < size) {\n tmpProp = tmpProps[index];\n if (!props.includes(tmpProp) && !bans.includes(tmpProp)) {\n props.push(tmpProp);\n }\n }\n } while (obj = Object.getPrototypeOf(obj));\n return props;\n}\nexport function genKVMethods(methods, kvMethods = new Map(), sourceKVMethods = new Map(), nameStack = []) {\n let keys = getAllCallablePropertyNames(methods);\n for (const key of keys) {\n /**\n * @type {Function}\n */\n let val = methods[key];\n if ('function' === typeof val) {\n const action = nameStack.concat(key).join('.');\n // 原函数绑定\n sourceKVMethods.set(action, val);\n // 壳函数绑定\n kvMethods.set(action, val.bind(methods));\n }\n else {\n genKVMethods(val, kvMethods, sourceKVMethods, nameStack.concat(key));\n }\n }\n return { kvMethods, sourceKVMethods };\n}\n","export const contexts = {};\nexport function parseTraceIdByStack(stack) {\n const [traceRow] = stack.split('/').filter(row => row.includes('OOX_TRACER.<computed>'));\n if (traceRow) {\n return traceRow.match(/(?<=as\\s).*?(?=\\s|\\])/g)?.[0] || null;\n }\n else {\n return null;\n }\n}\nexport function enterWith(context) {\n const traceId = context.traceId || '';\n contexts[traceId] = context;\n}\nexport function exitWith(context) {\n const traceId = context.traceId || '';\n delete contexts[traceId];\n}\nexport function getContext() {\n const traceId = parseTraceIdByStack(new Error().stack || '') || '';\n return contexts[traceId] || null;\n}\n","import { EventEmitter } from 'events';\nimport { genKVMethods } from './utils.js';\nimport * as tracer from './tracer.js';\nexport const eventHub = new EventEmitter();\n/**\n * sourceMethods => methods\n */\nlet sourceMethods = {};\n/**\n * the kvMethods is all actions refs [has bind this]\n */\nexport const kvMethods = new Map();\nexport const sourceKVMethods = new Map();\nexport function setMethods(methods) {\n sourceMethods = methods;\n kvMethods.clear();\n sourceKVMethods.clear();\n genKVMethods(methods, kvMethods, sourceKVMethods);\n}\nexport function getMethods() {\n return sourceMethods;\n}\nexport function on(event, listener) {\n eventHub.on(event, listener);\n}\nexport function once(event, listener) {\n eventHub.once(event, listener);\n}\nexport function off(event, listener) {\n eventHub.off(event, listener);\n}\nexport function emit(event, ...args) {\n return eventHub.emit(event, ...args);\n}\n/**\n * Call an Function on RPC server\n * @param action\n * @param params\n * @param context\n * @returns\n */\nexport async function call(action, params = [], context) {\n if (!Array.isArray(params))\n params = [params];\n const { traceId } = context;\n emit('call:start', Date.now(), action, params, context);\n const returns = {\n traceId,\n success: true\n };\n const OOX_TRACER = {};\n OOX_TRACER[traceId] = async (action, [...params], context) => {\n return await execute(action, [...params], context);\n };\n tracer.enterWith(context);\n try {\n const result = await OOX_TRACER[traceId](action, [...params], context);\n returns.body = result;\n emit('call:success', Date.now(), action, params, context, result);\n }\n catch (error) {\n returns.success = false;\n returns.error = {\n message: error.message,\n stack: error.stack\n };\n emit('call:fail', Date.now(), action, params, context, error);\n }\n finally {\n tracer.exitWith(context);\n return returns;\n }\n}\nexport async function execute(action, params, context) {\n const __proxy = '__proxy', _proxy = '_proxy';\n if (__proxy === action || _proxy === action || action.endsWith(_proxy))\n throw new Error('Invalid Action[' + action + ']');\n const methods = kvMethods;\n // 目标函数\n const target = methods.get(action);\n // 目标代理函数\n const targetProxy = methods.get(action + _proxy);\n // 即不存在目标也不存在目标代理时, 报错函数不存在\n if (!target && !targetProxy)\n throw new Error('Unknown Action [' + action + ']');\n // ============================ PROXY BEGIN ============================\n // 最顶层代理\n const topProxy = methods.get(__proxy);\n if (topProxy) {\n const proxyReturns = await topProxy(action, params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n // 'x.y.z' => [ 'x', 'y', 'z' ]\n const nameStack = action.split('.'), size = nameStack.length - 1;\n let index = -1, proxyPrefix = '';\n // 根代理遍历\n while (++index < size) {\n // x.\n // x.y.\n proxyPrefix += nameStack[index] + '.';\n // x.__proxy\n // x.y.__proxy\n const rootProxy = methods.get(proxyPrefix + __proxy);\n // x.__proxy ( 'y.z', ... )\n // x.y.__proxy ( 'z', ... )\n if (rootProxy) {\n const proxyReturns = await rootProxy(nameStack.slice(index).join('.'), params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n }\n // 同级代理\n const layerProxy = methods.get(proxyPrefix + _proxy);\n if (layerProxy) {\n const proxyReturns = await layerProxy(nameStack[index], params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n if (targetProxy) {\n const proxyReturns = await targetProxy(params, context);\n if (proxyReturns !== undefined)\n return proxyReturns;\n }\n // ============================= PROXY END =============================\n // make sure target action execute after all proxies\n if (target) {\n return await target(...params);\n }\n}\n","export class Config {\n id = '';\n name = 'DEFAULT_NAME';\n}\nexport const config = new Config();\n","import * as tracer from './tracer.js';\nexport class AppContext {\n // 请求溯源ID\n traceId = '';\n}\nexport class Context extends AppContext {\n // 请求溯源IP\n sourceIP = '';\n // 请求者IP\n ip = '';\n // 请求者名称\n caller = 'anonymous';\n // 请求者ID (长连接专用)\n callerId = '';\n // 请求者连接把柄\n connection;\n constructor(context) {\n super();\n if (context) {\n if ('toJSON' in context && typeof context.toJSON !== 'function') {\n throw new Error('Context.toJSON must be a function');\n }\n Object.assign(this, context);\n }\n }\n toJSON() {\n const context = Object.assign({}, this);\n delete context.connection;\n return context;\n }\n}\nlet genTraceIdFunction = () => crypto.randomUUID();\nexport function setGenTraceIdFunction(fn) {\n genTraceIdFunction = fn;\n}\n/**\n * 生成随机不重复id\n */\nexport function genTraceId() {\n return genTraceIdFunction();\n}\nexport function genContext(context) {\n const newContext = new Context(context);\n if (!newContext.traceId)\n newContext.traceId = genTraceId();\n if (!newContext.sourceIP)\n newContext.sourceIP = newContext.ip;\n return newContext;\n}\nexport function getContext() {\n return tracer.getContext() || genContext();\n}\n","import EventEmitter from 'events';\nimport { getContext } from './context.js';\nimport { emit } from './app.js';\nexport class KeepAliveConnectionError extends Error {\n connection;\n constructor(message, connection) {\n super(message);\n this.connection = connection;\n }\n}\nexport class KeepAliveConnection extends EventEmitter {\n // 是否为注册服务连接\n isRegistry = false;\n // 连接是否可用\n #enabled = false;\n data;\n nativeConnection;\n adapter;\n constructor(adapter, nativeConnection, data) {\n super();\n this.adapter = adapter;\n this.nativeConnection = nativeConnection;\n this.data = Object.assign(data, {\n adapter: adapter.name,\n });\n this.on('connect', () => {\n emit('keepalive:connect', this);\n });\n this.on('disconnect', () => {\n emit('keepalive:disconnect', this);\n });\n }\n /**\n * 设置连接是否可用,并自动触发enabled或disabled事件\n * @param enabled 是否可用\n */\n set enabled(enabled) {\n if (enabled !== this.#enabled) {\n this.#enabled = enabled;\n this.emit(enabled ? 'enabled' : 'disabled');\n if (enabled) {\n enabledKeepAliveConnections.add(this);\n }\n else {\n enabledKeepAliveConnections.remove(this);\n }\n }\n }\n get enabled() {\n return this.#enabled;\n }\n /**\n * enable & mount connection\n * @param params\n * @returns\n */\n ready(params) {\n // 连接已就绪,不允许重复就绪\n if (this.enabled)\n return;\n const { id, name } = params;\n keepAliveConnections.remove(this);\n // 更新连接数据\n this.data.id = id;\n this.data.name = name;\n keepAliveConnections.add(this);\n this.enabled = true;\n }\n disconnect() {\n this.enabled = false;\n this.nativeConnection.disconnect();\n }\n}\nexport class KeepAliveConnectionStore {\n #map = new Map();\n entries() {\n return this.#map.entries();\n }\n getConnectionsOfService(name) {\n return this.#map.get(name) || new Map();\n }\n has(name, id) {\n const connections = this.#map.get(name);\n if (!connections)\n return false;\n return connections.has(id);\n }\n get(name, id) {\n const connections = this.#map.get(name);\n if (!connections)\n return null;\n return connections.get(id) || null;\n }\n add(connection) {\n const { name, id } = connection.data;\n const connections = this.#map.get(name);\n if (connections) {\n connections.set(id, connection);\n }\n else {\n this.#map.set(name, new Map([[id, connection]]));\n }\n }\n remove(name, id) {\n if (name instanceof KeepAliveConnection) {\n id = name.data.id;\n name = name.data.name;\n }\n const connections = this.#map.get(name);\n if (connections && id !== undefined) {\n connections.delete(id);\n }\n }\n}\nexport const keepAliveConnectionAdapters = new Map();\nexport const keepAliveConnections = new KeepAliveConnectionStore();\nexport const enabledKeepAliveConnections = new KeepAliveConnectionStore();\nexport function addKeepAliveConnection(connection) {\n if (keepAliveConnections.has(connection.data.name, connection.data.id)) {\n connection.disconnect();\n throw new KeepAliveConnectionError('Connection already exists', connection);\n }\n keepAliveConnections.add(connection);\n}\nexport function removeKeepAliveConnection(arg1, arg2) {\n if (typeof arg1 === 'string') {\n const connection = keepAliveConnections.get(arg1, arg2);\n if (connection)\n connection.disconnect();\n keepAliveConnections.remove(arg1, arg2);\n enabledKeepAliveConnections.remove(arg1, arg2);\n }\n else {\n arg1.disconnect();\n keepAliveConnections.remove(arg1);\n enabledKeepAliveConnections.remove(arg1);\n }\n}\n/**\n * random connection select for default load balance policy\n * @param name service name\n * @returns selected connection\n */\nlet loadBalancePolicy = (name) => {\n const connections = enabledKeepAliveConnections.getConnectionsOfService(name);\n if (!connections || !connections.size)\n return null;\n const arrayConnections = Array.from(connections.values());\n const index = Math.floor(Math.random() * arrayConnections.length);\n return arrayConnections[index];\n};\nexport function setLoadBalancePolicy(policy) {\n loadBalancePolicy = policy;\n}\nexport async function rpc(arg1, action, params, context) {\n if (!context || !context.traceId) {\n context = getContext();\n }\n let connection = null;\n if (arg1 instanceof KeepAliveConnection) {\n connection = arg1;\n }\n else if ('string' === typeof arg1) {\n connection = loadBalancePolicy(arg1);\n }\n else\n throw new Error(`Unknown rpc arg1<${arg1}>`);\n if (!connection)\n throw new Error(`Connection<${arg1}> not found`);\n return connection.adapter.rpc(connection, action, params, context);\n}\n","import { call, } from './app.js';\nimport { Context, getContext } from './context.js';\nimport { KeepAliveConnectionError, removeKeepAliveConnection, addKeepAliveConnection, } from './keepalive-connection.js';\nexport class SampleKeepAliveConnectionAdapter {\n /**\n * 通知连接列表\n */\n ['registry:notify'](connection, datas) {\n connection.nativeConnection.emit(this.OOXEvent.REGISTRY_NOTIFY, datas);\n }\n /**\n * 订阅连接列表\n */\n ['registry:subscribe'](connection, query) {\n connection.nativeConnection.emit(this.OOXEvent.REGISTRY_SUBSCRIBE, query);\n }\n bindConnectionEvents(connection) {\n const socket = connection.nativeConnection;\n socket.on(this.OOXEvent.READY, (params) => {\n connection.ready(params);\n });\n socket.on(this.OOXEvent.ENABLED, () => {\n connection.enabled = true;\n });\n socket.on(this.OOXEvent.DISABLED, () => {\n connection.enabled = false;\n });\n socket.on(this.OOXEvent.DISCONNECT, () => {\n socket.removeAllListeners();\n removeKeepAliveConnection(connection);\n connection.emit('disconnect');\n });\n socket.on(this.OOXEvent.CONNECT, () => {\n connection.emit('connect');\n });\n socket.on(this.OOXEvent.ERROR, (error) => {\n socket.removeAllListeners();\n removeKeepAliveConnection(connection);\n connection.emit('error', new KeepAliveConnectionError(error.message, connection));\n });\n }\n async open(identify) {\n const connection = this.newConnection(identify);\n addKeepAliveConnection(connection);\n this.bindConnectionEvents(connection);\n this.bindCall(connection);\n try {\n await new Promise((resolve, reject) => {\n connection.once('enabled', resolve);\n connection.once('error', reject);\n connection.once('disconnect', () => {\n reject(new Error('disconnect'));\n });\n if (connection.nativeConnection.connect) {\n connection.nativeConnection.connect();\n }\n });\n }\n catch (error) {\n connection.removeAllListeners();\n removeKeepAliveConnection(connection);\n throw error;\n }\n return connection;\n }\n async close(connection) {\n connection.nativeConnection.disconnect();\n return Promise.resolve();\n }\n /**\n * 发送事件\n * @param socket\n * @param event\n * @param params\n */\n async emit(socket, event, params) {\n if (!socket.connected)\n throw new Error('Socket not connected');\n return await new Promise((resolve, reject) => {\n const onError = (reason) => {\n const message = 'string' === typeof reason ? reason : reason instanceof Error ? reason.message : 'connect error';\n reject(new Error(message));\n };\n // RPC 执行时中断连接\n socket.once(this.OOXEvent.DISCONNECT, onError);\n socket.emit(event, ...params, (returns) => {\n socket.off(this.OOXEvent.DISCONNECT, onError);\n resolve(returns);\n });\n });\n }\n /**\n * RPC\n */\n async rpc(connection, action, params, context) {\n if (!context)\n context = getContext();\n const miniContext = {\n sourceIP: context.sourceIP,\n traceId: context.traceId,\n };\n const { success, error, body } = await this.emit(connection.nativeConnection, this.OOXEvent.CALL, [action, params, miniContext]);\n if (success)\n return body;\n else if (error)\n throw new Error(error.message);\n else\n throw new Error('[RPC] Unknown Error');\n }\n /**\n * 绑定 call 事件\n * @param connection\n */\n bindCall(connection) {\n const { id, name, ip } = connection.data;\n connection.nativeConnection.on(this.OOXEvent.CALL, async (action, params, context, callback) => {\n const validContext = new Context({\n ...context,\n ip: ip,\n caller: name,\n callerId: id,\n connection\n });\n this.call(action, params, validContext, callback);\n });\n }\n async call(action, params, context, callback) {\n const returns = await call(action, params, context);\n 'function' === typeof callback && callback(returns);\n return returns;\n }\n}\n","import { emit } from './app.js';\nimport * as tracer from './tracer.js';\nexport function info(...content) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'info', content);\n}\nexport function warn(...content) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'warn', content);\n}\nexport function error(...content) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'error', content);\n}\nexport function tag(name) {\n const context = tracer.getContext() || null;\n emit('log', Date.now(), context, 'tag', name);\n}\nexport function trace(name) {\n const context = tracer.getContext() || null;\n const trace = { stack: '' };\n Error.captureStackTrace(trace);\n const stack = trace.stack\n .replace(/.*\\n.*logger.js.*\\n/, name || 'Untitle\\n');\n emit('log', Date.now(), context, 'trace', stack);\n}\n","import { rpc } from './keepalive-connection.js';\n/**\n * 为了不重复创建Proxy,这个对象用于保存各个RPC服务的各个属性Proxy\n */\nconst rpcServiceAttrMap = Object.create(null);\nexport function proxy(name, action = '') {\n return new Proxy(function () { }, {\n get(target, key) {\n if (typeof key !== 'string')\n return undefined;\n const attrKey = action ? action + '.' + key : key;\n const attrKeyPath = name + '.' + attrKey;\n if (attrKeyPath in rpcServiceAttrMap) {\n // 不重复创建Proxy\n return rpcServiceAttrMap[attrKeyPath];\n }\n const attrProxy = proxy(name, attrKey);\n rpcServiceAttrMap[attrKeyPath] = attrProxy;\n return attrProxy;\n },\n has(target, key) {\n if (typeof key !== 'string')\n return false;\n return true;\n },\n apply(target, thisArg, args) {\n return rpc(name, action, args);\n }\n });\n}\n"],"names":["eventsModule","getContext","EventEmitter","tracer.enterWith","tracer.exitWith","tracer.getContext"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -2,18 +2,6 @@ import { call, } from './app.js';
|
|
|
2
2
|
import { Context, getContext } from './context.js';
|
|
3
3
|
import { KeepAliveConnectionError, removeKeepAliveConnection, addKeepAliveConnection, } from './keepalive-connection.js';
|
|
4
4
|
export class SampleKeepAliveConnectionAdapter {
|
|
5
|
-
OOXEvent = {
|
|
6
|
-
CONNECT: 'connect',
|
|
7
|
-
DISCONNECT: 'disconnect',
|
|
8
|
-
ERROR: 'error',
|
|
9
|
-
CALL: 'call',
|
|
10
|
-
READY: 'oox:ready',
|
|
11
|
-
ENABLED: 'oox:enabled',
|
|
12
|
-
DISABLED: 'oox:disabled',
|
|
13
|
-
REGISTRY_SYNC_CONNECTIONS: 'oox:registry:sync_connections',
|
|
14
|
-
REGISTRY_SUBSCRIBE: 'oox:registry:subscribe',
|
|
15
|
-
REGISTRY_NOTIFY: 'oox:registry:notify',
|
|
16
|
-
};
|
|
17
5
|
/**
|
|
18
6
|
* 通知连接列表
|
|
19
7
|
*/
|
|
@@ -55,6 +43,7 @@ export class SampleKeepAliveConnectionAdapter {
|
|
|
55
43
|
const connection = this.newConnection(identify);
|
|
56
44
|
addKeepAliveConnection(connection);
|
|
57
45
|
this.bindConnectionEvents(connection);
|
|
46
|
+
this.bindCall(connection);
|
|
58
47
|
try {
|
|
59
48
|
await new Promise((resolve, reject) => {
|
|
60
49
|
connection.once('enabled', resolve);
|
|
@@ -72,7 +61,6 @@ export class SampleKeepAliveConnectionAdapter {
|
|
|
72
61
|
removeKeepAliveConnection(connection);
|
|
73
62
|
throw error;
|
|
74
63
|
}
|
|
75
|
-
this.bindCall(connection);
|
|
76
64
|
return connection;
|
|
77
65
|
}
|
|
78
66
|
async close(connection) {
|
|
@@ -124,8 +112,6 @@ export class SampleKeepAliveConnectionAdapter {
|
|
|
124
112
|
* @param connection
|
|
125
113
|
*/
|
|
126
114
|
bindCall(connection) {
|
|
127
|
-
if (!connection.enabled)
|
|
128
|
-
throw new Error('Connection not enabled');
|
|
129
115
|
const { id, name, ip } = connection.data;
|
|
130
116
|
connection.nativeConnection.on(this.OOXEvent.CALL, async (action, params, context, callback) => {
|
|
131
117
|
const validContext = new Context({
|
package/keepalive-connection.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import EventEmitter from 'events';
|
|
2
2
|
import { getContext } from './context.js';
|
|
3
|
+
import { emit } from './app.js';
|
|
3
4
|
export class KeepAliveConnectionError extends Error {
|
|
4
5
|
connection;
|
|
5
6
|
constructor(message, connection) {
|
|
@@ -22,6 +23,12 @@ export class KeepAliveConnection extends EventEmitter {
|
|
|
22
23
|
this.data = Object.assign(data, {
|
|
23
24
|
adapter: adapter.name,
|
|
24
25
|
});
|
|
26
|
+
this.on('connect', () => {
|
|
27
|
+
emit('keepalive:connect', this);
|
|
28
|
+
});
|
|
29
|
+
this.on('disconnect', () => {
|
|
30
|
+
emit('keepalive:disconnect', this);
|
|
31
|
+
});
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
34
|
* 设置连接是否可用,并自动触发enabled或disabled事件
|
package/package.json
CHANGED
package/types/app.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
2
|
import { AppContext } from './context.js';
|
|
3
|
+
import { KeepAliveConnection, KeepAliveNativeConnection } from './keepalive-connection.js';
|
|
3
4
|
export interface ReturnsBody<T = any> {
|
|
4
5
|
traceId?: string;
|
|
5
6
|
success: boolean;
|
|
@@ -21,15 +22,21 @@ export declare function on(event: 'call:start', listener: (timestamp: number, ac
|
|
|
21
22
|
export declare function on(event: 'call:success', listener: (timestamp: number, action: string, params: any[], context: AppContext, result: ReturnsBody) => void): void;
|
|
22
23
|
export declare function on(event: 'call:fail', listener: (timestamp: number, action: string, params: any[], context: AppContext, error: Error) => void): void;
|
|
23
24
|
export declare function on(event: 'log', listener: (timestamp: number, context: AppContext | null, level: string, msgs: any[]) => void): void;
|
|
25
|
+
export declare function on(event: 'keepalive:connect', listener: (conn: KeepAliveConnection<KeepAliveNativeConnection>) => void): void;
|
|
26
|
+
export declare function on(event: 'keepalive:disconnect', listener: (conn: KeepAliveConnection<KeepAliveNativeConnection>) => void): void;
|
|
24
27
|
export declare function once(event: 'call:start', listener: (timestamp: number, action: string, params: any[], context: AppContext) => void): void;
|
|
25
28
|
export declare function once(event: 'call:success', listener: (timestamp: number, action: string, params: any[], context: AppContext, result: ReturnsBody) => void): void;
|
|
26
29
|
export declare function once(event: 'call:fail', listener: (timestamp: number, action: string, params: any[], context: AppContext, error: Error) => void): void;
|
|
27
30
|
export declare function once(event: 'log', listener: (timestamp: number, context: AppContext | null, level: string, msgs: any[]) => void): void;
|
|
28
|
-
export declare function
|
|
31
|
+
export declare function once(event: 'keepalive:connect', listener: (conn: KeepAliveConnection<KeepAliveNativeConnection>) => void): void;
|
|
32
|
+
export declare function once(event: 'keepalive:disconnect', listener: (conn: KeepAliveConnection<KeepAliveNativeConnection>) => void): void;
|
|
33
|
+
export declare function off(event: 'call:start' | 'call:success' | 'call:fail' | 'log' | 'keepalive:connect' | 'keepalive:disconnect', listener: (...args: any[]) => void): void;
|
|
29
34
|
export declare function emit(event: 'call:start', timestamp: number, action: string, params: any[], context: AppContext): boolean;
|
|
30
35
|
export declare function emit(event: 'call:success', timestamp: number, action: string, params: any[], context: AppContext, result: ReturnsBody): boolean;
|
|
31
36
|
export declare function emit(event: 'call:fail', timestamp: number, action: string, params: any[], context: AppContext, error: Error): boolean;
|
|
32
37
|
export declare function emit(event: 'log', timestamp: number, context: AppContext | null, level: string, content: any): boolean;
|
|
38
|
+
export declare function emit(event: 'keepalive:connect', conn: KeepAliveConnection<KeepAliveNativeConnection>): boolean;
|
|
39
|
+
export declare function emit(event: 'keepalive:disconnect', conn: KeepAliveConnection<KeepAliveNativeConnection>): boolean;
|
|
33
40
|
/**
|
|
34
41
|
* Call an Function on RPC server
|
|
35
42
|
* @param action
|
|
@@ -12,7 +12,7 @@ export interface SampleKeepAliveNativeConnection extends KeepAliveNativeConnecti
|
|
|
12
12
|
}
|
|
13
13
|
export declare abstract class SampleKeepAliveConnectionAdapter<NativeConnection extends SampleKeepAliveNativeConnection> implements KeepAliveConnectionAdapter<NativeConnection> {
|
|
14
14
|
abstract name: string;
|
|
15
|
-
OOXEvent: {
|
|
15
|
+
abstract OOXEvent: {
|
|
16
16
|
CONNECT: string;
|
|
17
17
|
DISCONNECT: string;
|
|
18
18
|
ERROR: string;
|