You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					117 lines
				
				3.6 KiB
			
		
		
			
		
	
	
					117 lines
				
				3.6 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								var es5 = require("./es5");
							 | 
						||
| 
								 | 
							
								var Objectfreeze = es5.freeze;
							 | 
						||
| 
								 | 
							
								var util = require("./util");
							 | 
						||
| 
								 | 
							
								var inherits = util.inherits;
							 | 
						||
| 
								 | 
							
								var notEnumerableProp = util.notEnumerableProp;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function subError(nameProperty, defaultMessage) {
							 | 
						||
| 
								 | 
							
								    function SubError(message) {
							 | 
						||
| 
								 | 
							
								        if (!(this instanceof SubError)) return new SubError(message);
							 | 
						||
| 
								 | 
							
								        notEnumerableProp(this, "message",
							 | 
						||
| 
								 | 
							
								            typeof message === "string" ? message : defaultMessage);
							 | 
						||
| 
								 | 
							
								        notEnumerableProp(this, "name", nameProperty);
							 | 
						||
| 
								 | 
							
								        if (Error.captureStackTrace) {
							 | 
						||
| 
								 | 
							
								            Error.captureStackTrace(this, this.constructor);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            Error.call(this);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    inherits(SubError, Error);
							 | 
						||
| 
								 | 
							
								    return SubError;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _TypeError, _RangeError;
							 | 
						||
| 
								 | 
							
								var Warning = subError("Warning", "warning");
							 | 
						||
| 
								 | 
							
								var CancellationError = subError("CancellationError", "cancellation error");
							 | 
						||
| 
								 | 
							
								var TimeoutError = subError("TimeoutError", "timeout error");
							 | 
						||
| 
								 | 
							
								var AggregateError = subError("AggregateError", "aggregate error");
							 | 
						||
| 
								 | 
							
								try {
							 | 
						||
| 
								 | 
							
								    _TypeError = TypeError;
							 | 
						||
| 
								 | 
							
								    _RangeError = RangeError;
							 | 
						||
| 
								 | 
							
								} catch(e) {
							 | 
						||
| 
								 | 
							
								    _TypeError = subError("TypeError", "type error");
							 | 
						||
| 
								 | 
							
								    _RangeError = subError("RangeError", "range error");
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var methods = ("join pop push shift unshift slice filter forEach some " +
							 | 
						||
| 
								 | 
							
								    "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for (var i = 0; i < methods.length; ++i) {
							 | 
						||
| 
								 | 
							
								    if (typeof Array.prototype[methods[i]] === "function") {
							 | 
						||
| 
								 | 
							
								        AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								es5.defineProperty(AggregateError.prototype, "length", {
							 | 
						||
| 
								 | 
							
								    value: 0,
							 | 
						||
| 
								 | 
							
								    configurable: false,
							 | 
						||
| 
								 | 
							
								    writable: true,
							 | 
						||
| 
								 | 
							
								    enumerable: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								AggregateError.prototype["isOperational"] = true;
							 | 
						||
| 
								 | 
							
								var level = 0;
							 | 
						||
| 
								 | 
							
								AggregateError.prototype.toString = function() {
							 | 
						||
| 
								 | 
							
								    var indent = Array(level * 4 + 1).join(" ");
							 | 
						||
| 
								 | 
							
								    var ret = "\n" + indent + "AggregateError of:" + "\n";
							 | 
						||
| 
								 | 
							
								    level++;
							 | 
						||
| 
								 | 
							
								    indent = Array(level * 4 + 1).join(" ");
							 | 
						||
| 
								 | 
							
								    for (var i = 0; i < this.length; ++i) {
							 | 
						||
| 
								 | 
							
								        var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "";
							 | 
						||
| 
								 | 
							
								        var lines = str.split("\n");
							 | 
						||
| 
								 | 
							
								        for (var j = 0; j < lines.length; ++j) {
							 | 
						||
| 
								 | 
							
								            lines[j] = indent + lines[j];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        str = lines.join("\n");
							 | 
						||
| 
								 | 
							
								        ret += str + "\n";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    level--;
							 | 
						||
| 
								 | 
							
								    return ret;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function OperationalError(message) {
							 | 
						||
| 
								 | 
							
								    if (!(this instanceof OperationalError))
							 | 
						||
| 
								 | 
							
								        return new OperationalError(message);
							 | 
						||
| 
								 | 
							
								    notEnumerableProp(this, "name", "OperationalError");
							 | 
						||
| 
								 | 
							
								    notEnumerableProp(this, "message", message);
							 | 
						||
| 
								 | 
							
								    this.cause = message;
							 | 
						||
| 
								 | 
							
								    this["isOperational"] = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (message instanceof Error) {
							 | 
						||
| 
								 | 
							
								        notEnumerableProp(this, "message", message.message);
							 | 
						||
| 
								 | 
							
								        notEnumerableProp(this, "stack", message.stack);
							 | 
						||
| 
								 | 
							
								    } else if (Error.captureStackTrace) {
							 | 
						||
| 
								 | 
							
								        Error.captureStackTrace(this, this.constructor);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								inherits(OperationalError, Error);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var errorTypes = Error["__BluebirdErrorTypes__"];
							 | 
						||
| 
								 | 
							
								if (!errorTypes) {
							 | 
						||
| 
								 | 
							
								    errorTypes = Objectfreeze({
							 | 
						||
| 
								 | 
							
								        CancellationError: CancellationError,
							 | 
						||
| 
								 | 
							
								        TimeoutError: TimeoutError,
							 | 
						||
| 
								 | 
							
								        OperationalError: OperationalError,
							 | 
						||
| 
								 | 
							
								        RejectionError: OperationalError,
							 | 
						||
| 
								 | 
							
								        AggregateError: AggregateError
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    es5.defineProperty(Error, "__BluebirdErrorTypes__", {
							 | 
						||
| 
								 | 
							
								        value: errorTypes,
							 | 
						||
| 
								 | 
							
								        writable: false,
							 | 
						||
| 
								 | 
							
								        enumerable: false,
							 | 
						||
| 
								 | 
							
								        configurable: false
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								    Error: Error,
							 | 
						||
| 
								 | 
							
								    TypeError: _TypeError,
							 | 
						||
| 
								 | 
							
								    RangeError: _RangeError,
							 | 
						||
| 
								 | 
							
								    CancellationError: errorTypes.CancellationError,
							 | 
						||
| 
								 | 
							
								    OperationalError: errorTypes.OperationalError,
							 | 
						||
| 
								 | 
							
								    TimeoutError: errorTypes.TimeoutError,
							 | 
						||
| 
								 | 
							
								    AggregateError: errorTypes.AggregateError,
							 | 
						||
| 
								 | 
							
								    Warning: Warning
							 | 
						||
| 
								 | 
							
								};
							 |