1 | import _ from 'lodash';
|
2 | import inherits from 'inherits';
|
3 |
|
4 | function CraftAiError(message, extraProperties) {
|
5 | if (typeof Error.captureStackTrace === 'function') {
|
6 | Error.captureStackTrace(this, this.constructor);
|
7 | }
|
8 | else {
|
9 | this.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old';
|
10 | }
|
11 |
|
12 | this.name = this.constructor.name;
|
13 | this.message = message || 'Unknown error';
|
14 |
|
15 | if (extraProperties) {
|
16 | _.forEach(extraProperties, (value, key) => {
|
17 | this[key] = value;
|
18 | });
|
19 | }
|
20 | }
|
21 |
|
22 | inherits(CraftAiError, Error);
|
23 |
|
24 | function createCustomError(name, message) {
|
25 | function CraftAiCustomError() {
|
26 | const args = Array.prototype.slice.call(arguments, 0);
|
27 |
|
28 |
|
29 | if (typeof args[0] !== 'string') {
|
30 | args.unshift(message);
|
31 | }
|
32 |
|
33 | CraftAiError.apply(this, args);
|
34 | this.name = name;
|
35 | }
|
36 |
|
37 | inherits(CraftAiCustomError, CraftAiError);
|
38 |
|
39 | return CraftAiCustomError;
|
40 | }
|
41 |
|
42 | let CraftAiUnknownError = createCustomError(
|
43 | 'CraftAiUnknownError',
|
44 | 'Unknown error occured'
|
45 | );
|
46 |
|
47 | let CraftAiNetworkError = createCustomError(
|
48 | 'CraftAiNetworkError',
|
49 | 'Network issue, see err.more for details'
|
50 | );
|
51 |
|
52 | let CraftAiCredentialsError = createCustomError(
|
53 | 'CraftAiCredentialsError',
|
54 | 'Credentials error, make sure the given token is valid'
|
55 | );
|
56 |
|
57 | let CraftAiInternalError = createCustomError(
|
58 | 'CraftAiInternalError',
|
59 | 'Internal Error, see err.more for details'
|
60 | );
|
61 |
|
62 | let CraftAiBadRequestError = createCustomError(
|
63 | 'CraftAiBadRequestError',
|
64 | 'Bad Request, see err.more for details'
|
65 | );
|
66 |
|
67 | let CraftAiDecisionError = createCustomError(
|
68 | 'CraftAiDecisionError',
|
69 | 'Error while taking a decision, see err.metadata for details'
|
70 | );
|
71 |
|
72 | let CraftAiNullDecisionError = createCustomError(
|
73 | 'CraftAiNullDecisionError',
|
74 | 'Taken decision is null, see err.metadata for details'
|
75 | );
|
76 |
|
77 | let CraftAiTimeError = createCustomError(
|
78 | 'CraftAiTimeError',
|
79 | 'Time error, see err.more for details'
|
80 | );
|
81 |
|
82 | let CraftAiLongRequestTimeOutError = createCustomError(
|
83 | 'CraftAiLongRequestTimeOutError',
|
84 | 'Request timed out because the computation is not finished, please try again'
|
85 | );
|
86 |
|
87 | export {
|
88 | CraftAiBadRequestError,
|
89 | CraftAiCredentialsError,
|
90 | CraftAiDecisionError,
|
91 | CraftAiError,
|
92 | CraftAiInternalError,
|
93 | CraftAiNetworkError,
|
94 | CraftAiNullDecisionError,
|
95 | CraftAiTimeError,
|
96 | CraftAiLongRequestTimeOutError,
|
97 | CraftAiUnknownError
|
98 | };
|