topkat-utils 1.2.71 → 1.2.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -12,11 +12,17 @@ export declare const failSafe: typeof tryCatch;
|
|
|
12
12
|
export declare class DescriptiveError extends Error {
|
|
13
13
|
/** Full error infos, extra infos + message and code...etc as object */
|
|
14
14
|
errorDescription: {
|
|
15
|
+
code: number;
|
|
16
|
+
msg: string;
|
|
17
|
+
message: string;
|
|
18
|
+
originalError?: string;
|
|
15
19
|
[k: string]: any;
|
|
16
20
|
};
|
|
17
21
|
/** Http code. Eg: 404, 403... */
|
|
18
22
|
code?: number;
|
|
19
23
|
msg: string;
|
|
24
|
+
/** Alias since .msg is not always obvious to find */
|
|
25
|
+
message: string;
|
|
20
26
|
options: ErrorOptions;
|
|
21
27
|
/** Logging of the error is async, unless disabled, so that it wait one frame to allow to log it manually */
|
|
22
28
|
hasBeenLogged: boolean;
|
package/dist/src/error-utils.js
CHANGED
|
@@ -20,6 +20,7 @@ const isset_1 = require("./isset");
|
|
|
20
20
|
const is_empty_1 = require("./is-empty");
|
|
21
21
|
const clean_stack_trace_1 = require("./clean-stack-trace");
|
|
22
22
|
const logger_utils_1 = require("./logger-utils");
|
|
23
|
+
const remove_circular_json_stringify_1 = require("./remove-circular-json-stringify");
|
|
23
24
|
function errIfNotSet(objOfVarNamesWithValues) { return errXXXIfNotSet(422, false, objOfVarNamesWithValues); }
|
|
24
25
|
exports.errIfNotSet = errIfNotSet;
|
|
25
26
|
function err500IfNotSet(objOfVarNamesWithValues) { return errXXXIfNotSet(500, false, objOfVarNamesWithValues); }
|
|
@@ -65,7 +66,7 @@ exports.failSafe = tryCatch; // ALIAS
|
|
|
65
66
|
function extraInfosRendererDefault(extraInfos) {
|
|
66
67
|
return [
|
|
67
68
|
'== EXTRA INFOS ==',
|
|
68
|
-
|
|
69
|
+
(0, remove_circular_json_stringify_1.removeCircularJSONstringify)(extraInfos, 2)
|
|
69
70
|
];
|
|
70
71
|
}
|
|
71
72
|
class DescriptiveError extends Error {
|
|
@@ -78,6 +79,7 @@ class DescriptiveError extends Error {
|
|
|
78
79
|
this.logs = [];
|
|
79
80
|
delete options.errMsgId;
|
|
80
81
|
this.msg = msg;
|
|
82
|
+
this.message = msg;
|
|
81
83
|
const { doNotWaitOneFrameForLog = false } = options, optionsClean = __rest(options, ["doNotWaitOneFrameForLog"]);
|
|
82
84
|
this.options = optionsClean;
|
|
83
85
|
if (optionsClean.err)
|
|
@@ -93,13 +95,16 @@ class DescriptiveError extends Error {
|
|
|
93
95
|
if (!this.hasBeenLogged)
|
|
94
96
|
this.log();
|
|
95
97
|
});
|
|
96
|
-
const { onError
|
|
97
|
-
|
|
98
|
+
const { onError } = (0, config_1.configFn)();
|
|
99
|
+
if (typeof onError === 'function')
|
|
100
|
+
onError(msg, options);
|
|
98
101
|
}
|
|
99
102
|
/** Compute extraInfos and parse options */
|
|
100
103
|
parseError(forCli = false) {
|
|
104
|
+
var _a;
|
|
105
|
+
var _b;
|
|
101
106
|
const errorLogs = [];
|
|
102
|
-
const
|
|
107
|
+
const _c = this.options, { err, noStackTrace = false, ressource, extraInfosRenderer = extraInfosRendererDefault } = _c, extraInfosRaw = __rest(_c, ["err", "noStackTrace", "ressource", "extraInfosRenderer"]);
|
|
103
108
|
let { code } = this.options;
|
|
104
109
|
const extraInfos = Object.assign(Object.assign({}, extraInfosRaw), (this.options.extraInfos || {}));
|
|
105
110
|
this.code = code || 500;
|
|
@@ -144,10 +149,11 @@ class DescriptiveError extends Error {
|
|
|
144
149
|
this.code = code || 500;
|
|
145
150
|
if (this.options.doNotDisplayCode || (this.options.hasOwnProperty('code') && !(0, isset_1.isset)(this.options.code)))
|
|
146
151
|
delete this.code;
|
|
147
|
-
this.errorDescription = Object.assign({ msg: this.msg, code,
|
|
152
|
+
this.errorDescription = Object.assign({ msg: this.msg, message: this.msg, code,
|
|
148
153
|
ressource, originalError: err }, extraInfos);
|
|
154
|
+
(_a = (_b = this.errorDescription).originalError) !== null && _a !== void 0 ? _a : (_b.originalError = '');
|
|
149
155
|
if (err)
|
|
150
|
-
this.errorDescription.originalError
|
|
156
|
+
this.errorDescription.originalError += `${err.code ? err.code + ': ' : ''}${err.message || err.msg || err.toString()}`;
|
|
151
157
|
this.logs = errorLogs;
|
|
152
158
|
return errorLogs;
|
|
153
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/error-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,cAAc;AACd,0CAA0C;AAC1C,qCAAmC;AACnC,mCAA+B;AAC/B,yCAAoC;AAEpC,2DAAqD;AACrD,iDAAkC;
|
|
1
|
+
{"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/error-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/error-utils.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { ErrorOptions } from './types'
|
|
|
8
8
|
import { cleanStackTrace } from './clean-stack-trace'
|
|
9
9
|
import { C } from './logger-utils'
|
|
10
10
|
export { type ErrorOptions } from './types'
|
|
11
|
+
import { removeCircularJSONstringify } from './remove-circular-json-stringify'
|
|
11
12
|
|
|
12
13
|
export function errIfNotSet(objOfVarNamesWithValues) { return errXXXIfNotSet(422, false, objOfVarNamesWithValues) }
|
|
13
14
|
|
|
@@ -48,16 +49,26 @@ export const failSafe = tryCatch // ALIAS
|
|
|
48
49
|
function extraInfosRendererDefault(extraInfos) {
|
|
49
50
|
return [
|
|
50
51
|
'== EXTRA INFOS ==',
|
|
51
|
-
|
|
52
|
+
removeCircularJSONstringify(extraInfos, 2)
|
|
52
53
|
]
|
|
53
54
|
}
|
|
54
55
|
|
|
56
|
+
|
|
57
|
+
|
|
55
58
|
export class DescriptiveError extends Error {
|
|
56
59
|
/** Full error infos, extra infos + message and code...etc as object */
|
|
57
|
-
errorDescription: {
|
|
60
|
+
errorDescription: {
|
|
61
|
+
code: number
|
|
62
|
+
msg: string
|
|
63
|
+
message: string
|
|
64
|
+
originalError?: string
|
|
65
|
+
[k: string]: any
|
|
66
|
+
} = {} as any
|
|
58
67
|
/** Http code. Eg: 404, 403... */
|
|
59
68
|
code?: number
|
|
60
69
|
msg: string
|
|
70
|
+
/** Alias since .msg is not always obvious to find */
|
|
71
|
+
message: string
|
|
61
72
|
options: ErrorOptions
|
|
62
73
|
/** Logging of the error is async, unless disabled, so that it wait one frame to allow to log it manually */
|
|
63
74
|
hasBeenLogged = false
|
|
@@ -67,6 +78,7 @@ export class DescriptiveError extends Error {
|
|
|
67
78
|
super(msg)
|
|
68
79
|
delete options.errMsgId
|
|
69
80
|
this.msg = msg
|
|
81
|
+
this.message = msg
|
|
70
82
|
const { doNotWaitOneFrameForLog = false, ...optionsClean } = options
|
|
71
83
|
this.options = optionsClean
|
|
72
84
|
if (optionsClean.err) optionsClean.err.hasBeenLogged = true
|
|
@@ -81,8 +93,8 @@ export class DescriptiveError extends Error {
|
|
|
81
93
|
if (!this.hasBeenLogged) this.log()
|
|
82
94
|
})
|
|
83
95
|
|
|
84
|
-
const { onError
|
|
85
|
-
onError(msg, options)
|
|
96
|
+
const { onError } = configFn()
|
|
97
|
+
if (typeof onError === 'function') onError(msg, options)
|
|
86
98
|
|
|
87
99
|
}
|
|
88
100
|
/** Compute extraInfos and parse options */
|
|
@@ -139,12 +151,15 @@ export class DescriptiveError extends Error {
|
|
|
139
151
|
if (this.options.doNotDisplayCode || (this.options.hasOwnProperty('code') && !isset(this.options.code))) delete this.code
|
|
140
152
|
this.errorDescription = {
|
|
141
153
|
msg: this.msg,
|
|
154
|
+
message: this.msg,
|
|
142
155
|
code,
|
|
143
156
|
ressource,
|
|
144
157
|
originalError: err,
|
|
145
158
|
...extraInfos,
|
|
146
159
|
}
|
|
147
|
-
|
|
160
|
+
|
|
161
|
+
this.errorDescription.originalError ??= ''
|
|
162
|
+
if (err) this.errorDescription.originalError += `${err.code ? err.code + ': ' : ''}${err.message || err.msg || err.toString()}`
|
|
148
163
|
|
|
149
164
|
this.logs = errorLogs
|
|
150
165
|
|