@grafana/faro-core 1.0.0-beta3 → 1.0.0-beta4

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.
Files changed (211) hide show
  1. package/README.md +9 -8
  2. package/dist/bundle/faro-core.iife.js +1 -0
  3. package/dist/cjs/utils/deepEqual.js +58 -5
  4. package/dist/cjs/utils/deepEqual.js.map +1 -1
  5. package/dist/cjs/version.js +2 -2
  6. package/dist/cjs/version.js.map +1 -1
  7. package/dist/esm/utils/deepEqual.js +55 -2
  8. package/dist/esm/utils/deepEqual.js.map +1 -1
  9. package/dist/esm/version.js +2 -2
  10. package/dist/esm/version.js.map +1 -1
  11. package/dist/{cjs → types}/api/events/index.d.ts +0 -0
  12. package/dist/{cjs → types}/api/events/initialize.d.ts +0 -0
  13. package/dist/{cjs → types}/api/events/types.d.ts +0 -0
  14. package/dist/{cjs → types}/api/exceptions/const.d.ts +0 -0
  15. package/dist/{cjs → types}/api/exceptions/index.d.ts +0 -0
  16. package/dist/{cjs → types}/api/exceptions/initialize.d.ts +0 -0
  17. package/dist/{cjs → types}/api/exceptions/types.d.ts +0 -0
  18. package/dist/{cjs → types}/api/index.d.ts +0 -0
  19. package/dist/{cjs → types}/api/initialize.d.ts +0 -0
  20. package/dist/{cjs → types}/api/logs/index.d.ts +0 -0
  21. package/dist/{cjs → types}/api/logs/initialize.d.ts +0 -0
  22. package/dist/{cjs → types}/api/logs/types.d.ts +0 -0
  23. package/dist/{cjs → types}/api/measurements/index.d.ts +0 -0
  24. package/dist/{cjs → types}/api/measurements/initialize.d.ts +0 -0
  25. package/dist/{cjs → types}/api/measurements/types.d.ts +0 -0
  26. package/dist/{cjs → types}/api/meta/index.d.ts +0 -0
  27. package/dist/{cjs → types}/api/meta/initialize.d.ts +0 -0
  28. package/dist/{cjs → types}/api/meta/types.d.ts +0 -0
  29. package/dist/{cjs → types}/api/traces/index.d.ts +0 -0
  30. package/dist/{cjs → types}/api/traces/initialize.d.ts +0 -0
  31. package/dist/{cjs → types}/api/traces/types.d.ts +0 -0
  32. package/dist/{cjs → types}/api/types.d.ts +0 -0
  33. package/dist/{cjs → types}/config/const.d.ts +0 -0
  34. package/dist/{cjs → types}/config/index.d.ts +0 -0
  35. package/dist/{cjs → types}/config/types.d.ts +0 -0
  36. package/dist/{cjs → types}/globalObject/globalObject.d.ts +0 -0
  37. package/dist/{cjs → types}/globalObject/index.d.ts +0 -0
  38. package/dist/{cjs → types}/index.d.ts +0 -0
  39. package/dist/{cjs → types}/initialize.d.ts +0 -0
  40. package/dist/{cjs → types}/instrumentations/base.d.ts +0 -0
  41. package/dist/{cjs → types}/instrumentations/index.d.ts +0 -0
  42. package/dist/{cjs → types}/instrumentations/initialize.d.ts +0 -0
  43. package/dist/{cjs → types}/instrumentations/types.d.ts +0 -0
  44. package/dist/{cjs → types}/internalLogger/const.d.ts +0 -0
  45. package/dist/{cjs → types}/internalLogger/createInternalLogger.d.ts +0 -0
  46. package/dist/{cjs → types}/internalLogger/index.d.ts +0 -0
  47. package/dist/{cjs → types}/internalLogger/initialize.d.ts +0 -0
  48. package/dist/{cjs → types}/internalLogger/types.d.ts +0 -0
  49. package/dist/{cjs → types}/metas/index.d.ts +0 -0
  50. package/dist/{cjs → types}/metas/initialize.d.ts +0 -0
  51. package/dist/{cjs → types}/metas/types.d.ts +0 -0
  52. package/dist/{cjs → types}/sdk/const.d.ts +0 -0
  53. package/dist/{cjs → types}/sdk/faroGlobalObject.d.ts +0 -0
  54. package/dist/{cjs → types}/sdk/index.d.ts +0 -0
  55. package/dist/{cjs → types}/sdk/internalFaroGlobalObject.d.ts +0 -0
  56. package/dist/{cjs → types}/sdk/register.d.ts +0 -0
  57. package/dist/{cjs → types}/sdk/types.d.ts +0 -0
  58. package/dist/{cjs → types}/semantic.d.ts +0 -0
  59. package/dist/{cjs → types}/testUtils/index.d.ts +0 -0
  60. package/dist/{cjs → types}/testUtils/mockConfig.d.ts +0 -0
  61. package/dist/{cjs → types}/testUtils/mockInternalLogger.d.ts +0 -0
  62. package/dist/{cjs → types}/testUtils/mockStacktraceParser.d.ts +0 -0
  63. package/dist/{cjs → types}/testUtils/mockTransport.d.ts +1 -1
  64. package/dist/{cjs → types}/testUtils/testPromise.d.ts +0 -0
  65. package/dist/{cjs → types}/transports/base.d.ts +0 -0
  66. package/dist/{cjs → types}/transports/const.d.ts +0 -0
  67. package/dist/{cjs → types}/transports/index.d.ts +0 -0
  68. package/dist/{cjs → types}/transports/initialize.d.ts +0 -0
  69. package/dist/{cjs → types}/transports/types.d.ts +0 -0
  70. package/dist/{cjs → types}/transports/utils.d.ts +0 -0
  71. package/dist/{cjs → types}/unpatchedConsole/const.d.ts +0 -0
  72. package/dist/{cjs → types}/unpatchedConsole/index.d.ts +0 -0
  73. package/dist/{cjs → types}/unpatchedConsole/initialize.d.ts +0 -0
  74. package/dist/{cjs → types}/unpatchedConsole/types.d.ts +0 -0
  75. package/dist/{cjs → types}/utils/baseObject.d.ts +0 -0
  76. package/dist/types/utils/deepEqual.d.ts +1 -0
  77. package/dist/{cjs → types}/utils/extensions.d.ts +0 -0
  78. package/dist/{cjs → types}/utils/getCurrentTimestamp.d.ts +0 -0
  79. package/dist/{cjs → types}/utils/index.d.ts +0 -0
  80. package/dist/{cjs → types}/utils/is.d.ts +0 -0
  81. package/dist/{cjs → types}/utils/logLevels.d.ts +0 -0
  82. package/dist/{cjs → types}/utils/noop.d.ts +0 -0
  83. package/dist/{cjs → types}/utils/promiseBuffer.d.ts +0 -0
  84. package/dist/{cjs → types}/utils/shortId.d.ts +0 -0
  85. package/dist/types/version.d.ts +1 -0
  86. package/package.json +20 -14
  87. package/dist/cjs/api/events/initialize.test.d.ts +0 -1
  88. package/dist/cjs/api/events/initialize.test.js +0 -92
  89. package/dist/cjs/api/events/initialize.test.js.map +0 -1
  90. package/dist/cjs/api/exceptions/initialize.test.d.ts +0 -1
  91. package/dist/cjs/api/exceptions/initialize.test.js +0 -138
  92. package/dist/cjs/api/exceptions/initialize.test.js.map +0 -1
  93. package/dist/cjs/api/logs/initialize.test.d.ts +0 -1
  94. package/dist/cjs/api/logs/initialize.test.js +0 -88
  95. package/dist/cjs/api/logs/initialize.test.js.map +0 -1
  96. package/dist/cjs/api/measurements/initialize.test.d.ts +0 -1
  97. package/dist/cjs/api/measurements/initialize.test.js +0 -123
  98. package/dist/cjs/api/measurements/initialize.test.js.map +0 -1
  99. package/dist/cjs/faro.test.d.ts +0 -1
  100. package/dist/cjs/faro.test.js +0 -42
  101. package/dist/cjs/faro.test.js.map +0 -1
  102. package/dist/cjs/metas/initialize.test.d.ts +0 -1
  103. package/dist/cjs/metas/initialize.test.js +0 -21
  104. package/dist/cjs/metas/initialize.test.js.map +0 -1
  105. package/dist/cjs/transports/transports.test.d.ts +0 -1
  106. package/dist/cjs/transports/transports.test.js +0 -141
  107. package/dist/cjs/transports/transports.test.js.map +0 -1
  108. package/dist/cjs/utils/deepEqual.d.ts +0 -2
  109. package/dist/cjs/utils/promiseBuffer.test.d.ts +0 -1
  110. package/dist/cjs/utils/promiseBuffer.test.js +0 -146
  111. package/dist/cjs/utils/promiseBuffer.test.js.map +0 -1
  112. package/dist/cjs/version.d.ts +0 -1
  113. package/dist/esm/api/events/index.d.ts +0 -2
  114. package/dist/esm/api/events/initialize.d.ts +0 -7
  115. package/dist/esm/api/events/initialize.test.d.ts +0 -1
  116. package/dist/esm/api/events/initialize.test.js +0 -87
  117. package/dist/esm/api/events/initialize.test.js.map +0 -1
  118. package/dist/esm/api/events/types.d.ts +0 -15
  119. package/dist/esm/api/exceptions/const.d.ts +0 -1
  120. package/dist/esm/api/exceptions/index.d.ts +0 -3
  121. package/dist/esm/api/exceptions/initialize.d.ts +0 -7
  122. package/dist/esm/api/exceptions/initialize.test.d.ts +0 -1
  123. package/dist/esm/api/exceptions/initialize.test.js +0 -133
  124. package/dist/esm/api/exceptions/initialize.test.js.map +0 -1
  125. package/dist/esm/api/exceptions/types.d.ts +0 -32
  126. package/dist/esm/api/index.d.ts +0 -9
  127. package/dist/esm/api/initialize.d.ts +0 -6
  128. package/dist/esm/api/logs/index.d.ts +0 -2
  129. package/dist/esm/api/logs/initialize.d.ts +0 -7
  130. package/dist/esm/api/logs/initialize.test.d.ts +0 -1
  131. package/dist/esm/api/logs/initialize.test.js +0 -83
  132. package/dist/esm/api/logs/initialize.test.js.map +0 -1
  133. package/dist/esm/api/logs/types.d.ts +0 -18
  134. package/dist/esm/api/measurements/index.d.ts +0 -2
  135. package/dist/esm/api/measurements/initialize.d.ts +0 -7
  136. package/dist/esm/api/measurements/initialize.test.d.ts +0 -1
  137. package/dist/esm/api/measurements/initialize.test.js +0 -107
  138. package/dist/esm/api/measurements/initialize.test.js.map +0 -1
  139. package/dist/esm/api/measurements/types.d.ts +0 -16
  140. package/dist/esm/api/meta/index.d.ts +0 -2
  141. package/dist/esm/api/meta/initialize.d.ts +0 -6
  142. package/dist/esm/api/meta/types.d.ts +0 -8
  143. package/dist/esm/api/traces/index.d.ts +0 -2
  144. package/dist/esm/api/traces/initialize.d.ts +0 -6
  145. package/dist/esm/api/traces/types.d.ts +0 -20
  146. package/dist/esm/api/types.d.ts +0 -8
  147. package/dist/esm/config/const.d.ts +0 -1
  148. package/dist/esm/config/index.d.ts +0 -2
  149. package/dist/esm/config/types.d.ts +0 -26
  150. package/dist/esm/faro.test.d.ts +0 -1
  151. package/dist/esm/faro.test.js +0 -40
  152. package/dist/esm/faro.test.js.map +0 -1
  153. package/dist/esm/globalObject/globalObject.d.ts +0 -7
  154. package/dist/esm/globalObject/index.d.ts +0 -2
  155. package/dist/esm/index.d.ts +0 -22
  156. package/dist/esm/initialize.d.ts +0 -3
  157. package/dist/esm/instrumentations/base.d.ts +0 -5
  158. package/dist/esm/instrumentations/index.d.ts +0 -3
  159. package/dist/esm/instrumentations/initialize.d.ts +0 -4
  160. package/dist/esm/instrumentations/types.d.ts +0 -10
  161. package/dist/esm/internalLogger/const.d.ts +0 -11
  162. package/dist/esm/internalLogger/createInternalLogger.d.ts +0 -4
  163. package/dist/esm/internalLogger/index.d.ts +0 -4
  164. package/dist/esm/internalLogger/initialize.d.ts +0 -5
  165. package/dist/esm/internalLogger/types.d.ts +0 -7
  166. package/dist/esm/metas/index.d.ts +0 -2
  167. package/dist/esm/metas/initialize.d.ts +0 -4
  168. package/dist/esm/metas/initialize.test.d.ts +0 -1
  169. package/dist/esm/metas/initialize.test.js +0 -19
  170. package/dist/esm/metas/initialize.test.js.map +0 -1
  171. package/dist/esm/metas/types.d.ts +0 -56
  172. package/dist/esm/sdk/const.d.ts +0 -1
  173. package/dist/esm/sdk/faroGlobalObject.d.ts +0 -2
  174. package/dist/esm/sdk/index.d.ts +0 -4
  175. package/dist/esm/sdk/internalFaroGlobalObject.d.ts +0 -4
  176. package/dist/esm/sdk/register.d.ts +0 -4
  177. package/dist/esm/sdk/types.d.ts +0 -18
  178. package/dist/esm/semantic.d.ts +0 -7
  179. package/dist/esm/testUtils/index.d.ts +0 -6
  180. package/dist/esm/testUtils/mockConfig.d.ts +0 -2
  181. package/dist/esm/testUtils/mockInternalLogger.d.ts +0 -2
  182. package/dist/esm/testUtils/mockStacktraceParser.d.ts +0 -2
  183. package/dist/esm/testUtils/mockTransport.d.ts +0 -12
  184. package/dist/esm/testUtils/testPromise.d.ts +0 -7
  185. package/dist/esm/transports/base.d.ts +0 -6
  186. package/dist/esm/transports/const.d.ts +0 -8
  187. package/dist/esm/transports/index.d.ts +0 -5
  188. package/dist/esm/transports/initialize.d.ts +0 -6
  189. package/dist/esm/transports/transports.test.d.ts +0 -1
  190. package/dist/esm/transports/transports.test.js +0 -110
  191. package/dist/esm/transports/transports.test.js.map +0 -1
  192. package/dist/esm/transports/types.d.ts +0 -37
  193. package/dist/esm/transports/utils.d.ts +0 -2
  194. package/dist/esm/unpatchedConsole/const.d.ts +0 -2
  195. package/dist/esm/unpatchedConsole/index.d.ts +0 -3
  196. package/dist/esm/unpatchedConsole/initialize.d.ts +0 -4
  197. package/dist/esm/unpatchedConsole/types.d.ts +0 -1
  198. package/dist/esm/utils/baseObject.d.ts +0 -6
  199. package/dist/esm/utils/deepEqual.d.ts +0 -2
  200. package/dist/esm/utils/extensions.d.ts +0 -19
  201. package/dist/esm/utils/getCurrentTimestamp.d.ts +0 -1
  202. package/dist/esm/utils/index.d.ts +0 -12
  203. package/dist/esm/utils/is.d.ts +0 -31
  204. package/dist/esm/utils/logLevels.d.ts +0 -10
  205. package/dist/esm/utils/noop.d.ts +0 -1
  206. package/dist/esm/utils/promiseBuffer.d.ts +0 -14
  207. package/dist/esm/utils/promiseBuffer.test.d.ts +0 -1
  208. package/dist/esm/utils/promiseBuffer.test.js +0 -87
  209. package/dist/esm/utils/promiseBuffer.test.js.map +0 -1
  210. package/dist/esm/utils/shortId.d.ts +0 -1
  211. package/dist/esm/version.d.ts +0 -1
@@ -1,141 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- var testUtils_1 = require("../testUtils");
30
- var utils_1 = require("../utils");
31
- var version_1 = require("../version");
32
- var base_1 = require("./base");
33
- var const_1 = require("./const");
34
- var initialize_1 = require("./initialize");
35
- var MockTransport = /** @class */ (function (_super) {
36
- __extends(MockTransport, _super);
37
- function MockTransport() {
38
- var _this = _super !== null && _super.apply(this, arguments) || this;
39
- _this.name = '@grafana/transport-mock';
40
- _this.version = version_1.VERSION;
41
- _this.sentItems = [];
42
- return _this;
43
- }
44
- MockTransport.prototype.send = function (item) {
45
- this.sentItems.push(item);
46
- };
47
- return MockTransport;
48
- }(base_1.BaseTransport));
49
- describe('transports', function () {
50
- describe('config.ignoreErrors', function () {
51
- it('will filter out errors by string or regex', function () {
52
- var _a;
53
- var transport = new MockTransport();
54
- var config = {
55
- transports: [transport],
56
- ignoreErrors: ['Error: ResizeObserver', /FetchError[:\s\w\/]*pwc/],
57
- };
58
- var transports = (0, initialize_1.initializeTransports)(testUtils_1.mockInternalLogger, config);
59
- transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
60
- transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));
61
- transports.execute(makeExceptionTransportItem('FetchError', '404 \n Instantiating https://pwc.grafana.net/public/react-router-dom'));
62
- transports.execute(makeExceptionTransportItem('FetchError', '404 \n Instantiating https://pwc.grafana.net/public/@emotion/css'));
63
- expect(transport.sentItems).toHaveLength(1);
64
- expect(((_a = transport.sentItems[0]) === null || _a === void 0 ? void 0 : _a.payload).type).toEqual('TypeError');
65
- });
66
- });
67
- describe('config.beforeSend', function () {
68
- it('will not send events that are rejected by beforeSend hook', function () {
69
- var _a;
70
- var transport = new MockTransport();
71
- var hookedItems = [];
72
- var config = {
73
- transports: [transport],
74
- beforeSend: function (item) {
75
- hookedItems.push(item);
76
- if (item.type === const_1.TransportItemType.EXCEPTION && item.payload.type === 'TypeError') {
77
- return null;
78
- }
79
- return item;
80
- },
81
- };
82
- var transports = (0, initialize_1.initializeTransports)(testUtils_1.mockInternalLogger, config);
83
- transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
84
- transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));
85
- expect(transport.sentItems).toHaveLength(1);
86
- expect(hookedItems).toHaveLength(2);
87
- expect(((_a = transport.sentItems[0]) === null || _a === void 0 ? void 0 : _a.payload).type).toEqual('Error');
88
- });
89
- it('events can be modified by beforeSend hook', function () {
90
- var _a;
91
- var transport = new MockTransport();
92
- var config = {
93
- transports: [transport],
94
- beforeSend: function (item) {
95
- if (item.type === const_1.TransportItemType.EXCEPTION) {
96
- return __assign(__assign({}, item), { payload: __assign(__assign({}, item.payload), { type: 'NewType' }) });
97
- }
98
- return item;
99
- },
100
- };
101
- var transports = (0, initialize_1.initializeTransports)(testUtils_1.mockInternalLogger, config);
102
- transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
103
- expect(transport.sentItems).toHaveLength(1);
104
- expect(((_a = transport.sentItems[0]) === null || _a === void 0 ? void 0 : _a.payload).type).toEqual('NewType');
105
- });
106
- });
107
- describe('multiple transports of the same type', function () {
108
- var transport1 = new MockTransport();
109
- var transport2 = new MockTransport();
110
- var config = {
111
- transports: [transport1, transport2],
112
- };
113
- var transports = (0, initialize_1.initializeTransports)(testUtils_1.mockInternalLogger, config);
114
- it('will all be added and receive events', function () {
115
- transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
116
- expect(transport1.sentItems).toHaveLength(1);
117
- expect(transport2.sentItems).toHaveLength(1);
118
- });
119
- it('one of them can be removed by instance', function () {
120
- transports.remove(transport1);
121
- transports.execute(makeExceptionTransportItem('Error', 'Kaboom'));
122
- expect(transport1.sentItems).toHaveLength(1);
123
- expect(transport2.sentItems).toHaveLength(2);
124
- });
125
- });
126
- });
127
- function makeExceptionTransportItem(type, value) {
128
- return {
129
- type: const_1.TransportItemType.EXCEPTION,
130
- payload: {
131
- type: type,
132
- value: value,
133
- timestamp: (0, utils_1.getCurrentTimestamp)(),
134
- stacktrace: {
135
- frames: [],
136
- },
137
- },
138
- meta: {},
139
- };
140
- }
141
- //# sourceMappingURL=transports.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transports.test.js","sourceRoot":"","sources":["../../../src/transports/transports.test.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExceptionEvent } from '../api';\nimport type { Config } from '../config';\nimport { mockInternalLogger } from '../testUtils';\nimport { getCurrentTimestamp } from '../utils';\nimport { VERSION } from '../version';\nimport { BaseTransport } from './base';\nimport { TransportItemType } from './const';\nimport { initializeTransports } from './initialize';\nimport type { Transport, TransportItem } from './types';\n\nclass MockTransport extends BaseTransport implements Transport {\n readonly name = '@grafana/transport-mock';\n readonly version = VERSION;\n\n sentItems: TransportItem[] = [];\n\n send(item: TransportItem): void | Promise<void> {\n this.sentItems.push(item);\n }\n}\n\ndescribe('transports', () => {\n describe('config.ignoreErrors', () => {\n it('will filter out errors by string or regex', () => {\n const transport = new MockTransport();\n const config = {\n transports: [transport],\n ignoreErrors: ['Error: ResizeObserver', /FetchError[:\\s\\w\\/]*pwc/],\n } as any as Config;\n\n const transports = initializeTransports(mockInternalLogger, config);\n\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));\n transports.execute(\n makeExceptionTransportItem(\n 'FetchError',\n '404 \\n Instantiating https://pwc.grafana.net/public/react-router-dom'\n )\n );\n transports.execute(\n makeExceptionTransportItem('FetchError', '404 \\n Instantiating https://pwc.grafana.net/public/@emotion/css')\n );\n expect(transport.sentItems).toHaveLength(1);\n expect((transport.sentItems[0]?.payload as ErrorEvent).type).toEqual('TypeError');\n });\n });\n\n describe('config.beforeSend', () => {\n it('will not send events that are rejected by beforeSend hook', () => {\n const transport = new MockTransport();\n const hookedItems: TransportItem[] = [];\n const config = {\n transports: [transport],\n beforeSend: (item: TransportItem) => {\n hookedItems.push(item);\n if (item.type === TransportItemType.EXCEPTION && (item.payload as ErrorEvent).type === 'TypeError') {\n return null;\n }\n return item;\n },\n } as any as Config;\n\n const transports = initializeTransports(mockInternalLogger, config);\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));\n expect(transport.sentItems).toHaveLength(1);\n expect(hookedItems).toHaveLength(2);\n expect((transport.sentItems[0]?.payload as ErrorEvent).type).toEqual('Error');\n });\n\n it('events can be modified by beforeSend hook', () => {\n const transport = new MockTransport();\n const config = {\n transports: [transport],\n beforeSend: (item: TransportItem) => {\n if (item.type === TransportItemType.EXCEPTION) {\n return {\n ...item,\n payload: {\n ...item.payload,\n type: 'NewType',\n },\n };\n }\n return item;\n },\n } as any as Config;\n\n const transports = initializeTransports(mockInternalLogger, config);\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n expect(transport.sentItems).toHaveLength(1);\n expect((transport.sentItems[0]?.payload as ErrorEvent).type).toEqual('NewType');\n });\n });\n\n describe('multiple transports of the same type', () => {\n const transport1 = new MockTransport();\n const transport2 = new MockTransport();\n\n const config = {\n transports: [transport1, transport2],\n } as any as Config;\n const transports = initializeTransports(mockInternalLogger, config);\n\n it('will all be added and receive events', () => {\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n expect(transport1.sentItems).toHaveLength(1);\n expect(transport2.sentItems).toHaveLength(1);\n });\n\n it('one of them can be removed by instance', () => {\n transports.remove(transport1);\n transports.execute(makeExceptionTransportItem('Error', 'Kaboom'));\n expect(transport1.sentItems).toHaveLength(1);\n expect(transport2.sentItems).toHaveLength(2);\n });\n });\n});\n\nfunction makeExceptionTransportItem(type: string, value: string): TransportItem<ExceptionEvent> {\n return {\n type: TransportItemType.EXCEPTION,\n payload: {\n type,\n value,\n timestamp: getCurrentTimestamp(),\n stacktrace: {\n frames: [],\n },\n },\n meta: {},\n };\n}\n\nexport {};\n"]}
@@ -1,2 +0,0 @@
1
- import deepEqual from 'fast-deep-equal';
2
- export { deepEqual };
@@ -1 +0,0 @@
1
- export {};
@@ -1,146 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var testUtils_1 = require("../testUtils");
40
- var promiseBuffer_1 = require("./promiseBuffer");
41
- function defer(fn) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- return __generator(this, function (_a) {
44
- return [2 /*return*/, new Promise(function (resolve) {
45
- setImmediate(function () {
46
- fn();
47
- resolve();
48
- });
49
- })];
50
- });
51
- });
52
- }
53
- describe('PromiseBuffer', function () {
54
- it('add() new promise that resolves when task is completed', function () { return __awaiter(void 0, void 0, void 0, function () {
55
- var buf, _a;
56
- return __generator(this, function (_b) {
57
- switch (_b.label) {
58
- case 0:
59
- buf = (0, promiseBuffer_1.createPromiseBuffer)({ size: 2, concurrency: 2 });
60
- _a = expect;
61
- return [4 /*yield*/, buf.add(function () { return Promise.resolve('hi'); })];
62
- case 1:
63
- _a.apply(void 0, [_b.sent()]).toEqual('hi');
64
- return [2 /*return*/];
65
- }
66
- });
67
- }); });
68
- it('executes tasks concurrently, limited to concurrency setting', function () { return __awaiter(void 0, void 0, void 0, function () {
69
- var promises, buf, addTask;
70
- var _a, _b, _c, _d;
71
- return __generator(this, function (_e) {
72
- switch (_e.label) {
73
- case 0:
74
- promises = [];
75
- buf = (0, promiseBuffer_1.createPromiseBuffer)({
76
- size: 10,
77
- concurrency: 2,
78
- });
79
- addTask = function (id) {
80
- return buf.add(function () {
81
- var prom = (0, testUtils_1.createTestPromise)(id);
82
- promises.push(prom);
83
- return prom.promise;
84
- });
85
- };
86
- addTask(1);
87
- addTask(2);
88
- addTask(3);
89
- // 1 & 2 have started to execute. 3d is not started
90
- expect(promises).toHaveLength(2);
91
- expect((_a = promises[0]) === null || _a === void 0 ? void 0 : _a.id).toEqual(1);
92
- expect((_b = promises[1]) === null || _b === void 0 ? void 0 : _b.id).toEqual(2);
93
- // resolve first two
94
- (_c = promises[0]) === null || _c === void 0 ? void 0 : _c.resolve();
95
- (_d = promises[1]) === null || _d === void 0 ? void 0 : _d.resolve();
96
- return [4 /*yield*/, defer(function () {
97
- var _a, _b;
98
- // 3 has started to be executed
99
- expect(promises).toHaveLength(3);
100
- expect((_a = promises[2]) === null || _a === void 0 ? void 0 : _a.id).toEqual(3);
101
- (_b = promises[2]) === null || _b === void 0 ? void 0 : _b.resolve();
102
- })];
103
- case 1:
104
- _e.sent();
105
- return [2 /*return*/];
106
- }
107
- });
108
- }); });
109
- it('rejects tasks that exceed buffer size', function () { return __awaiter(void 0, void 0, void 0, function () {
110
- var promises, buf, addTask;
111
- var _a;
112
- return __generator(this, function (_b) {
113
- switch (_b.label) {
114
- case 0:
115
- promises = [];
116
- buf = (0, promiseBuffer_1.createPromiseBuffer)({
117
- size: 3,
118
- concurrency: 2,
119
- });
120
- addTask = function (id) {
121
- return buf.add(function () {
122
- var prom = (0, testUtils_1.createTestPromise)(id);
123
- promises.push(prom);
124
- return prom.promise;
125
- });
126
- };
127
- // adding 3 tasks works, 2 of them begin executing
128
- addTask(1);
129
- addTask(2);
130
- addTask(3);
131
- expect(promises).toHaveLength(2);
132
- // adding 4th task fails
133
- expect(function () { return addTask(4); }).toThrow('Task buffer full');
134
- // finishing a task allows new tasks to be added again
135
- (_a = promises[0]) === null || _a === void 0 ? void 0 : _a.resolve();
136
- return [4 /*yield*/, defer(function () {
137
- addTask(4);
138
- })];
139
- case 1:
140
- _b.sent();
141
- return [2 /*return*/];
142
- }
143
- });
144
- }); });
145
- });
146
- //# sourceMappingURL=promiseBuffer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promiseBuffer.test.js","sourceRoot":"","sources":["../../../src/utils/promiseBuffer.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { createTestPromise, TestPromise } from '../testUtils';\nimport { createPromiseBuffer } from './promiseBuffer';\n\nasync function defer(fn: () => void) {\n return new Promise<void>((resolve) => {\n setImmediate(() => {\n fn();\n resolve();\n });\n });\n}\n\ndescribe('PromiseBuffer', () => {\n it('add() new promise that resolves when task is completed', async () => {\n const buf = createPromiseBuffer({ size: 2, concurrency: 2 });\n expect(await buf.add(() => Promise.resolve('hi'))).toEqual('hi');\n });\n\n it('executes tasks concurrently, limited to concurrency setting', async () => {\n const promises: Array<TestPromise<void>> = [];\n const buf = createPromiseBuffer({\n size: 10,\n concurrency: 2,\n });\n\n const addTask = (id: number) => {\n return buf.add(() => {\n const prom = createTestPromise<void>(id);\n promises.push(prom);\n return prom.promise;\n });\n };\n\n addTask(1);\n addTask(2);\n addTask(3);\n\n // 1 & 2 have started to execute. 3d is not started\n expect(promises).toHaveLength(2);\n expect(promises[0]?.id).toEqual(1);\n expect(promises[1]?.id).toEqual(2);\n\n // resolve first two\n promises[0]?.resolve();\n promises[1]?.resolve();\n\n await defer(() => {\n // 3 has started to be executed\n expect(promises).toHaveLength(3);\n expect(promises[2]?.id).toEqual(3);\n promises[2]?.resolve();\n });\n });\n\n it('rejects tasks that exceed buffer size', async () => {\n const promises: Array<TestPromise<void>> = [];\n const buf = createPromiseBuffer({\n size: 3,\n concurrency: 2,\n });\n\n const addTask = (id: number) => {\n return buf.add(() => {\n const prom = createTestPromise<void>(id);\n promises.push(prom);\n return prom.promise;\n });\n };\n\n // adding 3 tasks works, 2 of them begin executing\n addTask(1);\n addTask(2);\n addTask(3);\n expect(promises).toHaveLength(2);\n // adding 4th task fails\n expect(() => addTask(4)).toThrow('Task buffer full');\n\n // finishing a task allows new tasks to be added again\n promises[0]?.resolve();\n\n await defer(() => {\n addTask(4);\n });\n });\n});\n\nexport {};\n"]}
@@ -1 +0,0 @@
1
- export declare const VERSION = "1.0.0-beta3";
@@ -1,2 +0,0 @@
1
- export type { EventAttributes, EventEvent, EventsAPI } from './types';
2
- export { initializeEventsAPI } from './initialize';
@@ -1,7 +0,0 @@
1
- import type { Config } from '../../config';
2
- import type { InternalLogger } from '../../internalLogger';
3
- import type { Metas } from '../../metas';
4
- import { Transports } from '../../transports';
5
- import type { TracesAPI } from '../traces';
6
- import type { EventsAPI } from './types';
7
- export declare function initializeEventsAPI(internalLogger: InternalLogger, config: Config, transports: Transports, metas: Metas, tracesApi: TracesAPI): EventsAPI;
@@ -1 +0,0 @@
1
- export {};
@@ -1,87 +0,0 @@
1
- import { initializeMetas } from '../../metas';
2
- import { mockConfig, mockInternalLogger, MockTransport } from '../../testUtils';
3
- import { initializeTransports } from '../../transports';
4
- import { initializeTracesAPI } from '../traces';
5
- import { initializeEventsAPI } from './initialize';
6
- describe('api.events', () => {
7
- function createAPI({ dedupe } = { dedupe: true }) {
8
- const transport = new MockTransport();
9
- const config = mockConfig({
10
- dedupe,
11
- transports: [transport],
12
- });
13
- const transports = initializeTransports(mockInternalLogger, config);
14
- const metas = initializeMetas(mockInternalLogger, config);
15
- const tracesAPI = initializeTracesAPI(mockInternalLogger, config, transports, metas);
16
- const api = initializeEventsAPI(mockInternalLogger, config, transports, metas, tracesAPI);
17
- return [api, transport];
18
- }
19
- describe('pushEvent', () => {
20
- let api;
21
- let transport;
22
- beforeEach(() => {
23
- [api, transport] = createAPI();
24
- });
25
- describe('Filtering', () => {
26
- it('filters the same event', () => {
27
- api.pushEvent('test', {
28
- a: '1',
29
- });
30
- expect(transport.items).toHaveLength(1);
31
- api.pushEvent('test', {
32
- a: '1',
33
- });
34
- expect(transport.items).toHaveLength(1);
35
- });
36
- it("doesn't filter events with same name and partially same values", () => {
37
- api.pushEvent('test', {
38
- a: '1',
39
- });
40
- expect(transport.items).toHaveLength(1);
41
- api.pushEvent('test', {
42
- a: '1',
43
- b: '2',
44
- });
45
- expect(transport.items).toHaveLength(2);
46
- });
47
- it("doesn't filter events with different name and same values", () => {
48
- api.pushEvent('test1', {
49
- a: '1',
50
- });
51
- expect(transport.items).toHaveLength(1);
52
- api.pushEvent('test2', {
53
- a: '1',
54
- });
55
- expect(transport.items).toHaveLength(2);
56
- });
57
- it("filters an event and doesn't filter the next different one", () => {
58
- api.pushEvent('test1', {
59
- a: '1',
60
- });
61
- expect(transport.items).toHaveLength(1);
62
- api.pushEvent('test1', {
63
- a: '1',
64
- });
65
- expect(transport.items).toHaveLength(1);
66
- api.pushEvent('test2', {
67
- b: '1',
68
- });
69
- expect(transport.items).toHaveLength(2);
70
- });
71
- it("doesn't filter when dedupe is false", () => {
72
- [api, transport] = createAPI({ dedupe: false });
73
- api.pushEvent('test');
74
- expect(transport.items).toHaveLength(1);
75
- api.pushEvent('test');
76
- expect(transport.items).toHaveLength(2);
77
- });
78
- it("doesn't filter when skipDedupe is true", () => {
79
- api.pushEvent('test');
80
- expect(transport.items).toHaveLength(1);
81
- api.pushEvent('test', {}, undefined, { skipDedupe: true });
82
- expect(transport.items).toHaveLength(2);
83
- });
84
- });
85
- });
86
- });
87
- //# sourceMappingURL=initialize.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialize.test.js","sourceRoot":"","sources":["../../../../src/api/events/initialize.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { initializeMetas } from '../../metas';\nimport { mockConfig, mockInternalLogger, MockTransport } from '../../testUtils';\nimport { initializeTransports } from '../../transports';\nimport { initializeTracesAPI } from '../traces';\nimport { initializeEventsAPI } from './initialize';\nimport type { EventsAPI } from './types';\n\ndescribe('api.events', () => {\n function createAPI({ dedupe }: { dedupe: boolean } = { dedupe: true }): [EventsAPI, MockTransport] {\n const transport = new MockTransport();\n const config = mockConfig({\n dedupe,\n transports: [transport],\n });\n const transports = initializeTransports(mockInternalLogger, config);\n const metas = initializeMetas(mockInternalLogger, config);\n const tracesAPI = initializeTracesAPI(mockInternalLogger, config, transports, metas);\n const api = initializeEventsAPI(mockInternalLogger, config, transports, metas, tracesAPI);\n\n return [api, transport];\n }\n\n describe('pushEvent', () => {\n let api: EventsAPI;\n let transport: MockTransport;\n\n beforeEach(() => {\n [api, transport] = createAPI();\n });\n\n describe('Filtering', () => {\n it('filters the same event', () => {\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n });\n\n it(\"doesn't filter events with same name and partially same values\", () => {\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {\n a: '1',\n b: '2',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter events with different name and same values\", () => {\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test2', {\n a: '1',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"filters an event and doesn't filter the next different one\", () => {\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test2', {\n b: '1',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter when dedupe is false\", () => {\n [api, transport] = createAPI({ dedupe: false });\n\n api.pushEvent('test');\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test');\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter when skipDedupe is true\", () => {\n api.pushEvent('test');\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {}, undefined, { skipDedupe: true });\n expect(transport.items).toHaveLength(2);\n });\n });\n });\n});\n\nexport {};\n"]}
@@ -1,15 +0,0 @@
1
- import type { TraceContext } from '../traces';
2
- export type EventAttributes = Record<string, string>;
3
- export interface EventEvent {
4
- name: string;
5
- timestamp: string;
6
- domain?: string;
7
- attributes?: EventAttributes;
8
- trace?: TraceContext;
9
- }
10
- export interface PushEventOptions {
11
- skipDedupe?: boolean;
12
- }
13
- export interface EventsAPI {
14
- pushEvent: (name: string, attributes?: EventAttributes, domain?: string, options?: PushEventOptions) => void;
15
- }
@@ -1 +0,0 @@
1
- export declare const defaultExceptionType = "Error";
@@ -1,3 +0,0 @@
1
- export { defaultExceptionType } from './const';
2
- export { initializeExceptionsAPI } from './initialize';
3
- export type { ExceptionEvent, ExceptionStackFrame, ExceptionsAPI, ExtendedError, PushErrorOptions, Stacktrace, StacktraceParser, } from './types';
@@ -1,7 +0,0 @@
1
- import type { Config } from '../../config';
2
- import type { InternalLogger } from '../../internalLogger';
3
- import type { Metas } from '../../metas';
4
- import type { Transports } from '../../transports';
5
- import type { TracesAPI } from '../traces';
6
- import type { ExceptionsAPI } from './types';
7
- export declare function initializeExceptionsAPI(internalLogger: InternalLogger, config: Config, transports: Transports, metas: Metas, tracesApi: TracesAPI): ExceptionsAPI;
@@ -1 +0,0 @@
1
- export {};
@@ -1,133 +0,0 @@
1
- import { initializeMetas } from '../../metas';
2
- import { mockConfig, mockInternalLogger, MockTransport } from '../../testUtils';
3
- import { initializeTransports, TransportItemType } from '../../transports';
4
- import { initializeTracesAPI } from '../traces';
5
- import { initializeExceptionsAPI } from './initialize';
6
- describe('api.exceptions', () => {
7
- function createAPI({ dedupe } = { dedupe: true }) {
8
- const transport = new MockTransport();
9
- const config = mockConfig({
10
- dedupe,
11
- transports: [transport],
12
- });
13
- const transports = initializeTransports(mockInternalLogger, config);
14
- const metas = initializeMetas(mockInternalLogger, config);
15
- const tracesAPI = initializeTracesAPI(mockInternalLogger, config, transports, metas);
16
- const api = initializeExceptionsAPI(mockInternalLogger, config, transports, metas, tracesAPI);
17
- return [api, transport];
18
- }
19
- describe('pushError', () => {
20
- let api;
21
- let transport;
22
- beforeEach(() => {
23
- [api, transport] = createAPI();
24
- });
25
- it('error with overrides', () => {
26
- const frames = [
27
- {
28
- filename: 'foo.js',
29
- function: 'FooFn',
30
- colno: 4,
31
- lineno: 23,
32
- },
33
- {
34
- filename: 'bar.js',
35
- function: 'BarFn',
36
- colno: 6,
37
- lineno: 52,
38
- },
39
- ];
40
- api.pushError(new Error('test exception'), {
41
- stackFrames: frames,
42
- type: 'TestError',
43
- });
44
- expect(transport.items).toHaveLength(1);
45
- const payload = transport.items[0];
46
- expect(payload === null || payload === void 0 ? void 0 : payload.payload).toBeTruthy();
47
- expect(payload === null || payload === void 0 ? void 0 : payload.type).toEqual(TransportItemType.EXCEPTION);
48
- const evt = payload === null || payload === void 0 ? void 0 : payload.payload;
49
- expect(evt.type).toEqual('TestError');
50
- expect(evt.value).toEqual('test exception');
51
- expect(evt.stacktrace).toEqual({ frames });
52
- });
53
- it('error without overrides', () => {
54
- var _a, _b;
55
- const err = new Error('test');
56
- api.pushError(err);
57
- expect(transport.items).toHaveLength(1);
58
- const payload = transport.items[0];
59
- expect((_a = payload === null || payload === void 0 ? void 0 : payload.meta.app) === null || _a === void 0 ? void 0 : _a.name).toEqual('test');
60
- expect(payload === null || payload === void 0 ? void 0 : payload.payload).toBeTruthy();
61
- expect(payload === null || payload === void 0 ? void 0 : payload.type).toEqual(TransportItemType.EXCEPTION);
62
- const evt = payload === null || payload === void 0 ? void 0 : payload.payload;
63
- expect(evt.type).toEqual('Error');
64
- expect(evt.value).toEqual('test');
65
- expect(evt.timestamp).toBeTruthy();
66
- const stacktrace = evt.stacktrace;
67
- expect(stacktrace).toBeTruthy();
68
- expect(stacktrace === null || stacktrace === void 0 ? void 0 : stacktrace.frames.length).toBeGreaterThan(3);
69
- expect((_b = stacktrace === null || stacktrace === void 0 ? void 0 : stacktrace.frames[0]) === null || _b === void 0 ? void 0 : _b.filename).toEqual('Error: test');
70
- });
71
- describe('Filtering', () => {
72
- it('filters the same event', () => {
73
- const error = new Error('test');
74
- api.pushError(error);
75
- expect(transport.items).toHaveLength(1);
76
- api.pushError(error);
77
- expect(transport.items).toHaveLength(1);
78
- });
79
- it("doesn't filter events with same message and different stacktrace", () => {
80
- const error1 = new Error('test');
81
- const error2 = new Error('test');
82
- api.pushError(error1);
83
- expect(transport.items).toHaveLength(1);
84
- api.pushError(error2);
85
- expect(transport.items).toHaveLength(2);
86
- });
87
- it("doesn't filter events with other message and same stacktrace", () => {
88
- const error = new Error('test');
89
- api.pushError(error);
90
- expect(transport.items).toHaveLength(1);
91
- error.message = 'test2';
92
- api.pushError(error);
93
- expect(transport.items).toHaveLength(2);
94
- });
95
- it("doesn't filter events with same message and same stacktrace but different type", () => {
96
- const error = new Error('test');
97
- api.pushError(error);
98
- expect(transport.items).toHaveLength(1);
99
- error.name = 'Another Type';
100
- api.pushError(error);
101
- expect(transport.items).toHaveLength(2);
102
- });
103
- it("filters an event and doesn't filter the next different one", () => {
104
- const error = new Error('test');
105
- api.pushError(error);
106
- expect(transport.items).toHaveLength(1);
107
- api.pushError(error);
108
- expect(transport.items).toHaveLength(1);
109
- error.name = 'Another Type';
110
- api.pushError(error);
111
- expect(transport.items).toHaveLength(2);
112
- });
113
- it("doesn't filter when dedupe is false", () => {
114
- [api, transport] = createAPI({ dedupe: false });
115
- const error = new Error('test');
116
- api.pushError(error);
117
- expect(transport.items).toHaveLength(1);
118
- api.pushError(error);
119
- expect(transport.items).toHaveLength(2);
120
- });
121
- it("doesn't filter when skipDedupe is true", () => {
122
- const error = new Error('test');
123
- api.pushError(error);
124
- expect(transport.items).toHaveLength(1);
125
- api.pushError(error, {
126
- skipDedupe: true,
127
- });
128
- expect(transport.items).toHaveLength(2);
129
- });
130
- });
131
- });
132
- });
133
- //# sourceMappingURL=initialize.test.js.map