@hg-ts/exception 0.7.27 → 0.8.0

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.
@@ -0,0 +1,6 @@
1
+ import { Suite } from '@hg-ts/tests';
2
+ export declare class SerializationBrowserTestSuite extends Suite {
3
+ shouldWorkWithoutCaptureStackTrace(): Promise<void>;
4
+ shouldSplitStackWithLfSeparator(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=serialization.browser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.browser.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.browser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAItB,qBACa,6BAA8B,SAAQ,KAAK;IAE1C,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnD,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7D"}
@@ -0,0 +1,49 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Describe, expect, Suite, Test, } from '@hg-ts/tests';
3
+ import { BaseException } from '../exceptions/index.js';
4
+ import { TestException } from './test.exception.js';
5
+ let SerializationBrowserTestSuite = class SerializationBrowserTestSuite extends Suite {
6
+ async shouldWorkWithoutCaptureStackTrace() {
7
+ const originalCaptureStackTrace = Error.captureStackTrace;
8
+ try {
9
+ Reflect.set(Error, 'captureStackTrace', undefined);
10
+ const exception = new TestException('Browser compatible message');
11
+ expect(exception.message).toEqual('Browser compatible message');
12
+ expect(exception.toJSON().stack).toBeInstanceOf(Array);
13
+ expect(exception.toJSON().stack).not.toEqual([]);
14
+ }
15
+ finally {
16
+ Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
17
+ }
18
+ }
19
+ async shouldSplitStackWithLfSeparator() {
20
+ const stack = [
21
+ 'TestException: Test message',
22
+ 'at new TestException (/test/exception.ts:1:1)',
23
+ 'at browserHandler (/test/browser.ts:2:2)',
24
+ ].join('\n');
25
+ const exception = BaseException.fromError({
26
+ message: 'Test message',
27
+ name: 'Error',
28
+ stack,
29
+ });
30
+ expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
31
+ }
32
+ };
33
+ __decorate([
34
+ Test(),
35
+ __metadata("design:type", Function),
36
+ __metadata("design:paramtypes", []),
37
+ __metadata("design:returntype", Promise)
38
+ ], SerializationBrowserTestSuite.prototype, "shouldWorkWithoutCaptureStackTrace", null);
39
+ __decorate([
40
+ Test(),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", []),
43
+ __metadata("design:returntype", Promise)
44
+ ], SerializationBrowserTestSuite.prototype, "shouldSplitStackWithLfSeparator", null);
45
+ SerializationBrowserTestSuite = __decorate([
46
+ Describe()
47
+ ], SerializationBrowserTestSuite);
48
+ export { SerializationBrowserTestSuite };
49
+ //# sourceMappingURL=serialization.browser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.browser.test.js","sourceRoot":"","sources":["../../src/tests/serialization.browser.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG7C,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,KAAK;IAE1C,AAAN,KAAK,CAAC,kCAAkC;QAE9C,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAE1D,IAAI,CAAC;YAEJ,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;YAElE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAGY,AAAN,KAAK,CAAC,+BAA+B;QAC3C,MAAM,KAAK,GAAG;YACb,6BAA6B;YAC7B,+CAA+C;YAC/C,0CAA0C;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YACzC,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,OAAO;YACb,KAAK;SACI,CAAC,CAAC;QAEZ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;IACxF,CAAC;CACD,CAAA;AAlCa;IADZ,IAAI,EAAE;;;;uFAiBN;AAGY;IADZ,IAAI,EAAE;;;;oFAeN;AAnCW,6BAA6B;IADzC,QAAQ,EAAE;GACE,6BAA6B,CAoCzC"}
@@ -0,0 +1,8 @@
1
+ import { Suite } from '@hg-ts/tests';
2
+ export declare class SerializationNodeTestSuite extends Suite {
3
+ isFromNextTickTest(): Promise<void>;
4
+ isFromImmediateTest(): Promise<void>;
5
+ fromTimeoutTest(): Promise<void>;
6
+ fromIntervalTest(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=serialization.node.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.node.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.node.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAGtB,qBACa,0BAA2B,SAAQ,KAAK;IAEvC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAY9C"}
@@ -0,0 +1,72 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Describe, expect, Suite, Test, } from '@hg-ts/tests';
3
+ import { TestException } from './test.exception.js';
4
+ let SerializationNodeTestSuite = class SerializationNodeTestSuite extends Suite {
5
+ async isFromNextTickTest() {
6
+ return new Promise(resolve => {
7
+ process.nextTick(() => {
8
+ const exception = new TestException('Test message');
9
+ expect(exception.isFromNextTick()).toBeTruthy();
10
+ resolve();
11
+ });
12
+ });
13
+ }
14
+ async isFromImmediateTest() {
15
+ return new Promise(resolve => {
16
+ setImmediate(() => {
17
+ const exception = new TestException('Test message');
18
+ expect(exception.isFromImmediate()).toBeTruthy();
19
+ resolve();
20
+ });
21
+ });
22
+ }
23
+ async fromTimeoutTest() {
24
+ return new Promise(resolve => {
25
+ setTimeout(() => {
26
+ const exception = new TestException('Test message');
27
+ expect(exception.isFromTimer()).toBeTruthy();
28
+ resolve();
29
+ }, 0);
30
+ });
31
+ }
32
+ async fromIntervalTest() {
33
+ let interval;
34
+ return new Promise(resolve => {
35
+ interval = setInterval(() => {
36
+ const exception = new TestException('Test message');
37
+ expect(exception.isFromTimer()).toBeTruthy();
38
+ clearInterval(interval);
39
+ resolve();
40
+ }, 0);
41
+ });
42
+ }
43
+ };
44
+ __decorate([
45
+ Test(),
46
+ __metadata("design:type", Function),
47
+ __metadata("design:paramtypes", []),
48
+ __metadata("design:returntype", Promise)
49
+ ], SerializationNodeTestSuite.prototype, "isFromNextTickTest", null);
50
+ __decorate([
51
+ Test(),
52
+ __metadata("design:type", Function),
53
+ __metadata("design:paramtypes", []),
54
+ __metadata("design:returntype", Promise)
55
+ ], SerializationNodeTestSuite.prototype, "isFromImmediateTest", null);
56
+ __decorate([
57
+ Test(),
58
+ __metadata("design:type", Function),
59
+ __metadata("design:paramtypes", []),
60
+ __metadata("design:returntype", Promise)
61
+ ], SerializationNodeTestSuite.prototype, "fromTimeoutTest", null);
62
+ __decorate([
63
+ Test(),
64
+ __metadata("design:type", Function),
65
+ __metadata("design:paramtypes", []),
66
+ __metadata("design:returntype", Promise)
67
+ ], SerializationNodeTestSuite.prototype, "fromIntervalTest", null);
68
+ SerializationNodeTestSuite = __decorate([
69
+ Describe()
70
+ ], SerializationNodeTestSuite);
71
+ export { SerializationNodeTestSuite };
72
+ //# sourceMappingURL=serialization.node.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.node.test.js","sourceRoot":"","sources":["../../src/tests/serialization.node.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG7C,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,KAAK;IAEvC,AAAN,KAAK,CAAC,kBAAkB;QAC9B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,mBAAmB;QAC/B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,YAAY,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,eAAe;QAC3B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,UAAU,CAAC,GAAG,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACX,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB;QAC5B,IAAI,QAAwB,CAAC;QAC7B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7C,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACX,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAhDa;IADZ,IAAI,EAAE;;;;oEAUN;AAGY;IADZ,IAAI,EAAE;;;;qEAUN;AAGY;IADZ,IAAI,EAAE;;;;iEAUN;AAGY;IADZ,IAAI,EAAE;;;;kEAYN;AAjDW,0BAA0B;IADtC,QAAQ,EAAE;GACE,0BAA0B,CAkDtC"}
@@ -4,11 +4,5 @@ export declare class SerializationTestSuite extends Suite {
4
4
  baseExceptionFromError(): Promise<void>;
5
5
  aggregateExceptionTest(): Promise<void>;
6
6
  syncStackTest(): Promise<void>;
7
- isFromNextTickTest(): Promise<void>;
8
- isFromImmediateTest(): Promise<void>;
9
- fromTimeoutTest(): Promise<void>;
10
- fromIntervalTest(): Promise<void>;
11
- shouldWorkWithoutCaptureStackTrace(): Promise<void>;
12
- shouldSplitStackWithLfSeparator(): Promise<void>;
13
7
  }
14
8
  //# sourceMappingURL=serialization.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAStB,qBACa,sBAAuB,SAAQ,KAAK;IAEnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAevC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnD,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7D"}
1
+ {"version":3,"file":"serialization.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAStB,qBACa,sBAAuB,SAAQ,KAAK;IAEnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAevC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3C"}
@@ -44,70 +44,6 @@ let SerializationTestSuite = class SerializationTestSuite extends Suite {
44
44
  const { stack } = new TestException('Test message').toJSON();
45
45
  expect(stack[0].startsWith(`at ${this.constructor.name}.syncStackTest`)).toBeTruthy();
46
46
  }
47
- async isFromNextTickTest() {
48
- return new Promise(resolve => {
49
- process.nextTick(() => {
50
- const exception = new TestException('Test message');
51
- expect(exception.isFromNextTick()).toBeTruthy();
52
- resolve();
53
- });
54
- });
55
- }
56
- async isFromImmediateTest() {
57
- return new Promise(resolve => {
58
- setImmediate(() => {
59
- const exception = new TestException('Test message');
60
- expect(exception.isFromImmediate()).toBeTruthy();
61
- resolve();
62
- });
63
- });
64
- }
65
- async fromTimeoutTest() {
66
- return new Promise(resolve => {
67
- setTimeout(() => {
68
- const exception = new TestException('Test message');
69
- expect(exception.isFromTimer()).toBeTruthy();
70
- resolve();
71
- }, 0);
72
- });
73
- }
74
- async fromIntervalTest() {
75
- let interval;
76
- return new Promise(resolve => {
77
- interval = setInterval(() => {
78
- const exception = new TestException('Test message');
79
- expect(exception.isFromTimer()).toBeTruthy();
80
- clearInterval(interval);
81
- resolve();
82
- }, 0);
83
- });
84
- }
85
- async shouldWorkWithoutCaptureStackTrace() {
86
- const originalCaptureStackTrace = Error.captureStackTrace;
87
- try {
88
- Reflect.set(Error, 'captureStackTrace', undefined);
89
- const exception = new TestException('Browser compatible message');
90
- expect(exception.message).toEqual('Browser compatible message');
91
- expect(exception.toJSON().stack).toBeInstanceOf(Array);
92
- expect(exception.toJSON().stack).not.toEqual([]);
93
- }
94
- finally {
95
- Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
96
- }
97
- }
98
- async shouldSplitStackWithLfSeparator() {
99
- const stack = [
100
- 'TestException: Test message',
101
- 'at new TestException (/test/exception.ts:1:1)',
102
- 'at browserHandler (/test/browser.ts:2:2)',
103
- ].join('\n');
104
- const exception = BaseException.fromError({
105
- message: 'Test message',
106
- name: 'Error',
107
- stack,
108
- });
109
- expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
110
- }
111
47
  };
112
48
  __decorate([
113
49
  Test(),
@@ -133,42 +69,6 @@ __decorate([
133
69
  __metadata("design:paramtypes", []),
134
70
  __metadata("design:returntype", Promise)
135
71
  ], SerializationTestSuite.prototype, "syncStackTest", null);
136
- __decorate([
137
- Test(),
138
- __metadata("design:type", Function),
139
- __metadata("design:paramtypes", []),
140
- __metadata("design:returntype", Promise)
141
- ], SerializationTestSuite.prototype, "isFromNextTickTest", null);
142
- __decorate([
143
- Test(),
144
- __metadata("design:type", Function),
145
- __metadata("design:paramtypes", []),
146
- __metadata("design:returntype", Promise)
147
- ], SerializationTestSuite.prototype, "isFromImmediateTest", null);
148
- __decorate([
149
- Test(),
150
- __metadata("design:type", Function),
151
- __metadata("design:paramtypes", []),
152
- __metadata("design:returntype", Promise)
153
- ], SerializationTestSuite.prototype, "fromTimeoutTest", null);
154
- __decorate([
155
- Test(),
156
- __metadata("design:type", Function),
157
- __metadata("design:paramtypes", []),
158
- __metadata("design:returntype", Promise)
159
- ], SerializationTestSuite.prototype, "fromIntervalTest", null);
160
- __decorate([
161
- Test(),
162
- __metadata("design:type", Function),
163
- __metadata("design:paramtypes", []),
164
- __metadata("design:returntype", Promise)
165
- ], SerializationTestSuite.prototype, "shouldWorkWithoutCaptureStackTrace", null);
166
- __decorate([
167
- Test(),
168
- __metadata("design:type", Function),
169
- __metadata("design:paramtypes", []),
170
- __metadata("design:returntype", Promise)
171
- ], SerializationTestSuite.prototype, "shouldSplitStackWithLfSeparator", null);
172
72
  SerializationTestSuite = __decorate([
173
73
  Describe()
174
74
  ], SerializationTestSuite);
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.test.js","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,sBAAsB,EACtB,aAAa,EACb,cAAc,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG7C,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,KAAK;IAEnC,AAAN,KAAK,CAAC,UAAU;QACtB,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAGY,AAAN,KAAK,CAAC,sBAAsB;QAClC,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAGY,AAAN,KAAK,CAAC,sBAAsB;QAClC,MAAM,OAAO,GAAG,wBAAwB,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEtD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QAEzD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAGY,AAAN,KAAK,CAAC,aAAa;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAE7D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACxF,CAAC;IAGY,AAAN,KAAK,CAAC,kBAAkB;QAC9B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,mBAAmB;QAC/B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,YAAY,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,eAAe;QAC3B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,UAAU,CAAC,GAAG,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACX,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB;QAC5B,IAAI,QAAwB,CAAC;QAC7B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7C,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACX,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,kCAAkC;QAE9C,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAE1D,IAAI,CAAC;YAEJ,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;YAElE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAGY,AAAN,KAAK,CAAC,+BAA+B;QAC3C,MAAM,KAAK,GAAG;YACb,6BAA6B;YAC7B,+CAA+C;YAC/C,0CAA0C;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YACzC,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,OAAO;YACb,KAAK;SACI,CAAC,CAAC;QAEZ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;IACxF,CAAC;CACD,CAAA;AA1Ia;IADZ,IAAI,EAAE;;;;wDAaN;AAGY;IADZ,IAAI,EAAE;;;;oEAaN;AAGY;IADZ,IAAI,EAAE;;;;oEAeN;AAGY;IADZ,IAAI,EAAE;;;;2DAKN;AAGY;IADZ,IAAI,EAAE;;;;gEAUN;AAGY;IADZ,IAAI,EAAE;;;;iEAUN;AAGY;IADZ,IAAI,EAAE;;;;6DAUN;AAGY;IADZ,IAAI,EAAE;;;;8DAYN;AAGY;IADZ,IAAI,EAAE;;;;gFAiBN;AAGY;IADZ,IAAI,EAAE;;;;6EAeN;AA3IW,sBAAsB;IADlC,QAAQ,EAAE;GACE,sBAAsB,CA4IlC"}
1
+ {"version":3,"file":"serialization.test.js","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hg-ts/exception",
3
- "version": "0.7.27",
3
+ "version": "0.8.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -18,13 +18,15 @@
18
18
  "test:dev": "vitest watch"
19
19
  },
20
20
  "devDependencies": {
21
- "@hg-ts-config/typescript": "0.7.27",
22
- "@hg-ts/linter": "0.7.27",
23
- "@hg-ts/tests": "0.7.27",
24
- "@hg-ts/types": "0.7.27",
21
+ "@hg-ts-config/typescript": "0.8.0",
22
+ "@hg-ts/linter": "0.8.0",
23
+ "@hg-ts/tests": "0.8.0",
24
+ "@hg-ts/types": "0.8.0",
25
25
  "@types/node": "22.19.1",
26
+ "@vitest/browser-playwright": "4.0.14",
26
27
  "@vitest/coverage-v8": "4.0.14",
27
28
  "eslint": "9.18.0",
29
+ "playwright": "1.55.0",
28
30
  "reflect-metadata": "0.2.2",
29
31
  "ts-node": "10.9.2",
30
32
  "tsc-watch": "6.3.0",
@@ -0,0 +1,47 @@
1
+ import {
2
+ Describe,
3
+ expect,
4
+ Suite,
5
+ Test,
6
+ } from '@hg-ts/tests';
7
+ import { BaseException } from '../exceptions/index.js';
8
+ import { TestException } from './test.exception.js';
9
+
10
+ @Describe()
11
+ export class SerializationBrowserTestSuite extends Suite {
12
+ @Test()
13
+ public async shouldWorkWithoutCaptureStackTrace(): Promise<void> {
14
+ // eslint-disable-next-line @typescript/unbound-method
15
+ const originalCaptureStackTrace = Error.captureStackTrace;
16
+
17
+ try {
18
+ // eslint-disable-next-line no-undefined
19
+ Reflect.set(Error, 'captureStackTrace', undefined);
20
+
21
+ const exception = new TestException('Browser compatible message');
22
+
23
+ expect(exception.message).toEqual('Browser compatible message');
24
+ expect(exception.toJSON().stack).toBeInstanceOf(Array);
25
+ expect(exception.toJSON().stack).not.toEqual([]);
26
+ } finally {
27
+ Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
28
+ }
29
+ }
30
+
31
+ @Test()
32
+ public async shouldSplitStackWithLfSeparator(): Promise<void> {
33
+ const stack = [
34
+ 'TestException: Test message',
35
+ 'at new TestException (/test/exception.ts:1:1)',
36
+ 'at browserHandler (/test/browser.ts:2:2)',
37
+ ].join('\n');
38
+
39
+ const exception = BaseException.fromError({
40
+ message: 'Test message',
41
+ name: 'Error',
42
+ stack,
43
+ } as Error);
44
+
45
+ expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
46
+ }
47
+ }
@@ -0,0 +1,60 @@
1
+ import {
2
+ Describe,
3
+ expect,
4
+ Suite,
5
+ Test,
6
+ } from '@hg-ts/tests';
7
+ import { TestException } from './test.exception.js';
8
+
9
+ @Describe()
10
+ export class SerializationNodeTestSuite extends Suite {
11
+ @Test()
12
+ public async isFromNextTickTest(): Promise<void> {
13
+ return new Promise<void>(resolve => {
14
+ process.nextTick(() => {
15
+ const exception = new TestException('Test message');
16
+
17
+ expect(exception.isFromNextTick()).toBeTruthy();
18
+ resolve();
19
+ });
20
+ });
21
+ }
22
+
23
+ @Test()
24
+ public async isFromImmediateTest(): Promise<void> {
25
+ return new Promise<void>(resolve => {
26
+ setImmediate(() => {
27
+ const exception = new TestException('Test message');
28
+
29
+ expect(exception.isFromImmediate()).toBeTruthy();
30
+ resolve();
31
+ });
32
+ });
33
+ }
34
+
35
+ @Test()
36
+ public async fromTimeoutTest(): Promise<void> {
37
+ return new Promise<void>(resolve => {
38
+ setTimeout(() => {
39
+ const exception = new TestException('Test message');
40
+
41
+ expect(exception.isFromTimer()).toBeTruthy();
42
+ resolve();
43
+ }, 0);
44
+ });
45
+ }
46
+
47
+ @Test()
48
+ public async fromIntervalTest(): Promise<void> {
49
+ let interval: NodeJS.Timeout;
50
+ return new Promise<void>(resolve => {
51
+ interval = setInterval(() => {
52
+ const exception = new TestException('Test message');
53
+
54
+ expect(exception.isFromTimer()).toBeTruthy();
55
+ clearInterval(interval);
56
+ resolve();
57
+ }, 0);
58
+ });
59
+ }
60
+ }
@@ -67,90 +67,4 @@ export class SerializationTestSuite extends Suite {
67
67
 
68
68
  expect(stack[0]!.startsWith(`at ${this.constructor.name}.syncStackTest`)).toBeTruthy();
69
69
  }
70
-
71
- @Test()
72
- public async isFromNextTickTest(): Promise<void> {
73
- return new Promise<void>(resolve => {
74
- process.nextTick(() => {
75
- const exception = new TestException('Test message');
76
-
77
- expect(exception.isFromNextTick()).toBeTruthy();
78
- resolve();
79
- });
80
- });
81
- }
82
-
83
- @Test()
84
- public async isFromImmediateTest(): Promise<void> {
85
- return new Promise<void>(resolve => {
86
- setImmediate(() => {
87
- const exception = new TestException('Test message');
88
-
89
- expect(exception.isFromImmediate()).toBeTruthy();
90
- resolve();
91
- });
92
- });
93
- }
94
-
95
- @Test()
96
- public async fromTimeoutTest(): Promise<void> {
97
- return new Promise<void>(resolve => {
98
- setTimeout(() => {
99
- const exception = new TestException('Test message');
100
-
101
- expect(exception.isFromTimer()).toBeTruthy();
102
- resolve();
103
- }, 0);
104
- });
105
- }
106
-
107
- @Test()
108
- public async fromIntervalTest(): Promise<void> {
109
- let interval: NodeJS.Timeout;
110
- return new Promise<void>(resolve => {
111
- interval = setInterval(() => {
112
- const exception = new TestException('Test message');
113
-
114
- expect(exception.isFromTimer()).toBeTruthy();
115
- clearInterval(interval);
116
- resolve();
117
- }, 0);
118
- });
119
- }
120
-
121
- @Test()
122
- public async shouldWorkWithoutCaptureStackTrace(): Promise<void> {
123
- // eslint-disable-next-line @typescript/unbound-method
124
- const originalCaptureStackTrace = Error.captureStackTrace;
125
-
126
- try {
127
- // eslint-disable-next-line no-undefined
128
- Reflect.set(Error, 'captureStackTrace', undefined);
129
-
130
- const exception = new TestException('Browser compatible message');
131
-
132
- expect(exception.message).toEqual('Browser compatible message');
133
- expect(exception.toJSON().stack).toBeInstanceOf(Array);
134
- expect(exception.toJSON().stack).not.toEqual([]);
135
- } finally {
136
- Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
137
- }
138
- }
139
-
140
- @Test()
141
- public async shouldSplitStackWithLfSeparator(): Promise<void> {
142
- const stack = [
143
- 'TestException: Test message',
144
- 'at new TestException (/test/exception.ts:1:1)',
145
- 'at browserHandler (/test/browser.ts:2:2)',
146
- ].join('\n');
147
-
148
- const exception = BaseException.fromError({
149
- message: 'Test message',
150
- name: 'Error',
151
- stack,
152
- } as Error);
153
-
154
- expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
155
- }
156
70
  }