UNPKG

823 BJavaScriptView Raw
1/**
2 * Allow code and level inputs on Errlop.
3 * We do this instead of a class extension, as class extensions do not interop well on node 0.8, which is our target.
4 */
5export function errtion(opts, parent) {
6 // extract opts
7 var code = opts.code, level = opts.level;
8 var message = opts.message;
9 if (parent == null)
10 parent = opts.parent;
11 // append message
12 if (code)
13 message = code + ": " + message;
14 if (level)
15 message = level + ": " + message;
16 if (parent)
17 message = message + "\n\u21AA" + (parent.message || parent);
18 // create error
19 var error = new Error(message);
20 // add properties
21 if (code)
22 error.code = code;
23 if (level)
24 error.level = level;
25 if (parent)
26 error.parent = parent;
27 // return
28 return error;
29}