@kk-garden/shared 1.4.4 → 1.4.5

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.
@@ -3,7 +3,7 @@ export class AppError extends Error {
3
3
  context;
4
4
  error;
5
5
  get isServer() {
6
- return !!(this.status && this.status > 500 && this.status < 600);
6
+ return !!(this.status && this.status >= 500 && this.status < 600);
7
7
  }
8
8
  get isClient() {
9
9
  return !!(this.status && this.status >= 400 && this.status < 500);
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAU;IAChB,OAAO,CAAc;IACrB,KAAK,CAAS;IAEd,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAkB;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAU;IAChB,OAAO,CAAc;IACrB,KAAK,CAAS;IAEd,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAkB;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"handle-error.d.ts","sourceRoot":"","sources":["../../src/errors/handle-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGjE,eAAO,MAAM,WAAW,GAAI,IAAI,SAAS,UAAU,GAAG,UAAU,EAC9D,GAAG,OAAO,KACT,WAAW,CAAC,KAAK,EAAE,IAAI,CAoCzB,CAAC"}
1
+ {"version":3,"file":"handle-error.d.ts","sourceRoot":"","sources":["../../src/errors/handle-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwBjE,eAAO,MAAM,WAAW,GAAI,IAAI,SAAS,UAAU,GAAG,UAAU,EAC9D,GAAG,OAAO,KACT,WAAW,CAAC,KAAK,EAAE,IAAI,CAuCzB,CAAC"}
@@ -1,27 +1,46 @@
1
1
  import { AppError } from './app-error.js';
2
+ const getErrorStatus = (error) => {
3
+ const candidates = [
4
+ 'status' in error ? error.status : undefined,
5
+ 'statusCode' in error ? error.statusCode : undefined,
6
+ 'code' in error ? error.code : undefined,
7
+ ];
8
+ for (const candidate of candidates) {
9
+ const status = typeof candidate === 'number'
10
+ ? candidate
11
+ : typeof candidate === 'string' && candidate.trim() !== ''
12
+ ? Number(candidate)
13
+ : NaN;
14
+ if (Number.isInteger(status) && status >= 400 && status < 600) {
15
+ return status;
16
+ }
17
+ }
18
+ return 500;
19
+ };
2
20
  export const handleError = (e) => {
3
- let statusCode = 0;
21
+ if (e instanceof AppError) {
22
+ return { success: false, errors: [e] };
23
+ }
24
+ let statusCode = 500;
4
25
  let message = 'Unknown error';
5
26
  if (e instanceof Error) {
6
- message = `${e.message}`;
7
27
  return {
8
28
  success: false,
9
29
  errors: [
10
- new AppError({ message, status: 0, context: JSON.stringify(e) }),
30
+ new AppError({
31
+ message: e.message,
32
+ status: getErrorStatus(e),
33
+ error: e,
34
+ }),
11
35
  ],
12
36
  };
13
37
  }
14
38
  if (e && typeof e === 'object') {
15
- if ('code' in e) {
16
- statusCode = parseInt(e.code);
17
- }
18
- else if ('status' in e) {
19
- statusCode = parseInt(e.status);
20
- }
21
- else if ('statusCode' in e) {
22
- statusCode = parseInt(e.statusCode);
39
+ statusCode = getErrorStatus(e);
40
+ if ('message' in e && typeof e.message === 'string') {
41
+ message = e.message;
23
42
  }
24
- if ('data' in e) {
43
+ else if ('data' in e) {
25
44
  message = JSON.stringify(e.data);
26
45
  }
27
46
  else if ('description' in e) {
@@ -1 +1 @@
1
- {"version":3,"file":"handle-error.js","sourceRoot":"","sources":["../../src/errors/handle-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAU,EACgB,EAAE;IAC5B,IAAI,UAAU,GAAW,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAW,eAAe,CAAC;IACtC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACzB,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAgB,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAoB,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"handle-error.js","sourceRoot":"","sources":["../../src/errors/handle-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,UAAU,GAAc;QAC5B,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC5C,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACpD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACzC,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GACV,OAAO,SAAS,KAAK,QAAQ;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;gBACxD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC;QACZ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAC9D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAU,EACgB,EAAE;IAC5B,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,UAAU,GAAW,GAAG,CAAC;IAC7B,IAAI,OAAO,GAAW,eAAe,CAAC;IACtC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN,IAAI,QAAQ,CAAC;oBACX,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;oBACzB,KAAK,EAAE,CAAC;iBACT,CAAC;aACH;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACtB,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kk-garden/shared",
3
- "version": "1.4.4",
3
+ "version": "1.4.5",
4
4
  "description": "Kiryl Kartsialeu EN69783 diploma project shared package",
5
5
  "author": "Kiryl Kartsialeu",
6
6
  "type": "module",