@percy/logger
Advanced tools
Comparing version 1.0.0-beta.31 to 1.0.0-beta.32
@@ -17,4 +17,5 @@ "use strict"; | ||
blue: str => colorize(34, str), | ||
magenta: str => colorize(35, str) | ||
magenta: str => colorize(35, str), | ||
grey: str => colorize(90, str) | ||
}; | ||
exports.default = _default; |
@@ -121,3 +121,5 @@ "use strict"; | ||
if (error && this.level !== 'debug') message = error.toString(); | ||
stdio.write(this.format(message, debug, error ? 'error' : level) + '\n'); | ||
let elapsed = timestamp - (this.lastlog || timestamp); | ||
stdio.write(this.format(message, debug, error ? 'error' : level, elapsed) + '\n'); | ||
this.lastlog || (this.lastlog = timestamp); | ||
} | ||
@@ -132,7 +134,13 @@ } // Returns true or false if the level and debug group can write messages to stdio | ||
format(message, debug, level) { | ||
let label = 'percy'; // include debug info in the label | ||
format(message, debug, level, elapsed) { | ||
let label = 'percy'; | ||
let suffix = ''; | ||
if (debug && this.level === 'debug') { | ||
label += `:${debug}`; | ||
if (this.level === 'debug') { | ||
// include debug info in the label | ||
if (debug) label += `:${debug}`; // include elapsed time since last log | ||
if (elapsed != null) { | ||
suffix = ' ' + _colors.default.grey(`(${elapsed}ms)`); | ||
} | ||
} | ||
@@ -153,3 +161,3 @@ | ||
return `[${label}] ${message}`; | ||
return `[${label}] ${message}${suffix}`; | ||
} // Query for a set of logs by filtering the in-memory store | ||
@@ -156,0 +164,0 @@ |
{ | ||
"name": "@percy/logger", | ||
"version": "1.0.0-beta.31", | ||
"version": "1.0.0-beta.32", | ||
"license": "MIT", | ||
@@ -10,2 +10,5 @@ "main": "dist/index.js", | ||
], | ||
"engines": { | ||
"node": ">=12" | ||
}, | ||
"scripts": { | ||
@@ -23,3 +26,3 @@ "build": "babel --root-mode upward src --out-dir dist", | ||
}, | ||
"gitHead": "6971cd1f6cf69c8516a091ee59bf6dabf8780820" | ||
"gitHead": "edbef4c5ded9427447b25c13dda0ecd2639fc370" | ||
} |
@@ -12,11 +12,16 @@ const logger = require('@percy/logger'); | ||
constructor({ ansi } = {}) { | ||
constructor({ ansi, elapsed } = {}) { | ||
super(); | ||
this.ansi = ansi; | ||
this.elapsed = elapsed; | ||
} | ||
_write(chunk, encoding, callback) { | ||
// strip ansi and normalize line endings | ||
// normalize line endings | ||
chunk = chunk.toString().replace('\r\n', '\n'); | ||
// strip ansi colors | ||
if (!this.ansi) chunk = chunk.replace(ANSI_REG, ''); | ||
// strip elapsed time | ||
if (!this.elapsed) chunk = chunk.replace(/\s\S*?\(\d+ms\)\S*?\n$/, '\n'); | ||
this.data.push(chunk); | ||
@@ -49,7 +54,10 @@ callback(); | ||
logger.instance.messages.forEach(({ debug, level, message }) => { | ||
process.stderr.write(logger.format(message, debug, level) + '\n'); | ||
}); | ||
Array.from(logger.instance.messages) | ||
.reduce((lastlog, { debug, level, message, timestamp }) => { | ||
let elapsed = timestamp - (lastlog || timestamp); | ||
process.stderr.write(logger.format(message, debug, level, elapsed) + '\n'); | ||
return timestamp; | ||
}); | ||
}; | ||
module.exports = logger; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
12141
212