@nmxjs/api 1.3.2 → 1.3.4

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.
@@ -36,6 +36,7 @@ let RpcExceptionInterceptor = class RpcExceptionInterceptor {
36
36
  })}`);
37
37
  }
38
38
  }), (0, rxjs_1.catchError)(e => {
39
+ var _a;
39
40
  const message = typeof (e === null || e === void 0 ? void 0 : e.message) === 'string' ? e.message : String(e);
40
41
  const splitResult = message.split(constants_1.endErrorText);
41
42
  const isProcessed = splitResult.length > 1;
@@ -55,7 +56,7 @@ let RpcExceptionInterceptor = class RpcExceptionInterceptor {
55
56
  serviceName: this.serviceName,
56
57
  path,
57
58
  code: (e === null || e === void 0 ? void 0 : e.code) || 'UNKNOWN RPC',
58
- params: context.getArgByIndex(0),
59
+ params: ((_a = context.getArgByIndex(0)) === null || _a === void 0 ? void 0 : _a.res) === context.getArgByIndex(1) ? undefined : context.getArgByIndex(0),
59
60
  });
60
61
  }
61
62
  const errorPayload = JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"RpcExceptionInterceptor.js","sourceRoot":"","sources":["../../../src/ApiRouterCore/utils/RpcExceptionInterceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcExceptionInterceptor.js","sourceRoot":"","sources":["../../../src/ApiRouterCore/utils/RpcExceptionInterceptor.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ const constants_1 = require("../../ApiRouterCore/constants");
5
5
  function parseRpcError(e) {
6
6
  var _a, _b;
7
7
  const raw = (_b = (_a = e.details) !== null && _a !== void 0 ? _a : e.message) !== null && _b !== void 0 ? _b : '';
8
+ if (!raw.includes(constants_1.endErrorText)) {
9
+ return e;
10
+ }
8
11
  const cleanDetails = raw.split(constants_1.endErrorText)[0];
9
12
  try {
10
13
  const parsed = JSON.parse(cleanDetails);
@@ -17,7 +20,7 @@ function parseRpcError(e) {
17
20
  }
18
21
  catch (parseError) {
19
22
  if (parseError instanceof SyntaxError) {
20
- return new Error(cleanDetails);
23
+ return e;
21
24
  }
22
25
  throw parseError;
23
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parseRpcError.js","sourceRoot":"","sources":["../../../src/ApiService/utils/parseRpcError.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAE7D,SAAgB,aAAa,CAAC,CAAM;;IAClC,MAAM,GAAG,GAAW,MAAA,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,OAAO,mCAAI,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1C,IAAI,MAAM,CAAC,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,IAAI,UAAU,YAAY,WAAW,EAAE,CAAC;YACtC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,UAAU,CAAC;IACnB,CAAC;AACH,CAAC;AAhBD,sCAgBC"}
1
+ {"version":3,"file":"parseRpcError.js","sourceRoot":"","sources":["../../../src/ApiService/utils/parseRpcError.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAE7D,SAAgB,aAAa,CAAC,CAAM;;IAClC,MAAM,GAAG,GAAW,MAAA,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,OAAO,mCAAI,EAAE,CAAC;IAEjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAY,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1C,IAAI,MAAM,CAAC,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,IAAI,UAAU,YAAY,WAAW,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,UAAU,CAAC;IACnB,CAAC;AACH,CAAC;AArBD,sCAqBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmxjs/api",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -24,7 +24,7 @@ describe('parseRpcError', () => {
24
24
  const grpcError = { details: `Plain error text${endErrorText}` };
25
25
  const result = parseRpcError(grpcError);
26
26
 
27
- expect(result.message).toBe('Plain error text');
27
+ expect(result).toBe(grpcError);
28
28
  });
29
29
 
30
30
  it('should handle details without endErrorText marker', () => {
@@ -32,8 +32,7 @@ describe('parseRpcError', () => {
32
32
  const grpcError = { details: payload };
33
33
  const result: any = parseRpcError(grpcError);
34
34
 
35
- expect(result.message).toBe('Error without marker');
36
- expect(result.code).toBe('ERR');
35
+ expect(result).toBe(grpcError);
37
36
  });
38
37
 
39
38
  it('should fallback to details as message when JSON has no message field', () => {
@@ -70,12 +69,12 @@ describe('parseRpcError', () => {
70
69
  expect(result.code).toBe('CASCADE');
71
70
  });
72
71
 
73
- it('should return Error instance', () => {
72
+ it('should return original error when no endErrorText marker', () => {
74
73
  const payload = JSON.stringify({ message: 'test' });
75
74
  const grpcError = { details: payload };
76
75
  const result = parseRpcError(grpcError);
77
76
 
78
- expect(result).toBeInstanceOf(Error);
77
+ expect(result).toBe(grpcError);
79
78
  });
80
79
 
81
80
  it('should parse error.message when details is absent (NATS/TCP)', () => {
@@ -106,4 +105,16 @@ describe('parseRpcError', () => {
106
105
  expect(result.message).toBe('From details');
107
106
  expect(result.code).toBe('DETAILS');
108
107
  });
108
+
109
+ it('should preserve code and statusCode for non-RPC errors', () => {
110
+ const error: any = new Error('Invalid credentials!');
111
+ error.code = 'INVALID_CREDENTIALS_ERROR';
112
+ error.statusCode = 401;
113
+ const result: any = parseRpcError(error);
114
+
115
+ expect(result).toBe(error);
116
+ expect(result.message).toBe('Invalid credentials!');
117
+ expect(result.code).toBe('INVALID_CREDENTIALS_ERROR');
118
+ expect(result.statusCode).toBe(401);
119
+ });
109
120
  });