@leaflink/snitch 1.2.0 → 1.2.2

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.
package/README.md CHANGED
@@ -5,6 +5,27 @@
5
5
 
6
6
  Simple and extensible browser logging, inspired by [Winston](https://github.com/winstonjs/winston).
7
7
 
8
+
9
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
10
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
11
+ ## Table of Contents
12
+
13
+ - [Installation](#installation)
14
+ - [Transports](#transports)
15
+ - [Log Levels](#log-levels)
16
+ - [Usage](#usage)
17
+ - [Singleton Logger](#singleton-logger)
18
+ - [New Logger](#new-logger)
19
+ - [Console Transport](#console-transport)
20
+ - [Sentry Transport](#sentry-transport)
21
+ - [Datadog Logs Transport](#datadog-logs-transport)
22
+ - [With Log Level](#with-log-level)
23
+ - [Custom Transports](#custom-transports)
24
+ - [Testing](#testing)
25
+ - [Stubbing snitch](#stubbing-snitch)
26
+
27
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
28
+
8
29
  ## Installation
9
30
 
10
31
  `$ npm i @leaflink/snitch`
@@ -215,3 +236,20 @@ logger.add(new CustomTransport());
215
236
  ```
216
237
 
217
238
  Note: You can add a custom transport in your project, but consider opening a PR in this repo instead!
239
+
240
+ ## Testing
241
+
242
+ ### Stubbing snitch
243
+
244
+ When there's a need to mock this logger or you want to test if a specific log was printed, you can just mock it inside you test file:
245
+
246
+ ```ts
247
+ import logger from '@leaflink/snitch';
248
+
249
+ vi.mock('@leaflink/snitch');
250
+
251
+ it('should redirect to error page if fetching the user profile fails', async () => {
252
+ // ...
253
+ expect(logger.error).toHaveBeenCalled();
254
+ })
255
+ ```
package/dist/index.d.ts CHANGED
@@ -7,7 +7,9 @@ export interface Transport {
7
7
  }
8
8
  export declare class Logger {
9
9
  transports: Transport[];
10
- constructor(opts?: any);
10
+ constructor(opts?: {
11
+ transports: Transport[];
12
+ });
11
13
  private _log;
12
14
  debug(message: LogMessage, meta?: Record<string, unknown>): void;
13
15
  info(message: LogMessage, meta?: Record<string, unknown>): void;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAUF,MAAM,OAAO,MAAM;IACjB,UAAU,CAAc;IAExB,YAAY,IAAK;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,IAAI,CAAC,KAAe,EAAE,OAAmB,EAAE,IAA8B;QAC/E,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC5C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAA8B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAA8B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,OAAmB,EAAE,IAA8B;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAA8B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAA8B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,eAAe,MAAM,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAUF,MAAM,OAAO,MAAM;IACjB,UAAU,CAAc;IAExB,YAAY,IAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,IAAI,CAAC,KAAe,EAAE,OAAmB,EAAE,IAA8B;QAC/E,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC5C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAA8B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAA8B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,OAAmB,EAAE,IAA8B;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAA8B;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAA8B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,eAAe,MAAM,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -6,16 +6,16 @@ export class ConsoleTransport {
6
6
  this.log = (message, meta, level) => {
7
7
  switch (level) {
8
8
  case 'error':
9
- console.error(message, meta);
9
+ console.error(message, meta ?? '');
10
10
  break;
11
11
  case 'warn':
12
- console.warn(message, meta);
12
+ console.warn(message, meta ?? '');
13
13
  break;
14
14
  case 'debug':
15
- console.debug(message, meta);
15
+ console.debug(message, meta ?? '');
16
16
  break;
17
17
  default:
18
- console.log(message, meta);
18
+ console.log(message, meta ?? '');
19
19
  }
20
20
  };
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAiG;IAEpG,YAAY,IAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,QAAQ,KAAK,EAAE;gBACb,KAAK,OAAO;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,OAAO;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAiG;IAEpG,YAAY,IAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,QAAQ,KAAK,EAAE;gBACb,KAAK,OAAO;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBAClC,MAAM;gBACR,KAAK,OAAO;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBACnC,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;aACpC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,7 +1,10 @@
1
1
  import { LogLevel, Transport } from '../index.js';
2
2
  export interface SentryTransportOptions {
3
3
  level?: LogLevel;
4
- sentryInstance: any;
4
+ sentryInstance: {
5
+ captureMessage: (message: string, sentryMeta: Record<string, unknown> | undefined) => void;
6
+ captureException: (message: object, sentryMeta: Record<string, unknown> | undefined) => void;
7
+ };
5
8
  }
6
9
  export declare class SentryTransport implements Transport {
7
10
  level: LogLevel;
@@ -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;AAOF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAiG;IAEpG,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG;gBACjB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBACjC,GAAG,IAAI;aACR,CAAC;YACF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;aACzD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;aAC3D;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;AAUF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAiG;IAEpG,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG;gBACjB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBACjC,GAAG,IAAI;aACR,CAAC;YACF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;aACzD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;aAC3D;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/snitch",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Front end logging inspired by winston.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -25,6 +25,8 @@
25
25
  "default": "./dist/transports/datadog.js"
26
26
  }
27
27
  },
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
28
30
  "engines": {
29
31
  "node": ">=16",
30
32
  "npm": ">=8"
@@ -32,7 +34,6 @@
32
34
  "files": [
33
35
  "dist"
34
36
  ],
35
- "types": "./dist/index.d.ts",
36
37
  "publishConfig": {
37
38
  "access": "public"
38
39
  },