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;
@@ -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
- JSON.stringify(extraInfos, null, 2)
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 = () => { } } = (0, config_1.configFn)();
97
- onError(msg, options);
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 _a = this.options, { err, noStackTrace = false, ressource, extraInfosRenderer = extraInfosRendererDefault } = _a, extraInfosRaw = __rest(_a, ["err", "noStackTrace", "ressource", "extraInfosRenderer"]);
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 = `${err.code ? err.code + ': ' : ''}${err.message || err.msg || err.toString()}`;
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":"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"}
1
+ {"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/error-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topkat-utils",
3
- "version": "1.2.71",
3
+ "version": "1.2.73",
4
4
  "type": "commonjs",
5
5
  "types": "index.ts",
6
6
  "main": "dist",
@@ -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
- JSON.stringify(extraInfos, null, 2)
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: { [k: string]: any } = {}
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 = () => { /** */ } } = configFn()
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
- if (err) this.errorDescription.originalError = `${err.code ? err.code + ': ' : ''}${err.message || err.msg || err.toString()}`
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