@leaflink/snitch 1.4.0 → 1.5.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 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ import logger, { ConsoleTransport } from '../index.js';
2
+ describe('console transport', () => {
3
+ beforeAll(() => {
4
+ logger.addTransport(new ConsoleTransport());
5
+ });
6
+ afterAll(() => {
7
+ logger.clearTransports();
8
+ });
9
+ it('should log error to console', () => {
10
+ const customErr = 'custom error';
11
+ const errorSpy = vi.spyOn(console, 'error');
12
+ logger.error(customErr);
13
+ expect(errorSpy).toHaveBeenCalledWith(customErr, '');
14
+ errorSpy.mockClear();
15
+ const customMeta = { meta: { extra: 'something' } };
16
+ logger.error(customErr, customMeta);
17
+ expect(errorSpy).toHaveBeenCalledWith(customErr, customMeta);
18
+ });
19
+ it('should log debug to console', () => {
20
+ const customMsg = 'custom debug';
21
+ const debugSpy = vi.spyOn(console, 'debug');
22
+ logger['debug'](customMsg);
23
+ expect(debugSpy).toHaveBeenCalledWith(customMsg, '');
24
+ debugSpy.mockClear();
25
+ const customMeta = { meta: { extra: 'something' } };
26
+ logger['debug'](customMsg, customMeta);
27
+ expect(debugSpy).toHaveBeenCalledWith(customMsg, customMeta);
28
+ });
29
+ it('should log warn to console', () => {
30
+ const customWarn = 'custom warn';
31
+ const debugSpy = vi.spyOn(console, 'warn');
32
+ logger.warn(customWarn);
33
+ expect(debugSpy).toHaveBeenCalledWith(customWarn, '');
34
+ debugSpy.mockClear();
35
+ const customMeta = { meta: { extra: 'something' } };
36
+ logger.warn(customWarn, customMeta);
37
+ expect(debugSpy).toHaveBeenCalledWith(customWarn, customMeta);
38
+ });
39
+ it('should log to console', () => {
40
+ const customMsg = 'custom log';
41
+ const logSpy = vi.spyOn(console, 'log');
42
+ logger.log(customMsg);
43
+ expect(logSpy).toHaveBeenCalledWith(customMsg, '');
44
+ logSpy.mockClear();
45
+ const customMeta = { meta: { extra: 'something' } };
46
+ logger.log(customMsg, customMeta);
47
+ expect(logSpy).toHaveBeenCalledWith(customMsg, customMeta);
48
+ });
49
+ });
50
+ //# sourceMappingURL=console.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.spec.js","sourceRoot":"","sources":["../../src/transports/console.spec.ts"],"names":[],"mappings":"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"}
@@ -30,13 +30,21 @@ export class ReactNativeDatadogTransport {
30
30
  this.level = opts.level || 'info';
31
31
  this.log = (message, meta = {}, level) => {
32
32
  if (message instanceof Error) {
33
- opts.datadogLogsInstance[level](message.message, message.name, message.message, message.stack);
33
+ opts.datadogLogsInstance[level](message.message, message.name, message.message, message.stack, meta);
34
34
  }
35
35
  else if (typeof message === 'string') {
36
- opts.datadogLogsInstance[level](message, meta);
36
+ if (meta instanceof Error) {
37
+ opts.datadogLogsInstance[level](message, meta.name, meta.message, meta.stack);
38
+ }
39
+ else if (typeof meta === 'object') {
40
+ opts.datadogLogsInstance[level](message, meta);
41
+ }
42
+ else {
43
+ opts.datadogLogsInstance[level](message, { meta });
44
+ }
37
45
  }
38
46
  else {
39
- opts.datadogLogsInstance[level](JSON.stringify(message), meta);
47
+ opts.datadogLogsInstance[level](JSON.stringify(message), { meta });
40
48
  }
41
49
  };
42
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,+DAA+D;YAC/D,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,0EAA0E;gBAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAc,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3D;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;aACjE;iBAAM;gBACL,2FAA2F;gBAC3F,0GAA0G;gBAC1G,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAc,CAAC,CAAC;aACjF;QACH,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA2B;IACtC,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAAwC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;aAChG;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;aAC1D;iBAAM;gBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAc,CAAC,CAAC;aAC1E;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,+DAA+D;YAC/D,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,0EAA0E;gBAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAc,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3D;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;aACjE;iBAAM;gBACL,2FAA2F;gBAC3F,0GAA0G;gBAC1G,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAc,CAAC,CAAC;aACjF;QACH,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA2B;IACtC,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAAwC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAc,CAAC,CAAC;aAChH;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,IAAI,YAAY,KAAK,EAAE;oBACzB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/E;qBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBACnC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;iBAC1D;qBAAM;oBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpD;aACF;iBAAM;gBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aACpE;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,103 @@
1
+ import logger, { DatadogTransport, ReactNativeDatadogTransport } from '../index.js';
2
+ const DdInstance = {
3
+ logger: {
4
+ error: vi.fn(),
5
+ warn: vi.fn(),
6
+ info: vi.fn(),
7
+ debug: vi.fn(),
8
+ },
9
+ };
10
+ describe('datadog web transport', () => {
11
+ beforeAll(() => {
12
+ logger.addTransport(new DatadogTransport({ datadogLogsInstance: DdInstance, level: 'debug' }));
13
+ });
14
+ afterEach(() => {
15
+ Object.values(DdInstance.logger).forEach((level) => level.mockClear());
16
+ });
17
+ afterAll(() => {
18
+ logger.clearTransports();
19
+ });
20
+ it.each(['info', 'warn', 'debug', 'error'])('should log %s to dd', (level) => {
21
+ const customErr = 'custom error';
22
+ logger[level](customErr);
23
+ expect(DdInstance.logger[level]).toHaveBeenCalledWith(customErr, {});
24
+ });
25
+ it('should log error instance correctly as first arg', () => {
26
+ const customErr = Error('ERR');
27
+ logger.error(customErr);
28
+ expect(DdInstance.logger.error).toHaveBeenCalledWith(customErr.message, {}, customErr);
29
+ });
30
+ it('should log error instance correctly as first arg with meta', () => {
31
+ const customErr = Error('ERR');
32
+ const customMeta = { meta: { extra: 'something' } };
33
+ logger.error(customErr, customMeta);
34
+ expect(DdInstance.logger.error).toHaveBeenCalledWith(customErr.message, customMeta, customErr);
35
+ });
36
+ it('should log correctly with string as first arg and error isntance as second', () => {
37
+ const customMsg = 'message';
38
+ const customErr = Error('ERR');
39
+ logger.error(customMsg, customErr);
40
+ expect(DdInstance.logger.error).toHaveBeenCalledWith(customMsg, {}, customErr);
41
+ });
42
+ it('should log correctly when first arg is a string and no second arg is passed', () => {
43
+ const customMsg = 'message';
44
+ logger.error(customMsg);
45
+ expect(DdInstance.logger.error).toHaveBeenCalledWith(customMsg, {});
46
+ });
47
+ it('should log correctly when first arg is not a string', () => {
48
+ const customArg = [1, 2, 3];
49
+ logger.error(customArg);
50
+ expect(DdInstance.logger.error).toHaveBeenCalledWith('[' + customArg.join(',') + ']', {});
51
+ });
52
+ });
53
+ const rnDdInstance = {
54
+ error: vi.fn(),
55
+ info: vi.fn(),
56
+ debug: vi.fn(),
57
+ warn: vi.fn(),
58
+ };
59
+ describe('datadog react native transport', () => {
60
+ beforeAll(() => {
61
+ logger.addTransport(new ReactNativeDatadogTransport({ datadogLogsInstance: rnDdInstance, level: 'debug' }));
62
+ });
63
+ afterEach(() => {
64
+ Object.values(rnDdInstance).forEach((level) => level.mockClear());
65
+ });
66
+ afterAll(() => {
67
+ logger.clearTransports();
68
+ });
69
+ it.each `
70
+ meta | expected
71
+ ${undefined} | ${{}}
72
+ `('should log error correctly if first argument is an Error', ({ meta, expected }) => {
73
+ const customError = Error('custom err');
74
+ logger.error(customError, meta);
75
+ expect(rnDdInstance.error).toHaveBeenCalledWith(customError.message, customError.name, customError.message, customError.stack, expected);
76
+ });
77
+ it('should log error correctly if first argument is not an Error nor string', () => {
78
+ const customMeta = 'string meta';
79
+ logger.error([1, 2], 'string meta');
80
+ expect(rnDdInstance.error).toHaveBeenCalledWith('[1,2]', { meta: customMeta });
81
+ });
82
+ describe('when message is a string', () => {
83
+ it('should log an error correctly when meta is an Error', () => {
84
+ const customMessage = 'my message';
85
+ const customError = Error('custom error');
86
+ logger.error(customMessage, customError);
87
+ expect(rnDdInstance.error).toHaveBeenCalledWith(customMessage, customError.name, customError.message, customError.stack);
88
+ });
89
+ it('should log an error message correctly when meta is an object', () => {
90
+ const customMessage = 'custom msg';
91
+ const customMeta = { extra: 'val' };
92
+ logger.error(customMessage, customMeta);
93
+ expect(rnDdInstance.error).toHaveBeenCalledWith(customMessage, customMeta);
94
+ });
95
+ it('should log a message correctly when meta is not an object', () => {
96
+ const customMessage = 'custom msg';
97
+ const customMeta = 'string';
98
+ logger.error(customMessage, customMeta);
99
+ expect(rnDdInstance.error).toHaveBeenCalledWith(customMessage, { meta: customMeta });
100
+ });
101
+ });
102
+ });
103
+ //# sourceMappingURL=datadog.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datadog.spec.js","sourceRoot":"","sources":["../../src/transports/datadog.spec.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,14 @@ export class SentryTransport {
41
41
  return;
42
42
  }
43
43
  if (typeof message === 'string') {
44
- opts.sentryInstance.captureMessage(message, meta);
44
+ if (meta instanceof Error) {
45
+ const originalMessage = meta.message;
46
+ meta.message = message;
47
+ opts.sentryInstance.captureException(meta, { extra: { originalMessage } });
48
+ }
49
+ else {
50
+ opts.sentryInstance.captureMessage(message, meta);
51
+ }
45
52
  }
46
53
  else if (message instanceof Error) {
47
54
  opts.sentryInstance.captureException(message, meta);
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../src/transports/sentry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAmBF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrC,kEAAkE;YAClE,iGAAiG;YACjG,4FAA4F;YAC5F,8FAA8F;YAC9F,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAChD;gBACA,6DAA6D;gBAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAI,IAAmB,IAAI,EAAE,CAAC;gBACtG,MAAM,WAAW,GAAG;oBAClB,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;oBACpC,KAAK,EAAE,WAAW;oBAClB,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,WAAW;iBACZ,CAAC;gBAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBACzD;qBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;oBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBAC3D;gBACD,OAAO;aACR;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACnD;iBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;gBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACrD;iBAAM,IAAI,IAAI,YAAY,KAAK,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;aACnE;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../src/transports/sentry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAmBF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrC,kEAAkE;YAClE,iGAAiG;YACjG,4FAA4F;YAC5F,8FAA8F;YAC9F,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAChD;gBACA,6DAA6D;gBAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAI,IAAmB,IAAI,EAAE,CAAC;gBACtG,MAAM,WAAW,GAAG;oBAClB,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;oBACpC,KAAK,EAAE,WAAW;oBAClB,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,WAAW;iBACZ,CAAC;gBAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBACzD;qBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;oBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBAC3D;gBACD,OAAO;aACR;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,IAAI,YAAY,KAAK,EAAE;oBACzB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;oBACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;iBAC5E;qBAAM;oBACL,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;iBACnD;aACF;iBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;gBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACrD;iBAAM,IAAI,IAAI,YAAY,KAAK,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;aACnE;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ import logger, { SentryTransport } from '../index.js';
2
+ const sentryInstance = {
3
+ captureMessage: vi.fn(),
4
+ captureException: vi.fn(),
5
+ };
6
+ describe('sentry transport', () => {
7
+ beforeAll(() => {
8
+ logger.addTransport(new SentryTransport({ sentryInstance }));
9
+ });
10
+ afterEach(() => {
11
+ Object.values(sentryInstance).forEach((val) => val.mockClear());
12
+ });
13
+ afterAll(() => {
14
+ logger.clearTransports();
15
+ });
16
+ it.each([undefined, 'meta'])('should capture message when first arg is a string', (meta) => {
17
+ const customMsg = 'message';
18
+ logger.error(customMsg, meta);
19
+ expect(sentryInstance.captureMessage).toHaveBeenCalledWith(customMsg, meta);
20
+ expect(sentryInstance.captureException).not.toHaveBeenCalled();
21
+ });
22
+ it.each([undefined, 'meta'])('should capture exception when first arg is an Error', (meta) => {
23
+ const customMsg = 'msg';
24
+ const customErr = Error(customMsg);
25
+ logger.error(customErr, meta);
26
+ expect(sentryInstance.captureException).toHaveBeenCalledWith(customErr, meta);
27
+ expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
28
+ });
29
+ it.each([null, [], () => { }])('should capture exception when second arg is an Error', (message) => {
30
+ const customErr = Error('err');
31
+ logger.error(message, customErr);
32
+ expect(sentryInstance.captureException).toHaveBeenCalledWith(customErr, customErr);
33
+ expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
34
+ });
35
+ it('should capture message when args fall into catch all', () => {
36
+ logger.error([], []);
37
+ expect(sentryInstance.captureMessage).toHaveBeenCalledWith('[]', []);
38
+ expect(sentryInstance.captureException).not.toHaveBeenCalled();
39
+ });
40
+ it('should capture message when first arg is string and second arg is properly filled', () => {
41
+ const customMessage = 'Something happened';
42
+ const customMeta = {
43
+ tags: { type: 'buyer' },
44
+ extra: { filters: { id: 1 } },
45
+ contexts: { order: { id: 2 } },
46
+ };
47
+ logger.error(customMessage, customMeta);
48
+ expect(sentryInstance.captureMessage).toHaveBeenCalledWith(customMessage, expect.objectContaining(customMeta));
49
+ expect(sentryInstance.captureException).not.toHaveBeenCalled();
50
+ });
51
+ it('should capture exception when first arg is an Error and second arg is properly filled', () => {
52
+ const customErr = Error('Something happened');
53
+ const customMeta = {
54
+ tags: { type: 'buyer' },
55
+ extra: { filters: { id: 1 } },
56
+ contexts: { order: { id: 2 } },
57
+ };
58
+ logger.error(customErr, customMeta);
59
+ expect(sentryInstance.captureException).toHaveBeenCalledWith(customErr, expect.objectContaining(customMeta));
60
+ expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
61
+ });
62
+ it('should capture an exception with custom message when first arg is a string but second is an Error', () => {
63
+ const customMessage = 'My custom message';
64
+ const customErrorMessage = 'My custom error';
65
+ const customError = Error(customErrorMessage);
66
+ expect(customError.message).toBe(customErrorMessage);
67
+ logger.error(customMessage, customError);
68
+ expect(customError.message).toBe(customMessage);
69
+ expect(sentryInstance.captureException).toHaveBeenCalledWith(customError, expect.objectContaining({ extra: { originalMessage: customErrorMessage } }));
70
+ expect(sentryInstance.captureMessage).not.toHaveBeenCalled();
71
+ });
72
+ });
73
+ //# sourceMappingURL=sentry.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry.spec.js","sourceRoot":"","sources":["../../src/transports/sentry.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/snitch",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Front end logging inspired by winston.",
5
5
  "type": "module",
6
6
  "exports": {