string-normalize-space is a node.js module implementing one single function, normalizeSpace, following the definition from XPath 1.0.
So it's basically like String.prototype.trim(), but also works inside the string.
The winston compatible log formatter is provided.
npm install string-normalize-space
const {normalizeSpace} = require ('string-normalize-space')
const ab = normalizeSpace (' A\r\n\t B ') // will be 'A B'const {createLogger, format: {combine, printf}, transports} = require ('winston')
const normalizeSpaceLogFormat = require ('string-normalize-space').logform
const logger = createLogger ({
transports: [
new transports.Console (),
],
format: combine (
printf (info => `${info.message} ${info.meta} ${info.stack}`), // may be lots of \n
normalizeSpaceLogFormat () // exactly one line
),
})Unlike numerous similar modules, this one doesn't rely on any regular expressions.
As mentioned before, the XPath 1.0 specification is followed, so only 4 characters are considered "space". No effort is made to support extended Unicode space characters.