@trojs/logger 0.4.2 → 0.4.3

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,7 +1,7 @@
1
1
  {
2
2
  "name": "@trojs/logger",
3
3
  "description": "Winston logger for TroJS",
4
- "version": "0.4.2",
4
+ "version": "0.4.3",
5
5
  "author": {
6
6
  "name": "Pieter Wigboldus",
7
7
  "url": "https://trojs.org/"
@@ -31,17 +31,22 @@
31
31
  ],
32
32
  "main": "src/logger.js",
33
33
  "devDependencies": {
34
- "@trojs/error": "^3.0.0",
35
34
  "@hckrnews/eslint-config": "^3.0.0",
36
- "c8": "^9.0.0",
35
+ "@trojs/error": "^3.0.0",
36
+ "c8": "^10.0.0",
37
37
  "eslint": "^8.23.0",
38
- "eslint-config-standard": "^17.1.0",
39
- "eslint-plugin-import": "^2.26.0",
40
- "eslint-plugin-jsdoc": "^48.0.6",
41
- "eslint-plugin-n": "^16.6.2",
42
- "eslint-plugin-promise": "^6.0.1",
43
- "eslint-plugin-sonarjs": "^0.25.0",
44
- "jscpd": "^4.0.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": "^48.8.3",
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",
48
+ "jscpd": "^4.0.0",
49
+ "prettier": "^3.3.3"
45
50
  },
46
51
  "repository": {
47
52
  "type": "git",
@@ -57,12 +62,12 @@
57
62
  "error"
58
63
  ],
59
64
  "dependencies": {
60
- "@trojs/enum": "^3.0.0",
61
- "@trojs/mutator": "^0.4.0",
62
- "@trojs/objects": "^8.0.0",
63
65
  "@sentry/integrations": "^7.117.0",
64
66
  "@sentry/node": "^7.117.0",
65
67
  "@sentry/tracing": "^7.117.0",
68
+ "@trojs/enum": "^3.0.0",
69
+ "@trojs/mutator": "^0.4.0",
70
+ "@trojs/objects": "^8.0.0",
66
71
  "compression": "^1.7.4",
67
72
  "cors": "^2.8.5",
68
73
  "dotenv": "^16.0.3",
@@ -1,30 +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 = ({ level, defaultLevel }) => (info) => ({
22
- ...info,
23
- severity: levelToSeverity[level] || levelToSeverity[defaultLevel],
24
- level: levels[level] || levels[defaultLevel],
25
- time: Date.now(),
26
- pid: process.pid,
27
- hostname: os.hostname()
28
- })
21
+ const stackdriver =
22
+ ({ level, defaultLevel }) =>
23
+ (info) => ({
24
+ ...info,
25
+ severity: levelToSeverity[level] || levelToSeverity[defaultLevel],
26
+ level: levels[level] || levels[defaultLevel],
27
+ time: Date.now(),
28
+ pid: process.pid,
29
+ hostname: os.hostname(),
30
+ });
29
31
 
30
- export default stackdriver
32
+ export default stackdriver;
package/src/logger.js CHANGED
@@ -1,20 +1,20 @@
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
  const defaultLoggers = [
5
- {
6
- type: 'console'
7
- }
8
- ]
5
+ {
6
+ type: 'console',
7
+ },
8
+ ];
9
9
 
10
10
  const levels = {
11
- fatal: 0,
12
- error: 1,
13
- warn: 2,
14
- info: 3,
15
- debug: 4,
16
- trace: 5
17
- }
11
+ fatal: 0,
12
+ error: 1,
13
+ warn: 2,
14
+ info: 3,
15
+ debug: 4,
16
+ trace: 5,
17
+ };
18
18
 
19
19
  /**
20
20
  * Create the logger
@@ -25,13 +25,13 @@ const levels = {
25
25
  * @returns {winston.Logger}
26
26
  */
27
27
  export default ({ loggers = defaultLoggers, level = 'info', meta = {} }) => {
28
- const winstonLoggers = makeLoggers({ winston, loggers })
28
+ const winstonLoggers = makeLoggers({ winston, loggers });
29
29
 
30
- return winston.createLogger({
31
- level,
32
- levels,
33
- format: winston.format.json(),
34
- defaultMeta: meta,
35
- transports: winstonLoggers
36
- })
37
- }
30
+ return winston.createLogger({
31
+ level,
32
+ levels,
33
+ format: winston.format.json(),
34
+ defaultMeta: meta,
35
+ transports: winstonLoggers,
36
+ });
37
+ };
@@ -1,3 +1,4 @@
1
- export default ({ winston, logger }) => new winston.transports.File({
2
- filename: logger?.location || 'combined.log'
3
- })
1
+ export default ({ winston, logger }) =>
2
+ new winston.transports.File({
3
+ filename: logger?.location || 'combined.log',
4
+ });
@@ -1,13 +1,15 @@
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: winston.format.combine(
9
- winston.format(stackDriver({ level: logger?.level, defaultLevel }))(),
10
- winston.format.json()
11
- )
12
- })
13
- }
6
+ return new winston.transports.Console({
7
+ level: logger?.level || defaultLevel,
8
+ format: winston.format.combine(
9
+ winston.format(
10
+ stackDriver({ level: logger?.level, defaultLevel })
11
+ )(),
12
+ winston.format.json()
13
+ ),
14
+ });
15
+ };
@@ -1,4 +1,5 @@
1
- export default ({ winston, logger }) => new winston.transports.File({
2
- filename: logger?.location || 'error.log',
3
- level: logger?.level || 'error'
4
- })
1
+ export default ({ winston, logger }) =>
2
+ new winston.transports.File({
3
+ filename: logger?.location || 'error.log',
4
+ level: logger?.level || 'error',
5
+ });
@@ -1,29 +1,30 @@
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
- const makeLoggers = ({ winston, loggers }) => Logger.createAll(loggers).map(logger => {
16
- const loggerFn = winstonLoggers[logger.type]
17
- if (!loggerFn) {
18
- throw new Error(`Unknown logger type: ${logger.type}`)
19
- }
15
+ const makeLoggers = ({ winston, loggers }) =>
16
+ Logger.createAll(loggers).map((logger) => {
17
+ const loggerFn = winstonLoggers[logger.type];
18
+ if (!loggerFn) {
19
+ throw new Error(`Unknown logger type: ${logger.type}`);
20
+ }
20
21
 
21
- const opts = {
22
- logger,
23
- winston
24
- }
22
+ const opts = {
23
+ logger,
24
+ winston,
25
+ };
25
26
 
26
- return loggerFn(opts)
27
- })
27
+ return loggerFn(opts);
28
+ });
28
29
 
29
- export default makeLoggers
30
+ 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,4 @@
1
- import { Enum } from '@trojs/enum'
1
+ import { Enum } from '@trojs/enum';
2
2
 
3
3
  /**
4
4
  * @typedef LevelType
@@ -17,10 +17,15 @@ import { Enum } from '@trojs/enum'
17
17
  * @enum { LevelType }
18
18
  */
19
19
  export default class Level extends Enum {
20
- static info = 'info'
21
- static fatal = 'fatal'
22
- static error = 'error'
23
- static warn = 'warn'
24
- static debug = 'debug'
25
- static trace = 'trace'
20
+ static info = 'info';
21
+
22
+ static fatal = 'fatal';
23
+
24
+ static error = 'error';
25
+
26
+ static warn = 'warn';
27
+
28
+ static debug = 'debug';
29
+
30
+ static trace = 'trace';
26
31
  }
@@ -1,6 +1,6 @@
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
@@ -9,29 +9,29 @@ import LoggerMutator from './mutators/logger.js'
9
9
  /**
10
10
  * @type {LoggerType}
11
11
  */
12
- const LoggerObject = Obj({ schema: loggerSchema })
12
+ const LoggerObject = Obj({ schema: loggerSchema });
13
13
 
14
14
  export default class Logger {
15
- /**
16
- * Create a logger object
17
- * @param {LoggerType} data
18
- * @returns {LoggerType}
19
- */
20
- static create (data) {
21
- const logger = LoggerMutator.create(data)
22
- return LoggerObject.create(logger)
23
- }
24
-
25
- /**
26
- * Create logger objects
27
- * @param {LoggerType[]} data
28
- * @returns {LoggerType[]}
29
- */
30
- static createAll (data) {
31
- if (!data || data.length === 0) {
32
- return []
15
+ /**
16
+ * Create a logger object
17
+ * @param {LoggerType} data
18
+ * @returns {LoggerType}
19
+ */
20
+ static create(data) {
21
+ const logger = LoggerMutator.create(data);
22
+ return LoggerObject.create(logger);
33
23
  }
34
24
 
35
- return data.map(loggerData => Logger.create(loggerData))
36
- }
25
+ /**
26
+ * Create logger objects
27
+ * @param {LoggerType[]} data
28
+ * @returns {LoggerType[]}
29
+ */
30
+ static createAll(data) {
31
+ if (!data || data.length === 0) {
32
+ return [];
33
+ }
34
+
35
+ return data.map((loggerData) => Logger.create(loggerData));
36
+ }
37
37
  }
@@ -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
@@ -21,15 +21,15 @@ import Level from '../enums/level.js'
21
21
  */
22
22
 
23
23
  export default {
24
- type: String,
25
- 'location?': String,
26
- 'level?': Level,
27
- 'key?': String,
28
- 'credentials?': Object,
29
- 'environment?': String,
30
- 'serverName?': String,
31
- 'release?': String,
32
- 'debug?': Boolean,
33
- 'sampleRate?': Number,
34
- 'tracesSampleRate?': Number
35
- }
24
+ type: String,
25
+ 'location?': String,
26
+ 'level?': Level,
27
+ 'key?': String,
28
+ 'credentials?': Object,
29
+ 'environment?': String,
30
+ 'serverName?': String,
31
+ 'release?': String,
32
+ 'debug?': Boolean,
33
+ 'sampleRate?': Number,
34
+ 'tracesSampleRate?': Number,
35
+ };