UNPKG

10.5 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.throwError = throwError;
7exports.throwUserError = throwUserError;
8exports.throwUnexpectedArgError = throwUnexpectedArgError;
9exports.throwUnsetArg = throwUnsetArg;
10exports.throwExtendedError = throwExtendedError;
11exports.isError = isError;
12exports.ExtendedError = exports.StatusError = exports.UserError = void 0;
13
14var _jsonStringifySafe = _interopRequireDefault(require("json-stringify-safe"));
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
19
20function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
22function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
24class UserError {
25 constructor(userMessage) {
26 _defineProperty(this, "userMessage", void 0);
27
28 this.userMessage = userMessage;
29 }
30
31}
32
33exports.UserError = UserError;
34
35class StatusError extends Error {
36 constructor(publicDataOrMessage, status, data) {
37 const _message = typeof publicDataOrMessage === 'string' ? publicDataOrMessage : publicDataOrMessage.message;
38
39 super(_message);
40
41 _defineProperty(this, "message", void 0);
42
43 _defineProperty(this, "publicData", void 0);
44
45 _defineProperty(this, "status", void 0);
46
47 _defineProperty(this, "data", void 0);
48
49 _defineProperty(this, "toString", () => {
50 if (this.status == null) return this.message;
51
52 const _this$publicData = this.publicData,
53 {
54 message
55 } = _this$publicData,
56 extraPublicData = _objectWithoutProperties(_this$publicData, ["message"]); // eslint-disable-line no-unused-vars
57
58
59 return `Status ${this.status} error: ${this.message}${Object.keys(extraPublicData).length ? `, publicData: ${(0, _jsonStringifySafe.default)(extraPublicData)}` : ''}${this.data ? `, data: ${(0, _jsonStringifySafe.default)(this.data)}` : ''}`;
60 });
61
62 this.message = _message;
63 this.publicData = typeof publicDataOrMessage === 'string' ? {
64 message: publicDataOrMessage
65 } : publicDataOrMessage;
66 this.status = status;
67 this.data = data;
68 }
69
70}
71
72exports.StatusError = StatusError;
73
74class ExtendedError extends Error {
75 constructor(message, data) {
76 super(message);
77
78 _defineProperty(this, "data", void 0);
79
80 _defineProperty(this, "message", void 0);
81
82 _defineProperty(this, "toString", () => {
83 if (this.data.message) return `Error '${this.message}', inner error: '${this.data.message}'`;
84 if (this.data.err && this.data.err.message) return `Error '${this.message}', inner error: '${this.data.err.message}'`;
85 return this.message;
86 });
87
88 this.message = message;
89 this.data = data;
90 }
91
92}
93
94exports.ExtendedError = ExtendedError;
95
96function throwError(message) {
97 throw new Error(message);
98}
99
100function throwUserError(message) {
101 throw new UserError(message);
102}
103
104function throwUnexpectedArgError(argName, argValue) {
105 throw new ExtendedError('Unexpected arg value', {
106 argName,
107 argValue
108 });
109}
110
111function throwUnsetArg(argName) {
112 throw new ExtendedError('Arg is unset', {
113 argName
114 });
115}
116
117function throwExtendedError(message, data) {
118 throw new ExtendedError(message, data || {});
119}
120
121function isError(obj) {
122 return obj instanceof Error;
123}
124//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclV0aWxzLmpzIl0sIm5hbWVzIjpbIlVzZXJFcnJvciIsImNvbnN0cnVjdG9yIiwidXNlck1lc3NhZ2UiLCJTdGF0dXNFcnJvciIsIkVycm9yIiwicHVibGljRGF0YU9yTWVzc2FnZSIsInN0YXR1cyIsImRhdGEiLCJtZXNzYWdlIiwicHVibGljRGF0YSIsImV4dHJhUHVibGljRGF0YSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJFeHRlbmRlZEVycm9yIiwiZXJyIiwidGhyb3dFcnJvciIsInRocm93VXNlckVycm9yIiwidGhyb3dVbmV4cGVjdGVkQXJnRXJyb3IiLCJhcmdOYW1lIiwiYXJnVmFsdWUiLCJ0aHJvd1Vuc2V0QXJnIiwidGhyb3dFeHRlbmRlZEVycm9yIiwiaXNFcnJvciIsIm9iaiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7Ozs7O0FBRU8sTUFBTUEsU0FBTixDQUFnQjtBQUdyQkMsRUFBQUEsV0FBVyxDQUFDQyxXQUFELEVBQXNCO0FBQUE7O0FBQy9CLFNBQUtBLFdBQUwsR0FBbUJBLFdBQW5CO0FBQ0Q7O0FBTG9COzs7O0FBUWhCLE1BQU1DLFdBQU4sU0FBMEJDLEtBQTFCLENBQWdDO0FBUXJDSCxFQUFBQSxXQUFXLENBQUNJLG1CQUFELEVBQW9EQyxNQUFwRCxFQUFvRUMsSUFBcEUsRUFBK0U7QUFDeEYsVUFBTUMsUUFBTyxHQUFHLE9BQU9ILG1CQUFQLEtBQStCLFFBQS9CLEdBQTBDQSxtQkFBMUMsR0FBZ0VBLG1CQUFtQixDQUFDRyxPQUFwRzs7QUFDQSxVQUFNQSxRQUFOOztBQUZ3Rjs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQSxzQ0FXL0UsTUFBYztBQUN2QixVQUFJLEtBQUtGLE1BQUwsSUFBZSxJQUFuQixFQUNFLE9BQU8sS0FBS0UsT0FBWjs7QUFDRiwrQkFBd0MsS0FBS0MsVUFBN0M7QUFBQSxZQUFNO0FBQUVELFFBQUFBO0FBQUYsT0FBTjtBQUFBLFlBQW9CRSxlQUFwQiwyREFIdUIsQ0FHaUM7OztBQUN4RCxhQUFRLFVBQVMsS0FBS0osTUFBTyxXQUFVLEtBQUtFLE9BQVEsR0FBRUcsTUFBTSxDQUFDQyxJQUFQLENBQVlGLGVBQVosRUFBNkJHLE1BQTdCLEdBQXVDLGlCQUFnQixnQ0FBVUgsZUFBVixDQUEyQixFQUFsRixHQUFzRixFQUFJLEdBQUcsS0FBS0gsSUFBTCxHQUFhLFdBQVUsZ0NBQVUsS0FBS0EsSUFBZixDQUFxQixFQUE1QyxHQUFnRCxFQUFJLEVBQXZNO0FBQ0QsS0FoQnlGOztBQUl4RixTQUFLQyxPQUFMLEdBQWVBLFFBQWY7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLE9BQU9KLG1CQUFQLEtBQStCLFFBQS9CLEdBQTBDO0FBQUVHLE1BQUFBLE9BQU8sRUFBRUg7QUFBWCxLQUExQyxHQUE2RUEsbUJBQS9GO0FBQ0EsU0FBS0MsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0Q7O0FBaEJvQzs7OztBQTJCaEMsTUFBTU8sYUFBTixTQUE0QlYsS0FBNUIsQ0FBa0M7QUFNdkNILEVBQUFBLFdBQVcsQ0FBQ08sT0FBRCxFQUFrQkQsSUFBbEIsRUFBZ0M7QUFDekMsVUFBTUMsT0FBTjs7QUFEeUM7O0FBQUE7O0FBQUEsc0NBUWhDLE1BQWM7QUFDdkIsVUFBSSxLQUFLRCxJQUFMLENBQVVDLE9BQWQsRUFDRSxPQUFRLFVBQVMsS0FBS0EsT0FBUSxvQkFBbUIsS0FBS0QsSUFBTCxDQUFVQyxPQUFRLEdBQW5FO0FBQ0YsVUFBSSxLQUFLRCxJQUFMLENBQVVRLEdBQVYsSUFBaUIsS0FBS1IsSUFBTCxDQUFVUSxHQUFWLENBQWNQLE9BQW5DLEVBQ0UsT0FBUSxVQUFTLEtBQUtBLE9BQVEsb0JBQW1CLEtBQUtELElBQUwsQ0FBVVEsR0FBVixDQUFjUCxPQUFRLEdBQXZFO0FBQ0YsYUFBTyxLQUFLQSxPQUFaO0FBQ0QsS0FkMEM7O0FBR3pDLFNBQUtBLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFNBQUtELElBQUwsR0FBWUEsSUFBWjtBQUNEOztBQVhzQzs7OztBQXdCbEMsU0FBU1MsVUFBVCxDQUFvQlIsT0FBcEIsRUFBcUM7QUFDMUMsUUFBTSxJQUFJSixLQUFKLENBQVVJLE9BQVYsQ0FBTjtBQUNEOztBQUVNLFNBQVNTLGNBQVQsQ0FBd0JULE9BQXhCLEVBQXlDO0FBQzlDLFFBQU0sSUFBSVIsU0FBSixDQUFjUSxPQUFkLENBQU47QUFDRDs7QUFFTSxTQUFTVSx1QkFBVCxDQUFpQ0MsT0FBakMsRUFBa0RDLFFBQWxELEVBQWlFO0FBQ3RFLFFBQU0sSUFBSU4sYUFBSixDQUFrQixzQkFBbEIsRUFBMEM7QUFBRUssSUFBQUEsT0FBRjtBQUFXQyxJQUFBQTtBQUFYLEdBQTFDLENBQU47QUFDRDs7QUFFTSxTQUFTQyxhQUFULENBQXVCRixPQUF2QixFQUF3QztBQUM3QyxRQUFNLElBQUlMLGFBQUosQ0FBa0IsY0FBbEIsRUFBa0M7QUFBRUssSUFBQUE7QUFBRixHQUFsQyxDQUFOO0FBQ0Q7O0FBRU0sU0FBU0csa0JBQVQsQ0FBNEJkLE9BQTVCLEVBQTZDRCxJQUE3QyxFQUE0RDtBQUNqRSxRQUFNLElBQUlPLGFBQUosQ0FBa0JOLE9BQWxCLEVBQTJCRCxJQUFJLElBQUksRUFBbkMsQ0FBTjtBQUNEOztBQUVNLFNBQVNnQixPQUFULENBQWlCQyxHQUFqQixFQUFvQztBQUN6QyxTQUFPQSxHQUFHLFlBQVlwQixLQUF0QjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcblxuaW1wb3J0IHN0cmluZ2lmeSBmcm9tICdqc29uLXN0cmluZ2lmeS1zYWZlJ1xuXG5leHBvcnQgY2xhc3MgVXNlckVycm9yIHtcbiAgdXNlck1lc3NhZ2U6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHVzZXJNZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXJNZXNzYWdlID0gdXNlck1lc3NhZ2VcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RhdHVzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cbiAgbWVzc2FnZTogc3RyaW5nXG4gIHB1YmxpY0RhdGE6IHsgbWVzc2FnZTogc3RyaW5nIH1cbiAgc3RhdHVzOiBudW1iZXJcbiAgZGF0YTogP3t9XG5cblxuICBjb25zdHJ1Y3RvcihwdWJsaWNEYXRhT3JNZXNzYWdlOiBzdHJpbmcgfCB7IG1lc3NhZ2U6IHN0cmluZyB9LCBzdGF0dXM6IG51bWJlciwgZGF0YTogP3t9KSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHR5cGVvZiBwdWJsaWNEYXRhT3JNZXNzYWdlID09PSAnc3RyaW5nJyA/IHB1YmxpY0RhdGFPck1lc3NhZ2UgOiBwdWJsaWNEYXRhT3JNZXNzYWdlLm1lc3NhZ2VcbiAgICBzdXBlcihtZXNzYWdlKVxuXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICAgIHRoaXMucHVibGljRGF0YSA9IHR5cGVvZiBwdWJsaWNEYXRhT3JNZXNzYWdlID09PSAnc3RyaW5nJyA/IHsgbWVzc2FnZTogcHVibGljRGF0YU9yTWVzc2FnZSB9IDogcHVibGljRGF0YU9yTWVzc2FnZVxuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzXG4gICAgdGhpcy5kYXRhID0gZGF0YVxuICB9XG5cblxuICB0b1N0cmluZyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIGlmICh0aGlzLnN0YXR1cyA9PSBudWxsKVxuICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVxuICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uZXh0cmFQdWJsaWNEYXRhIH0gPSB0aGlzLnB1YmxpY0RhdGEgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHJldHVybiBgU3RhdHVzICR7dGhpcy5zdGF0dXN9IGVycm9yOiAke3RoaXMubWVzc2FnZX0ke09iamVjdC5rZXlzKGV4dHJhUHVibGljRGF0YSkubGVuZ3RoID8gYCwgcHVibGljRGF0YTogJHtzdHJpbmdpZnkoZXh0cmFQdWJsaWNEYXRhKX1gIDogJycgfSR7IHRoaXMuZGF0YSA/IGAsIGRhdGE6ICR7c3RyaW5naWZ5KHRoaXMuZGF0YSl9YCA6ICcnIH1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4dGVuZGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cbiAgZGF0YTogT2JqZWN0XG4gIG1lc3NhZ2U6IHN0cmluZ1xuXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBkYXRhOiBPYmplY3QpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgfVxuXG5cbiAgdG9TdHJpbmcgPSAoKTogc3RyaW5nID0+IHtcbiAgICBpZiAodGhpcy5kYXRhLm1lc3NhZ2UpXG4gICAgICByZXR1cm4gYEVycm9yICcke3RoaXMubWVzc2FnZX0nLCBpbm5lciBlcnJvcjogJyR7dGhpcy5kYXRhLm1lc3NhZ2V9J2BcbiAgICBpZiAodGhpcy5kYXRhLmVyciAmJiB0aGlzLmRhdGEuZXJyLm1lc3NhZ2UpXG4gICAgICByZXR1cm4gYEVycm9yICcke3RoaXMubWVzc2FnZX0nLCBpbm5lciBlcnJvcjogJyR7dGhpcy5kYXRhLmVyci5tZXNzYWdlfSdgXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZVxuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dVc2VyRXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIHRocm93IG5ldyBVc2VyRXJyb3IobWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93VW5leHBlY3RlZEFyZ0Vycm9yKGFyZ05hbWU6IHN0cmluZywgYXJnVmFsdWU6IGFueSkgeyBcbiAgdGhyb3cgbmV3IEV4dGVuZGVkRXJyb3IoJ1VuZXhwZWN0ZWQgYXJnIHZhbHVlJywgeyBhcmdOYW1lLCBhcmdWYWx1ZSB9KSBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93VW5zZXRBcmcoYXJnTmFtZTogc3RyaW5nKSB7IFxuICB0aHJvdyBuZXcgRXh0ZW5kZWRFcnJvcignQXJnIGlzIHVuc2V0JywgeyBhcmdOYW1lIH0pIFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dFeHRlbmRlZEVycm9yKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogP09iamVjdCkgeyBcbiAgdGhyb3cgbmV3IEV4dGVuZGVkRXJyb3IobWVzc2FnZSwgZGF0YSB8fCB7fSkgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Vycm9yKG9iajogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBFcnJvclxufSJdfQ==
\No newline at end of file