sugo-actor
Version:
Actor component of SUGOS.
66 lines (57 loc) • 4.55 kB
JavaScript
/**
* Formatter for emit message
* @module messageFormatter
*/
;
var _Object$assign = require("@babel/runtime/core-js/object/assign");
var _require = require('sg-socket-constants'),
AcknowledgeStatus = _require.AcknowledgeStatus;
var OK = AcknowledgeStatus.OK,
NG = AcknowledgeStatus.NG;
var _require2 = require('asenv'),
isProduction = _require2.isProduction;
var _require3 = require('os'),
EOL = _require3.EOL;
var _require4 = require('asobj'),
clone = _require4.clone;
module.exports = _Object$assign(exports, {
/**
* Format ok message
* @function ok
* @param {Object} payload - Payload data
* @param {Object} meta - Meta data
* @returns {{status: *, payload: *, meta: *}}
*/
ok: function ok(payload, meta) {
return {
status: OK,
payload: payload,
meta: meta
};
},
/**
* Format ng message
* @function ng
* @param {Object} error - Payload data
* @returns {Object}
*/
ng: function ng(error) {
if (!error) {
return {
status: NG
};
}
var message = error.message,
stack = error.stack;
return {
status: NG,
payload: [message || error, isProduction() ? null : stack].filter(Boolean).join(EOL),
meta: {
additionalInfo: clone(error, {
without: ['message', 'stack']
})
}
};
}
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtaXR0aW5nL21lc3NhZ2VfZm9ybWF0dGVyLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJBY2tub3dsZWRnZVN0YXR1cyIsIk9LIiwiTkciLCJpc1Byb2R1Y3Rpb24iLCJFT0wiLCJjbG9uZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJvayIsInBheWxvYWQiLCJtZXRhIiwic3RhdHVzIiwibmciLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiYWRkaXRpb25hbEluZm8iLCJ3aXRob3V0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUlBOzs7O2VBRThCQSxRQUFRLHFCQUFSLEM7SUFBdEJDLGlCLFlBQUFBLGlCOztJQUNBQyxFLEdBQVdELGlCLENBQVhDLEU7SUFBSUMsRSxHQUFPRixpQixDQUFQRSxFOztnQkFDYUgsUUFBUSxPQUFSLEM7SUFBakJJLFksYUFBQUEsWTs7Z0JBQ1FKLFFBQVEsSUFBUixDO0lBQVJLLEcsYUFBQUEsRzs7Z0JBQ1VMLFFBQVEsT0FBUixDO0lBQVZNLEssYUFBQUEsSzs7QUFFUkMsT0FBT0MsT0FBUCxHQUFpQixlQUFjQSxPQUFkLEVBQXVCO0FBQ3RDOzs7Ozs7O0FBT0FDLElBUnNDLGNBUWxDQyxPQVJrQyxFQVF6QkMsSUFSeUIsRUFRbkI7QUFDakIsV0FBTztBQUFFQyxjQUFRVixFQUFWO0FBQWNRLHNCQUFkO0FBQXVCQztBQUF2QixLQUFQO0FBQ0QsR0FWcUM7O0FBV3RDOzs7Ozs7QUFNQUUsSUFqQnNDLGNBaUJsQ0MsS0FqQmtDLEVBaUIzQjtBQUNULFFBQUksQ0FBQ0EsS0FBTCxFQUFZO0FBQ1YsYUFBTztBQUFFRixnQkFBUVQ7QUFBVixPQUFQO0FBQ0Q7O0FBSFEsUUFJSFksT0FKRyxHQUlnQkQsS0FKaEIsQ0FJSEMsT0FKRztBQUFBLFFBSU1DLEtBSk4sR0FJZ0JGLEtBSmhCLENBSU1FLEtBSk47QUFLVCxXQUFPO0FBQ0xKLGNBQVFULEVBREg7QUFFTE8sZUFBUyxDQUNQSyxXQUFXRCxLQURKLEVBRVBWLGlCQUFpQixJQUFqQixHQUF3QlksS0FGakIsRUFHUEMsTUFITyxDQUdBQyxPQUhBLEVBR1NDLElBSFQsQ0FHY2QsR0FIZCxDQUZKO0FBTUxNLFlBQU07QUFDSlMsd0JBQWdCZCxNQUFNUSxLQUFOLEVBQWE7QUFDM0JPLG1CQUFTLENBQUUsU0FBRixFQUFhLE9BQWI7QUFEa0IsU0FBYjtBQURaO0FBTkQsS0FBUDtBQVlEO0FBbENxQyxDQUF2QixDQUFqQiIsImZpbGUiOiJlbWl0dGluZy9tZXNzYWdlX2Zvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvcm1hdHRlciBmb3IgZW1pdCBtZXNzYWdlXG4gKiBAbW9kdWxlIG1lc3NhZ2VGb3JtYXR0ZXJcbiAqL1xuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgQWNrbm93bGVkZ2VTdGF0dXMgfSA9IHJlcXVpcmUoJ3NnLXNvY2tldC1jb25zdGFudHMnKVxuY29uc3QgeyBPSywgTkcgfSA9IEFja25vd2xlZGdlU3RhdHVzXG5jb25zdCB7IGlzUHJvZHVjdGlvbiB9ID0gcmVxdWlyZSgnYXNlbnYnKVxuY29uc3QgeyBFT0wgfSA9IHJlcXVpcmUoJ29zJylcbmNvbnN0IHsgY2xvbmUgfSA9IHJlcXVpcmUoJ2Fzb2JqJylcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuYXNzaWduKGV4cG9ydHMsIHtcbiAgLyoqXG4gICAqIEZvcm1hdCBvayBtZXNzYWdlXG4gICAqIEBmdW5jdGlvbiBva1xuICAgKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZCAtIFBheWxvYWQgZGF0YVxuICAgKiBAcGFyYW0ge09iamVjdH0gbWV0YSAtIE1ldGEgZGF0YVxuICAgKiBAcmV0dXJucyB7e3N0YXR1czogKiwgcGF5bG9hZDogKiwgbWV0YTogKn19XG4gICAqL1xuICBvayAocGF5bG9hZCwgbWV0YSkge1xuICAgIHJldHVybiB7IHN0YXR1czogT0ssIHBheWxvYWQsIG1ldGEgfVxuICB9LFxuICAvKipcbiAgICogRm9ybWF0IG5nIG1lc3NhZ2VcbiAgICogQGZ1bmN0aW9uIG5nXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBlcnJvciAtIFBheWxvYWQgZGF0YVxuICAgKiBAcmV0dXJucyB7T2JqZWN0fVxuICAgKi9cbiAgbmcgKGVycm9yKSB7XG4gICAgaWYgKCFlcnJvcikge1xuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBORyB9XG4gICAgfVxuICAgIGxldCB7IG1lc3NhZ2UsIHN0YWNrIH0gPSBlcnJvclxuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXM6IE5HLFxuICAgICAgcGF5bG9hZDogW1xuICAgICAgICBtZXNzYWdlIHx8IGVycm9yLFxuICAgICAgICBpc1Byb2R1Y3Rpb24oKSA/IG51bGwgOiBzdGFja1xuICAgICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbihFT0wpLFxuICAgICAgbWV0YToge1xuICAgICAgICBhZGRpdGlvbmFsSW5mbzogY2xvbmUoZXJyb3IsIHtcbiAgICAgICAgICB3aXRob3V0OiBbICdtZXNzYWdlJywgJ3N0YWNrJyBdXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG59KVxuIl19