@jovijovi/pedrojs-network-jsonrpc
Version:
JSON-RPC package for pedro.js
48 lines • 2.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.server = void 0;
const pedrojs_common_1 = require("@jovijovi/pedrojs-common");
const promise_1 = __importDefault(require("jayson/promise"));
const url_1 = require("url");
var server;
(function (server) {
function RunProxy(port, handler, provider, relayMethods, relayMethodPrefix) {
const methods = {
all: async function (params, callback) {
callback(null, await handler.Callback(params));
},
relayReq: promise_1.default.Client.http(new url_1.URL(provider)),
};
const app = new promise_1.default.Server(methods, {
router: function (method, params) {
pedrojs_common_1.log.RequestId().trace("JSON-RPC Method=%s, params=%s", method, params);
if (relayMethods.includes(method)) {
return methods['relayReq'];
}
else {
for (let i = 0; i < relayMethodPrefix.length; i++) {
if (method.startsWith(relayMethodPrefix[i])) {
return methods['relayReq'];
}
}
}
return methods['all'];
}
});
const s = app.http().listen(port, () => {
pedrojs_common_1.log.RequestId().info('The JSON-RPC-Proxy(%s) is running...', s.address());
});
}
// Support proxy right now
function Run(handler, provider, relayMethods, relayMethodPrefix) {
const networkConf = pedrojs_common_1.config.GetYmlConfig().network;
if (networkConf.jsonRpcProxy.enable) {
RunProxy(networkConf.jsonRpcProxy.port, handler, provider, relayMethods, relayMethodPrefix);
}
}
server.Run = Run;
})(server = exports.server || (exports.server = {}));
//# sourceMappingURL=server.js.map