@lskjs/server
Version:
LSK server.
148 lines (120 loc) • 12.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = _default;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _http = _interopRequireDefault(require("http"));
var _nodeVersion = _interopRequireDefault(require("@lskjs/utils/nodeVersion"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var DEBUG = __STAGE__ === 'isuvorov';
function _default() {
return _ref.apply(this, arguments);
}
function _ref() {
_ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var params,
express,
_params$host,
host,
url,
_params$headers,
_headers,
body,
query,
remoteAddress,
headers,
req,
data,
_args = arguments;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
params = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
// eslint-disable-next-line no-console
if (DEBUG) console.log('ServerApp.resolve', Object.keys(params));
express = this.express || this.app;
if (express) {
_context.next = 5;
break;
}
throw '!express';
case 5:
_params$host = params.host, host = _params$host === void 0 ? '' : _params$host, url = params.url, _params$headers = params.headers, _headers = _params$headers === void 0 ? {} : _params$headers;
body = params.data || params.body || {};
query = params.query || params.params || {};
remoteAddress = '127.0.0.1';
headers = _objectSpread({
host: host
}, _headers);
req = _objectSpread(_objectSpread({}, params), {}, {
// query,
url: url,
_direct: true,
method: 'GET',
headers: headers,
connection: {
remoteAddress: remoteAddress
},
socket: {
socket: {
remoteAddress: remoteAddress
}
},
body: body
});
_context.next = 13;
return new Promise(function (resolve, reject) {
var res = Object.create(_http["default"].ServerResponse.prototype);
res.send = function (data) {
//eslint-disable-line
if (DEBUG) console.log('express.resolve.send', Object.keys(data)); // eslint-disable-line no-console
if (res.statusCode >= 400) {
reject(data);
} else {
resolve(data);
} // console.log('statusCode', res.statusCode);
};
if ((0, _nodeVersion["default"])() >= 9) {
var x = new _http["default"].OutgoingMessage();
var symbols = Object.getOwnPropertySymbols(x);
var outHeadersKey = symbols.find(function (item) {
return item.toString() === 'Symbol(outHeadersKey)';
});
if (outHeadersKey) {
res[outHeadersKey] = headers;
}
var kOutHeaders = symbols.find(function (item) {
return item.toString() === 'Symbol(kOutHeaders)';
});
if (kOutHeaders) {
res[kOutHeaders] = headers;
}
} // if (DEBUG) console.log('express.resolve', req); // eslint-disable-line no-console
express.handle(req, res);
});
case 13:
data = _context.sent;
_context.prev = 14;
return _context.abrupt("return", JSON.parse(data));
case 18:
_context.prev = 18;
_context.t0 = _context["catch"](14);
this.log.error('ctx.resolve err', _context.t0);
return _context.abrupt("return", data);
case 22:
case "end":
return _context.stop();
}
}
}, _callee, this, [[14, 18]]);
}));
return _ref.apply(this, arguments);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXRob2RzL2V4cHJlc3NSZXNvbHZlLmpzIl0sIm5hbWVzIjpbIkRFQlVHIiwiX19TVEFHRV9fIiwicGFyYW1zIiwiY29uc29sZSIsImxvZyIsIk9iamVjdCIsImtleXMiLCJleHByZXNzIiwiYXBwIiwiaG9zdCIsInVybCIsImhlYWRlcnMiLCJfaGVhZGVycyIsImJvZHkiLCJkYXRhIiwicXVlcnkiLCJyZW1vdGVBZGRyZXNzIiwicmVxIiwiX2RpcmVjdCIsIm1ldGhvZCIsImNvbm5lY3Rpb24iLCJzb2NrZXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlcyIsImNyZWF0ZSIsImh0dHAiLCJTZXJ2ZXJSZXNwb25zZSIsInByb3RvdHlwZSIsInNlbmQiLCJzdGF0dXNDb2RlIiwieCIsIk91dGdvaW5nTWVzc2FnZSIsInN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvdXRIZWFkZXJzS2V5IiwiZmluZCIsIml0ZW0iLCJ0b1N0cmluZyIsImtPdXRIZWFkZXJzIiwiaGFuZGxlIiwiSlNPTiIsInBhcnNlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxLQUFLLEdBQUdDLFNBQVMsS0FBSyxVQUE1Qjs7Ozs7Ozt1RkFFZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBZ0JDLFlBQUFBLE1BQWhCLDJEQUF5QixFQUF6QjtBQUNiO0FBQ0EsZ0JBQUlGLEtBQUosRUFBV0csT0FBTyxDQUFDQyxHQUFSLENBQVksbUJBQVosRUFBaUNDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixNQUFaLENBQWpDO0FBQ0xLLFlBQUFBLE9BSE8sR0FHRyxLQUFLQSxPQUFMLElBQWdCLEtBQUtDLEdBSHhCOztBQUFBLGdCQUlSRCxPQUpRO0FBQUE7QUFB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OztBQUFBO0FBcUNQWCxZQUFBQSxJQXJDTztBQUFBO0FBQUEsNkNBa0VKNEIsSUFBSSxDQUFDQyxLQUFMLENBQVc3QixJQUFYLENBbEVJOztBQUFBO0FBQUE7QUFBQTtBQW9FWCxpQkFBS1YsR0FBTCxDQUFTd0MsS0FBVCxDQUFlLGlCQUFmO0FBcEVXLDZDQXFFSjlCLElBckVJOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBub2RlVmVzaW9uIGZyb20gJ0Bsc2tqcy91dGlscy9ub2RlVmVyc2lvbic7XG5cbmNvbnN0IERFQlVHID0gX19TVEFHRV9fID09PSAnaXN1dm9yb3YnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAocGFyYW1zID0ge30pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgaWYgKERFQlVHKSBjb25zb2xlLmxvZygnU2VydmVyQXBwLnJlc29sdmUnLCBPYmplY3Qua2V5cyhwYXJhbXMpKTtcbiAgY29uc3QgZXhwcmVzcyA9IHRoaXMuZXhwcmVzcyB8fCB0aGlzLmFwcDtcbiAgaWYgKCFleHByZXNzKSB0aHJvdyAnIWV4cHJlc3MnO1xuXG4gIGNvbnN0IHtcbiAgICBob3N0ID0gJycsIC8vID9cbiAgICB1cmwsXG4gICAgLy8gYm9keSA9IHt9LFxuICAgIGhlYWRlcnM6IF9oZWFkZXJzID0ge30sXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGJvZHkgPSBwYXJhbXMuZGF0YSB8fCBwYXJhbXMuYm9keSB8fCB7fTtcbiAgY29uc3QgcXVlcnkgPSBwYXJhbXMucXVlcnkgfHwgcGFyYW1zLnBhcmFtcyB8fCB7fTtcblxuICBjb25zdCByZW1vdGVBZGRyZXNzID0gJzEyNy4wLjAuMSc7XG4gIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgaG9zdCxcbiAgICAuLi5faGVhZGVycyxcbiAgfTtcbiAgY29uc3QgcmVxID0ge1xuICAgIC4uLnBhcmFtcyxcbiAgICAvLyBxdWVyeSxcbiAgICB1cmwsXG4gICAgX2RpcmVjdDogdHJ1ZSxcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnMsXG4gICAgY29ubmVjdGlvbjoge1xuICAgICAgcmVtb3RlQWRkcmVzcyxcbiAgICB9LFxuICAgIHNvY2tldDoge1xuICAgICAgc29ja2V0OiB7XG4gICAgICAgIHJlbW90ZUFkZHJlc3MsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYm9keSxcbiAgfTtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZXMgPSBPYmplY3QuY3JlYXRlKGh0dHAuU2VydmVyUmVzcG9uc2UucHJvdG90eXBlKTtcbiAgICByZXMuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpIHsgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICBpZiAoREVCVUcpIGNvbnNvbGUubG9nKCdleHByZXNzLnJlc29sdmUuc2VuZCcsIE9iamVjdC5rZXlzKGRhdGEpKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAocmVzLnN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICAgIHJlamVjdChkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICB9XG4gICAgICAvLyBjb25zb2xlLmxvZygnc3RhdHVzQ29kZScsIHJlcy5zdGF0dXNDb2RlKTtcbiAgICB9O1xuXG4gICAgaWYgKG5vZGVWZXNpb24oKSA+PSA5KSB7XG4gICAgICBjb25zdCB4ID0gbmV3IGh0dHAuT3V0Z29pbmdNZXNzYWdlKCk7XG4gICAgICBjb25zdCBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh4KTtcbiAgICAgIGNvbnN0IG91dEhlYWRlcnNLZXkgPSBzeW1ib2xzLmZpbmQoKGl0ZW0pID0+IGl0ZW0udG9TdHJpbmcoKSA9PT0gJ1N5bWJvbChvdXRIZWFkZXJzS2V5KScpO1xuICAgICAgaWYgKG91dEhlYWRlcnNLZXkpIHtcbiAgICAgICAgcmVzW291dEhlYWRlcnNLZXldID0gaGVhZGVycztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGtPdXRIZWFkZXJzID0gc3ltYm9scy5maW5kKChpdGVtKSA9PiBpdGVtLnRvU3RyaW5nKCkgPT09ICdTeW1ib2woa091dEhlYWRlcnMpJyk7XG4gICAgICBpZiAoa091dEhlYWRlcnMpIHtcbiAgICAgICAgcmVzW2tPdXRIZWFkZXJzXSA9IGhlYWRlcnM7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGlmIChERUJVRykgY29uc29sZS5sb2coJ2V4cHJlc3MucmVzb2x2ZScsIHJlcSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgIGV4cHJlc3MuaGFuZGxlKHJlcSwgcmVzKTtcbiAgfSk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5sb2cuZXJyb3IoJ2N0eC5yZXNvbHZlIGVycicsIGVycik7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=expressResolve.js.map