Socket
Socket
Sign inDemoInstall

@antora/logger

Package Overview
Dependencies
Maintainers
2
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@antora/logger - npm Package Compare versions

Comparing version 3.0.0-alpha.6 to 3.0.0-alpha.7

70

lib/logger.js
'use strict'
const { posix: path } = require('path')
const { EventEmitter, once } = require('events')
const expandPath = require('@antora/expand-path-helper')
const fs = require('fs')
const ospath = require('path')
const { posix: path } = ospath
const {
destination: buildDest,
levels: { labels: levelLabels, values: levelValues },
symbols: { streamSym },
pino,
} = require('pino')
const closedLogger = { closed: true }
const finalizers = []
const INF = Infinity
const minLevel = levelLabels[Math.min.apply(null, Object.keys(levelLabels))]
const noopLogger = pino({ base: null, enabled: false, timestamp: false }, {})
const rootLoggerHolder = new Map()
const standardStreams = { 1: 'stdout', 2: 'stderr', stderr: 2, stdout: 1 }
function close () {
if (rootLoggerHolder.has()) rootLoggerHolder.get().closed = true
const rootLogger = rootLoggerHolder.get() || closedLogger
if (rootLogger.closed) return
const strm = Object.assign(rootLogger, closedLogger)[streamSym]
if (strm instanceof EventEmitter && typeof strm.end === 'function' && (strm._buf || !(strm.fd in standardStreams))) {
const waitForClose = once(strm, 'close').catch(() => undefined)
strm.end()
finalizers.push(waitForClose)
}
}
function configure ({ level = 'info', failureLevel = 'silent', format = 'structured', destination } = {}) {
if (level === 'silent' && failureLevel === 'silent' && (rootLoggerHolder.get() || {}).noop) return module.exports
function configure ({ name, level = 'info', levelFormat, failureLevel = 'silent', format, destination } = {}, baseDir) {
const silent = (levelValues[level] || (level === 'all' ? (level = minLevel) : INF)) === INF
if (silent && (levelValues[failureLevel] || INF) === INF && (rootLoggerHolder.get() || {}).noop) return module.exports
close()
const prettyPrint = format === 'pretty'
if (level === 'all') level = minLevel
if (failureLevel === 'all') failureLevel = minLevel
let colorize, dest
if (!(silent || typeof (destination || (destination = {})).write === 'function')) {
const { file, append = true, bufferSize, ...destOpts } = destination
if (bufferSize != null) destOpts.minLength = bufferSize
if (file && !(dest = standardStreams[file])) {
dest = expandPath(file, '~+', baseDir)
try {
fs.mkdirSync(ospath.dirname(dest), { recursive: true })
if (!append) fs.unlinkSync(dest)
} catch {}
} else if (process.env.NODE_ENV !== 'test') {
colorize = true
}
destination = buildDest(prettyPrint ? dest || 2 : Object.assign({ sync: true }, destOpts, { dest: dest || 1 }))
}
const logger = addFailOnExitHooks(
level === 'silent'
silent
? Object.assign(Object.create(Object.getPrototypeOf(noopLogger)), noopLogger)
: pino(
{
name: 'antora',
name,
base: {},
level,
formatters: { level: (level) => ({ level }) },
formatters: { level: levelFormat === 'number' ? (_, level) => ({ level }) : (level) => ({ level }) },
hooks: {

@@ -73,7 +103,8 @@ // NOTE logMethod only called if log level is enabled

},
suppressFlushSyncWarning: true,
translateTime: 'SYS:HH:MM:ss.l', // Q: do we really need ms? should we honor DATE_FORMAT env var?
...(process.env.NODE_ENV === 'test' && { colorize: false }),
...(colorize ? undefined : { colorize: false }),
},
},
destination || buildDest(prettyPrint ? 2 : 1)
destination
),

@@ -90,4 +121,4 @@ failureLevel

resolveTarget () {
if ((this.ownRootLogger || { closed: true }).closed) {
if ((this.ownRootLogger = rootLoggerHolder.get()).closed) {
if ((this.ownRootLogger || closedLogger).closed) {
if ((this.ownRootLogger = rootLoggerHolder.get() || closedLogger).closed) {
;(this.ownRootLogger = configure().get(null)).warn(

@@ -113,3 +144,3 @@ 'logger not configured; creating logger with default settings'

close()
return Promise.resolve((rootLoggerHolder.get() || {}).failOnExit)
return Promise.all(finalizers.splice(0, finalizers.length)).then(() => (rootLoggerHolder.get() || {}).failOnExit)
}

@@ -137,3 +168,3 @@

} else {
logger.failureLevelVal = failureLevelVal = levelValues[failureLevel] || Infinity
logger.failureLevelVal = failureLevelVal = levelValues[failureLevel] || INF
Object.defineProperty(logger, 'failureLevel', {

@@ -154,8 +185,9 @@ enumerable: true,

get () {
return this.levelVal === Infinity && this.failureLevelVal === Infinity
return this.levelVal === INF && this.failureLevelVal === INF
},
})
if (failureLevelVal === Infinity) return logger
for (const [levelName, levelVal] of Object.entries(levelValues)) {
if (levelVal >= failureLevelVal) logger[levelName] = decorateWithSetFailOnExit(logger[levelName])
if (failureLevelVal !== INF) {
for (const [levelName, levelVal] of Object.entries(levelValues)) {
if (levelVal >= failureLevelVal) logger[levelName] = decorateWithSetFailOnExit(logger[levelName])
}
}

@@ -162,0 +194,0 @@ return logger

{
"name": "@antora/logger",
"version": "3.0.0-alpha.6",
"version": "3.0.0-alpha.7",
"description": "The logger for Antora.",

@@ -18,4 +18,5 @@ "license": "MPL-2.0",

"dependencies": {
"@antora/expand-path-helper": "~1.0",
"pino": "~6.11",
"pino-pretty": "~4.8"
"pino-pretty": "~5.1"
},

@@ -37,3 +38,3 @@ "engines": {

],
"gitHead": "38ec002e88eede3ce5c401a6e226d1a0356945c5"
"gitHead": "fbd597b3680474f2083cda8a7facf1e2848c08e0"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc