| 'use strict'; |
| |
| var util = require('util'); |
| var assert = require('assert'); |
| var RedisError = require('redis-parser').RedisError; |
| var ADD_STACKTRACE = false; |
| |
| function AbortError (obj, stack) { |
| assert(obj, 'The options argument is required'); |
| assert.strictEqual(typeof obj, 'object', 'The options argument has to be of type object'); |
| |
| RedisError.call(this, obj.message, ADD_STACKTRACE); |
| Object.defineProperty(this, 'message', { |
| value: obj.message || '', |
| configurable: true, |
| writable: true |
| }); |
| if (stack || stack === undefined) { |
| Error.captureStackTrace(this, AbortError); |
| } |
| for (var keys = Object.keys(obj), key = keys.pop(); key; key = keys.pop()) { |
| this[key] = obj[key]; |
| } |
| } |
| |
| function AggregateError (obj) { |
| assert(obj, 'The options argument is required'); |
| assert.strictEqual(typeof obj, 'object', 'The options argument has to be of type object'); |
| |
| AbortError.call(this, obj, ADD_STACKTRACE); |
| Object.defineProperty(this, 'message', { |
| value: obj.message || '', |
| configurable: true, |
| writable: true |
| }); |
| Error.captureStackTrace(this, AggregateError); |
| for (var keys = Object.keys(obj), key = keys.pop(); key; key = keys.pop()) { |
| this[key] = obj[key]; |
| } |
| } |
| |
| util.inherits(AbortError, RedisError); |
| util.inherits(AggregateError, AbortError); |
| |
| Object.defineProperty(AbortError.prototype, 'name', { |
| value: 'AbortError', |
| configurable: true, |
| writable: true |
| }); |
| Object.defineProperty(AggregateError.prototype, 'name', { |
| value: 'AggregateError', |
| configurable: true, |
| writable: true |
| }); |
| |
| module.exports = { |
| AbortError: AbortError, |
| AggregateError: AggregateError |
| }; |