@trojs/logger 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,17 +1,19 @@
1
1
  {
2
2
  "name": "@trojs/logger",
3
3
  "description": "Winston logger for TroJS",
4
- "version": "0.5.2",
4
+ "version": "0.5.4",
5
5
  "author": {
6
6
  "name": "Pieter Wigboldus",
7
7
  "url": "https://trojs.org/"
8
8
  },
9
9
  "license": "MIT",
10
10
  "scripts": {
11
- "lint": "eslint src/*.js --config .eslintrc",
12
- "lint:report": "eslint src/*.js --config .eslintrc -f json -o report.json",
13
- "lint:fix": "eslint src/ --config .eslintrc --fix",
14
- "test": "c8 node --test",
11
+ "lint": "eslint",
12
+ "lint:report": "eslint src/*.js -f json -o report.json",
13
+ "lint:fix": "eslint --fix",
14
+ "lint:rules": "eslint --print-config file.js > eslintconfig.json",
15
+ "test": "node --test --experimental-test-coverage --test-reporter=spec --test-reporter=lcov --test-reporter-destination=stdout --test-reporter-destination=./coverage/lcov.info",
16
+ "test:watch": "node --watch --test --experimental-test-coverage --test-reporter=spec --test-reporter=lcov --test-reporter-destination=stdout --test-reporter-destination=./coverage/lcov.info",
15
17
  "cpd": "node_modules/jscpd/bin/jscpd src",
16
18
  "vulnerabilities": "npm audit --omit=dev"
17
19
  },
@@ -31,20 +33,10 @@
31
33
  ],
32
34
  "main": "src/logger.js",
33
35
  "devDependencies": {
34
- "@hckrnews/eslint-config": "^3.0.0",
35
36
  "@trojs/error": "^4.0.0",
36
- "c8": "^10.0.0",
37
- "eslint": "^8.23.0",
38
- "eslint-config-airbnb-base": "^15.0.0",
39
- "eslint-config-prettier": "^9.1.0",
40
- "eslint-plugin-html": "^8.1.1",
41
- "eslint-plugin-import": "^2.29.1",
42
- "eslint-plugin-jsdoc": "^50.0.0",
43
- "eslint-plugin-jsx-a11y": "^6.9.0",
44
- "eslint-plugin-n": "^17.9.0",
45
- "eslint-plugin-prettier": "^5.2.1",
46
- "eslint-plugin-promise": "^7.0.0",
47
- "eslint-plugin-sonarjs": "^0.25.1",
37
+ "@trojs/lint": "^0.2.13",
38
+ "eslint": "^9.24.0",
39
+ "globals": "^16.0.0",
48
40
  "jscpd": "^4.0.0",
49
41
  "prettier": "^3.3.3"
50
42
  },
@@ -53,7 +45,7 @@
53
45
  "url": "https://github.com/trojs/logger"
54
46
  },
55
47
  "engines": {
56
- "node": ">= 18.13"
48
+ "node": ">= 20"
57
49
  },
58
50
  "keywords": [
59
51
  "javascript",
@@ -1,32 +1,32 @@
1
- import os from 'node:os';
1
+ import os from 'node:os'
2
2
 
3
3
  const levelToSeverity = {
4
- trace: 'DEBUG',
5
- debug: 'DEBUG',
6
- info: 'INFO',
7
- warn: 'WARNING',
8
- error: 'ERROR',
9
- fatal: 'CRITICAL',
10
- };
4
+ trace: 'DEBUG',
5
+ debug: 'DEBUG',
6
+ info: 'INFO',
7
+ warn: 'WARNING',
8
+ error: 'ERROR',
9
+ fatal: 'CRITICAL'
10
+ }
11
11
 
12
12
  const levels = {
13
- trace: 10,
14
- debug: 20,
15
- info: 30,
16
- warn: 40,
17
- error: 50,
18
- fatal: 60,
19
- };
13
+ trace: 10,
14
+ debug: 20,
15
+ info: 30,
16
+ warn: 40,
17
+ error: 50,
18
+ fatal: 60
19
+ }
20
20
 
21
- const stackdriver =
22
- ({ level, defaultLevel }) =>
23
- (info) => ({
21
+ const stackdriver
22
+ = ({ level, defaultLevel }) =>
23
+ (info) => ({
24
24
  ...info,
25
25
  severity: levelToSeverity[level] || levelToSeverity[defaultLevel],
26
26
  level: levels[level] || levels[defaultLevel],
27
27
  time: Date.now(),
28
28
  pid: process.pid,
29
- hostname: os.hostname(),
30
- });
29
+ hostname: os.hostname()
30
+ })
31
31
 
32
- export default stackdriver;
32
+ export default stackdriver
package/src/logger.js CHANGED
@@ -1,5 +1,5 @@
1
- import winston from 'winston';
2
- import makeLoggers from './loggers/index.js';
1
+ import winston from 'winston'
2
+ import makeLoggers from './loggers/index.js'
3
3
 
4
4
  /**
5
5
  * @typedef {import('./models/schemas/logger.js').Logger} LoggerType
@@ -8,19 +8,19 @@ import makeLoggers from './loggers/index.js';
8
8
 
9
9
  /** @type {LoggerType[]} */
10
10
  const defaultLoggers = [
11
- {
12
- type: 'console',
13
- },
14
- ];
11
+ {
12
+ type: 'console'
13
+ }
14
+ ]
15
15
 
16
16
  const levels = {
17
- fatal: 0,
18
- error: 1,
19
- warn: 2,
20
- info: 3,
21
- debug: 4,
22
- trace: 5,
23
- };
17
+ fatal: 0,
18
+ error: 1,
19
+ warn: 2,
20
+ info: 3,
21
+ debug: 4,
22
+ trace: 5
23
+ }
24
24
 
25
25
  /**
26
26
  * Create the logger
@@ -31,12 +31,12 @@ const levels = {
31
31
  * @returns {winston.Logger}
32
32
  */
33
33
  export default ({ loggers = defaultLoggers, level = 'info', meta = {} }) => {
34
- const winstonLoggers = makeLoggers({ winston, loggers });
34
+ const winstonLoggers = makeLoggers({ winston, loggers })
35
35
 
36
- return winston.createLogger({
37
- level,
38
- levels,
39
- defaultMeta: meta,
40
- transports: winstonLoggers,
41
- });
42
- };
36
+ return winston.createLogger({
37
+ level,
38
+ levels,
39
+ defaultMeta: meta,
40
+ transports: winstonLoggers
41
+ })
42
+ }
@@ -1,4 +1,4 @@
1
1
  export default ({ winston, logger }) =>
2
- new winston.transports.File({
3
- filename: logger?.location || 'combined.log',
4
- });
2
+ new winston.transports.File({
3
+ filename: logger?.location || 'combined.log'
4
+ })
@@ -1,22 +1,25 @@
1
- import stackDriver from '../helpers/stackdriver.js';
1
+ import stackDriver from '../helpers/stackdriver.js'
2
2
 
3
3
  export default ({ winston, logger }) => {
4
- const defaultLevel = 'trace';
4
+ const defaultLevel = 'trace'
5
5
 
6
- return new winston.transports.Console({
7
- level: logger?.level || defaultLevel,
8
- format:
6
+ const jsonFormatter = winston.format.combine(
7
+ winston.format.errors({ stack: logger?.debug ?? false }),
8
+ winston.format(
9
+ stackDriver({ level: logger?.level, defaultLevel })
10
+ )(),
11
+ winston.format.json()
12
+ )
13
+
14
+ const defaultFormatter = winston.format.combine(
15
+ winston.format.errors({ stack: logger?.debug ?? false }),
16
+ winston.format.simple()
17
+ )
18
+ return new winston.transports.Console({
19
+ level: logger?.level || defaultLevel,
20
+ format:
9
21
  logger.format === 'json'
10
- ? winston.format.combine(
11
- winston.format.errors({ stack: logger?.debug ?? false }),
12
- winston.format(
13
- stackDriver({ level: logger?.level, defaultLevel })
14
- )(),
15
- winston.format.json()
16
- )
17
- : winston.format.combine(
18
- winston.format.errors({ stack: logger?.debug ?? false }),
19
- winston.format.simple()
20
- ),
21
- });
22
- };
22
+ ? jsonFormatter
23
+ : defaultFormatter
24
+ })
25
+ }
@@ -1,5 +1,5 @@
1
1
  export default ({ winston, logger }) =>
2
- new winston.transports.File({
3
- filename: logger?.location || 'error.log',
4
- level: logger?.level || 'error',
5
- });
2
+ new winston.transports.File({
3
+ filename: logger?.location || 'error.log',
4
+ level: logger?.level || 'error'
5
+ })
@@ -1,16 +1,16 @@
1
- import makeErrorFileLogger from './error-file.js';
2
- import makeCombinedFileLogger from './combined-file.js';
3
- import makeSentryLogger from './sentry.js';
4
- import makeConsoleLogger from './console.js';
1
+ import makeErrorFileLogger from './error-file.js'
2
+ import makeCombinedFileLogger from './combined-file.js'
3
+ import makeSentryLogger from './sentry.js'
4
+ import makeConsoleLogger from './console.js'
5
5
 
6
- import Logger from '../models/logger.js';
6
+ import Logger from '../models/logger.js'
7
7
 
8
8
  const winstonLoggers = {
9
- sentry: makeSentryLogger,
10
- errorFile: makeErrorFileLogger,
11
- combinedFile: makeCombinedFileLogger,
12
- console: makeConsoleLogger,
13
- };
9
+ sentry: makeSentryLogger,
10
+ errorFile: makeErrorFileLogger,
11
+ combinedFile: makeCombinedFileLogger,
12
+ console: makeConsoleLogger
13
+ }
14
14
 
15
15
  /**
16
16
  * @typedef {import('../models/schemas/logger.js').Logger} LoggerType
@@ -25,18 +25,18 @@ const winstonLoggers = {
25
25
  * @returns {TransportStream[]}
26
26
  */
27
27
  const makeLoggers = ({ winston, loggers }) =>
28
- Logger.createAll(loggers).map((logger) => {
29
- const loggerFn = winstonLoggers[logger.type];
30
- if (!loggerFn) {
31
- throw new Error(`Unknown logger type: ${logger.type}`);
32
- }
28
+ Logger.createAll(loggers).map((logger) => {
29
+ const loggerFn = winstonLoggers[logger.type]
30
+ if (!loggerFn) {
31
+ throw new Error(`Unknown logger type: ${logger.type}`)
32
+ }
33
33
 
34
- const opts = {
35
- logger,
36
- winston,
37
- };
34
+ const opts = {
35
+ logger,
36
+ winston
37
+ }
38
38
 
39
- return loggerFn(opts);
40
- });
39
+ return loggerFn(opts)
40
+ })
41
41
 
42
- export default makeLoggers;
42
+ export default makeLoggers
@@ -1,20 +1,20 @@
1
- import SentryPackage from 'winston-transport-sentry-node';
1
+ import SentryPackage from 'winston-transport-sentry-node'
2
2
 
3
- const Sentry = SentryPackage?.default || SentryPackage;
3
+ const Sentry = SentryPackage?.default || SentryPackage
4
4
 
5
5
  export default ({ logger }) => {
6
- const options = {
7
- sentry: {
8
- dsn: logger?.location,
9
- environment: logger?.environment || 'production',
10
- serverName: logger?.serverName || 'localhost',
11
- release: logger?.release || 'unknown',
12
- debug: logger?.debug || false,
13
- sampleRate: logger?.sampleRate || 1,
14
- tracesSampleRate: logger?.tracesSampleRate || 1,
15
- },
16
- level: logger?.level || 'info',
17
- };
6
+ const options = {
7
+ sentry: {
8
+ dsn: logger?.location,
9
+ environment: logger?.environment || 'production',
10
+ serverName: logger?.serverName || 'localhost',
11
+ release: logger?.release || 'unknown',
12
+ debug: logger?.debug || false,
13
+ sampleRate: logger?.sampleRate || 1,
14
+ tracesSampleRate: logger?.tracesSampleRate || 1
15
+ },
16
+ level: logger?.level || 'info'
17
+ }
18
18
 
19
- return new Sentry(options);
20
- };
19
+ return new Sentry(options)
20
+ }
@@ -1,4 +1,5 @@
1
- import { Enum } from '@trojs/enum';
1
+ /* eslint-disable sonarjs/public-static-readonly */
2
+ import { Enum } from '@trojs/enum'
2
3
 
3
4
  /**
4
5
  * @typedef LevelType
@@ -17,15 +18,15 @@ import { Enum } from '@trojs/enum';
17
18
  * @enum { LevelType }
18
19
  */
19
20
  export default class Level extends Enum {
20
- static info = 'info';
21
+ static info = 'info'
21
22
 
22
- static fatal = 'fatal';
23
+ static fatal = 'fatal'
23
24
 
24
- static error = 'error';
25
+ static error = 'error'
25
26
 
26
- static warn = 'warn';
27
+ static warn = 'warn'
27
28
 
28
- static debug = 'debug';
29
+ static debug = 'debug'
29
30
 
30
- static trace = 'trace';
31
+ static trace = 'trace'
31
32
  }
@@ -1,34 +1,34 @@
1
- import { Obj } from '@trojs/objects';
2
- import loggerSchema from './schemas/logger.js';
3
- import LoggerMutator from './mutators/logger.js';
1
+ import { Obj } from '@trojs/objects'
2
+ import loggerSchema from './schemas/logger.js'
3
+ import LoggerMutator from './mutators/logger.js'
4
4
 
5
5
  /**
6
6
  * @typedef {import('./schemas/logger.js').Logger} LoggerType
7
7
  */
8
8
 
9
- const LoggerObject = Obj({ schema: loggerSchema });
9
+ const LoggerObject = Obj({ schema: loggerSchema })
10
10
 
11
11
  export default class Logger {
12
- /**
13
- * Create a logger object
14
- * @param {LoggerType} data
15
- * @returns {LoggerType}
16
- */
17
- static create(data) {
18
- const logger = LoggerMutator.create(data);
19
- return LoggerObject.create(logger);
20
- }
21
-
22
- /**
23
- * Create logger objects
24
- * @param {LoggerType[]} data
25
- * @returns {LoggerType[]}
26
- */
27
- static createAll(data) {
28
- if (!data || data.length === 0) {
29
- return [];
30
- }
12
+ /**
13
+ * Create a logger object
14
+ * @param {LoggerType} data
15
+ * @returns {LoggerType}
16
+ */
17
+ static create (data) {
18
+ const logger = LoggerMutator.create(data)
19
+ return LoggerObject.create(logger)
20
+ }
31
21
 
32
- return data.map((loggerData) => Logger.create(loggerData));
22
+ /**
23
+ * Create logger objects
24
+ * @param {LoggerType[]} data
25
+ * @returns {LoggerType[]}
26
+ */
27
+ static createAll (data) {
28
+ if (!data || data.length === 0) {
29
+ return []
33
30
  }
31
+
32
+ return data.map((loggerData) => Logger.create(loggerData))
33
+ }
34
34
  }
@@ -1,14 +1,14 @@
1
- import DefaultMutator from '@trojs/mutator';
2
- import LevelEnum from '../enums/level.js';
1
+ import DefaultMutator from '@trojs/mutator'
2
+ import LevelEnum from '../enums/level.js'
3
3
 
4
4
  /**
5
5
  * Logger mutator
6
6
  * @augments DefaultMutator
7
7
  */
8
8
  class Logger extends DefaultMutator {
9
- setLevelAttribute(level) {
10
- return LevelEnum.fromKey(level);
11
- }
9
+ setLevelAttribute (level) {
10
+ return LevelEnum.fromKey(level)
11
+ }
12
12
  }
13
13
 
14
- export default Logger;
14
+ export default Logger
@@ -1,4 +1,4 @@
1
- import Level from '../enums/level.js';
1
+ import Level from '../enums/level.js'
2
2
 
3
3
  /**
4
4
  * @typedef {import('../enums/level.js').LevelType} LevelType
@@ -22,16 +22,16 @@ import Level from '../enums/level.js';
22
22
  */
23
23
 
24
24
  export default {
25
- type: String,
26
- 'location?': String,
27
- 'level?': Level,
28
- 'key?': String,
29
- 'credentials?': Object,
30
- 'environment?': String,
31
- 'serverName?': String,
32
- 'release?': String,
33
- 'debug?': Boolean,
34
- 'sampleRate?': Number,
35
- 'tracesSampleRate?': Number,
36
- 'format?': String,
37
- };
25
+ type: String,
26
+ 'location?': String,
27
+ 'level?': Level,
28
+ 'key?': String,
29
+ 'credentials?': Object,
30
+ 'environment?': String,
31
+ 'serverName?': String,
32
+ 'release?': String,
33
+ 'debug?': Boolean,
34
+ 'sampleRate?': Number,
35
+ 'tracesSampleRate?': Number,
36
+ 'format?': String
37
+ }