31ede94d1fa77a61904110609bda262741ad6b9f
[aai/esr-gui.git] /
1 "use strict";
2
3 /**
4  * Creates a new MongoError
5  * @class
6  * @augments Error
7  * @param {string} message The error message
8  * @return {MongoError} A MongoError instance
9  */
10 function MongoError(message) {
11   this.name = 'MongoError';
12   this.message = message;
13   Error.captureStackTrace(this, MongoError);
14 }
15
16 /**
17  * Creates a new MongoError object
18  * @method
19  * @param {object} options The error options
20  * @return {MongoError} A MongoError instance
21  */
22 MongoError.create = function(options) {
23   var err = null;
24
25   if(options instanceof Error) {
26     err = new MongoError(options.message);
27     err.stack = options.stack;
28   } else if(typeof options == 'string') {
29     err = new MongoError(options);
30   } else {
31     err = new MongoError(options.message || options.errmsg || options.$err || "n/a");
32     // Other options
33     for(var name in options) {
34       err[name] = options[name];
35     }
36   }
37
38   return err;
39 }
40
41 // Extend JavaScript error
42 MongoError.prototype = new Error;
43
44 module.exports = MongoError;