PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo-express/node_modules/ripple-lib/dist/npm
Просмотр файла: http.js
/* eslint-disable new-cap */
'use strict'; // eslint-disable-line strict
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var assert = require('assert');
var _ = require('lodash');
var jayson = require('jayson');
var RippleAPI = require('./api').RippleAPI;
/* istanbul ignore next */
function createHTTPServer(options, httpPort) {
var rippleAPI = new RippleAPI(options);
var methodNames = _.filter(_.keys(RippleAPI.prototype), function (k) {
return typeof RippleAPI.prototype[k] === 'function' && k !== 'connect' && k !== 'disconnect' && k !== 'constructor' && k !== 'RippleAPI';
});
function applyPromiseWithCallback(fnName, callback, args_) {
try {
var args = args_;
if (!_.isArray(args_)) {
var fnParameters = jayson.Utils.getParameterNames(rippleAPI[fnName]);
args = fnParameters.map(function (name) {
return args_[name];
});
var defaultArgs = _.omit(args_, fnParameters);
assert(_.size(defaultArgs) <= 1, 'Function must have no more than one default argument');
if (_.size(defaultArgs) > 0) {
args.push(defaultArgs[_.keys(defaultArgs)[0]]);
}
}
Promise.resolve(rippleAPI[fnName].apply(rippleAPI, _toConsumableArray(args))).then(function (res) {
return callback(null, res);
}).catch(function (err) {
callback({ code: 99, message: err.message, data: { name: err.name } });
});
} catch (err) {
callback({ code: 99, message: err.message, data: { name: err.name } });
}
}
var methods = {};
_.forEach(methodNames, function (fn) {
methods[fn] = jayson.Method(function (args, cb) {
applyPromiseWithCallback(fn, cb, args);
}, { collect: true });
});
var server = jayson.server(methods);
var httpServer = null;
return {
server: server,
start: function start() {
if (httpServer !== null) {
return Promise.reject('Already started');
}
return new Promise(function (resolve) {
rippleAPI.connect().then(function () {
httpServer = server.http();
httpServer.listen(httpPort, resolve);
});
});
},
stop: function stop() {
if (httpServer === null) {
return Promise.reject('Not started');
}
return new Promise(function (resolve) {
rippleAPI.disconnect();
httpServer.close(function () {
httpServer = null;
resolve();
});
});
}
};
}
module.exports = {
createHTTPServer: createHTTPServer
};Выполнить команду
Для локальной разработки. Не используйте в интернете!