UNPKG

@lskjs/server

Version:

LSK server.

136 lines (106 loc) 11.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _omit = _interopRequireDefault(require("lodash/omit")); var _get = _interopRequireDefault(require("lodash/get")); var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject")); var _isFunction = _interopRequireDefault(require("lodash/isFunction")); var _default = function _default(ctx) { return function pack() { var _this = this; var raw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var info = arguments.length > 1 ? arguments[1] : undefined; var res = this; var config = (0, _get["default"])(ctx, 'config.server.response', __DEV__ ? { log: false, debug: true } : {}); var status = info.status || (0, _get["default"])(raw, '__status', null); var isJson; var wrap; var data; if (typeof (0, _get["default"])(raw, '__raw') !== 'undefined') { wrap = false; isJson = false; data = raw.__raw; } else { wrap = !(0, _get["default"])(raw, '__pack', false); isJson = true; if ((0, _isPlainObject["default"])(raw)) { data = (0, _omit["default"])(raw, ['__pack', '__raw', '__log', '__status']); } else if (raw instanceof Error) { throw raw; } else if ((0, _isFunction["default"])(raw)) { data = {}; } else { data = raw; } } var result; if (wrap) { result = { code: info.code, message: info.message, data: data }; } else { result = data; } if (status) { res.status(status); } if (wrap && config.debug) { if (info.err) { result.err = info.err; } if (info.debug) { result.debug = info.debug; } if (info.stack) { result.stack = info.stack; } } var isLog = Boolean((0, _get["default"])(data, '__log') == null ? config.log : (0, _get["default"])(data, '__log')); var log = function log(str, type) { if (!isLog) return; var dest = isLog; if (isLog === true) dest = str && str.length > 100 ? 'file' : 'console'; if (dest === 'file') { if (__DEV__) { var dir = "/tmp/lsk"; try { require('fs').mkdirSync(dir, { recursive: true }); } catch (e) {// ignore } try { var filename = "".concat(dir, "/res_").concat(new Date().toISOString().replace(/[^a-zA-Z0-9]+/gi, '_'), ".").concat(type); ctx.log.trace(">>>>> #".concat(_this.req.reqId, " ").concat(filename, " [").concat(str.length, " bytes] ").concat(__DEV__ ? '[IGNORE]' : '')); require('fs').writeFileSync(filename, str); } catch (e) {// ignore } } return; } // else ctx.log.trace('>>>>>'); console.log(str); // eslint-disable-line no-console ctx.log.trace('<<<<<'); }; if (!isJson) { log(result, 'txt'); return res.send(result); } try { log(JSON.stringify(result, null, 2), 'json'); } catch (e) {// ignore } return res.json(result); }; }; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNwb25zZXMvcGFjay5qcyJdLCJuYW1lcyI6WyJjdHgiLCJwYWNrIiwicmF3IiwiaW5mbyIsInJlcyIsImNvbmZpZyIsIl9fREVWX18iLCJsb2ciLCJkZWJ1ZyIsInN0YXR1cyIsImlzSnNvbiIsIndyYXAiLCJkYXRhIiwiX19yYXciLCJFcnJvciIsInJlc3VsdCIsImNvZGUiLCJtZXNzYWdlIiwiZXJyIiwic3RhY2siLCJpc0xvZyIsIkJvb2xlYW4iLCJzdHIiLCJ0eXBlIiwiZGVzdCIsImxlbmd0aCIsImRpciIsInJlcXVpcmUiLCJta2RpclN5bmMiLCJyZWN1cnNpdmUiLCJlIiwiZmlsZW5hbWUiLCJEYXRlIiwidG9JU09TdHJpbmciLCJyZXBsYWNlIiwidHJhY2UiLCJyZXEiLCJyZXFJZCIsIndyaXRlRmlsZVN5bmMiLCJjb25zb2xlIiwic2VuZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7ZUFFZSxrQkFBQUEsR0FBRztBQUFBLFNBQ2hCLFNBQVNDLElBQVQsR0FBOEI7QUFBQTs7QUFBQSxRQUFoQkMsR0FBZ0IsdUVBQVYsRUFBVTtBQUFBLFFBQU5DLElBQU07QUFDNUIsUUFBTUMsR0FBRyxHQUFHLElBQVo7QUFDQSxRQUFNQyxNQUFNLEdBQUcscUJBQUlMLEdBQUosRUFBUyx3QkFBVCxFQUFtQ00sT0FBTyxHQUFHO0FBQUVDLE1BQUFBLEdBQUcsRUFBRSxLQUFQO0FBQWNDLE1BQUFBLEtBQUssRUFBRTtBQUFyQixLQUFILEdBQWlDLEVBQTNFLENBQWY7QUFDQSxRQUFNQyxNQUFNLEdBQUdOLElBQUksQ0FBQ00sTUFBTCxJQUFlLHFCQUFJUCxHQUFKLEVBQVMsVUFBVCxFQUFxQixJQUFyQixDQUE5QjtBQUNBLFFBQUlRLE1BQUo7QUFDQSxRQUFJQyxJQUFKO0FBQ0EsUUFBSUMsSUFBSjs7QUFDQSxRQUFJLE9BQU8scUJBQUlWLEdBQUosRUFB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YXNoL29taXQnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJ2xvZGFzaC9pc1BsYWluT2JqZWN0JztcbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJ2xvZGFzaC9pc0Z1bmN0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgY3R4ID0+XG4gIGZ1bmN0aW9uIHBhY2socmF3ID0ge30sIGluZm8pIHtcbiAgICBjb25zdCByZXMgPSB0aGlzO1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldChjdHgsICdjb25maWcuc2VydmVyLnJlc3BvbnNlJywgX19ERVZfXyA/IHsgbG9nOiBmYWxzZSwgZGVidWc6IHRydWUgfSA6IHt9KTtcbiAgICBjb25zdCBzdGF0dXMgPSBpbmZvLnN0YXR1cyB8fCBnZXQocmF3LCAnX19zdGF0dXMnLCBudWxsKTtcbiAgICBsZXQgaXNKc29uO1xuICAgIGxldCB3cmFwO1xuICAgIGxldCBkYXRhO1xuICAgIGlmICh0eXBlb2YgZ2V0KHJhdywgJ19fcmF3JykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB3cmFwID0gZmFsc2U7XG4gICAgICBpc0pzb24gPSBmYWxzZTtcbiAgICAgIGRhdGEgPSByYXcuX19yYXc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdyYXAgPSAhZ2V0KHJhdywgJ19fcGFjaycsIGZhbHNlKTtcbiAgICAgIGlzSnNvbiA9IHRydWU7XG4gICAgICBpZiAoaXNQbGFpbk9iamVjdChyYXcpKSB7XG4gICAgICAgIGRhdGEgPSBvbWl0KHJhdywgWydfX3BhY2snLCAnX19yYXcnLCAnX19sb2cnLCAnX19zdGF0dXMnXSk7XG4gICAgICB9IGVsc2UgaWYgKHJhdyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IHJhdztcbiAgICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbihyYXcpKSB7XG4gICAgICAgIGRhdGEgPSB7fTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEgPSByYXc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDtcbiAgICBpZiAod3JhcCkge1xuICAgICAgcmVzdWx0ID0ge1xuICAgICAgICBjb2RlOiBpbmZvLmNvZGUsXG4gICAgICAgIG1lc3NhZ2U6IGluZm8ubWVzc2FnZSxcbiAgICAgICAgZGF0YSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGRhdGE7XG4gICAgfVxuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIHJlcy5zdGF0dXMoc3RhdHVzKTtcbiAgICB9XG5cbiAgICBpZiAod3JhcCAmJiBjb25maWcuZGVidWcpIHtcbiAgICAgIGlmIChpbmZvLmVycikge1xuICAgICAgICByZXN1bHQuZXJyID0gaW5mby5lcnI7XG4gICAgICB9XG4gICAgICBpZiAoaW5mby5kZWJ1Zykge1xuICAgICAgICByZXN1bHQuZGVidWcgPSBpbmZvLmRlYnVnO1xuICAgICAgfVxuICAgICAgaWYgKGluZm8uc3RhY2spIHtcbiAgICAgICAgcmVzdWx0LnN0YWNrID0gaW5mby5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpc0xvZyA9IEJvb2xlYW4oZ2V0KGRhdGEsICdfX2xvZycpID09IG51bGwgPyBjb25maWcubG9nIDogZ2V0KGRhdGEsICdfX2xvZycpKTtcbiAgICBjb25zdCBsb2cgPSAoc3RyLCB0eXBlKSA9PiB7XG4gICAgICBpZiAoIWlzTG9nKSByZXR1cm47XG4gICAgICBsZXQgZGVzdCA9IGlzTG9nO1xuICAgICAgaWYgKGlzTG9nID09PSB0cnVlKSBkZXN0ID0gc3RyICYmIHN0ci5sZW5ndGggPiAxMDAgPyAnZmlsZScgOiAnY29uc29sZSc7XG5cbiAgICAgIGlmIChkZXN0ID09PSAnZmlsZScpIHtcbiAgICAgICAgaWYgKF9fREVWX18pIHtcbiAgICAgICAgICBjb25zdCBkaXIgPSBgL3RtcC9sc2tgO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXF1aXJlKCdmcycpLm1rZGlyU3luYyhkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgIH1cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBgJHtkaXJ9L3Jlc18ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9bXmEtekEtWjAtOV0rL2dpLCAnXycpfS4ke3R5cGV9YDtcbiAgICAgICAgICAgIGN0eC5sb2cudHJhY2UoYD4+Pj4+ICMke3RoaXMucmVxLnJlcUlkfSAke2ZpbGVuYW1lfSBbJHtzdHIubGVuZ3RofSBieXRlc10gJHtfX0RFVl9fID8gJ1tJR05PUkVdJyA6ICcnfWApO1xuICAgICAgICAgICAgcmVxdWlyZSgnZnMnKS53cml0ZUZpbGVTeW5jKGZpbGVuYW1lLCBzdHIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBlbHNlXG4gICAgICBjdHgubG9nLnRyYWNlKCc+Pj4+PicpO1xuICAgICAgY29uc29sZS5sb2coc3RyKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgICBjdHgubG9nLnRyYWNlKCc8PDw8PCcpO1xuICAgIH07XG5cbiAgICBpZiAoIWlzSnNvbikge1xuICAgICAgbG9nKHJlc3VsdCwgJ3R4dCcpO1xuICAgICAgcmV0dXJuIHJlcy5zZW5kKHJlc3VsdCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBsb2coSlNPTi5zdHJpbmdpZnkocmVzdWx0LCBudWxsLCAyKSwgJ2pzb24nKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBpZ25vcmVcbiAgICB9XG4gICAgcmV0dXJuIHJlcy5qc29uKHJlc3VsdCk7XG4gIH07XG4iXX0= //# sourceMappingURL=pack.js.map