/* eslint no-undefined: 0 */ 'use strict'; const format = require('./format'); const { MESSAGE } = require('triple-beam'); const jsonStringify = require('safe-stable-stringify'); /* * function simple (info) * Returns a new instance of the simple format TransformStream * which writes a simple representation of logs. * * const { level, message, splat, ...rest } = info; * * ${level}: ${message} if rest is empty * ${level}: ${message} ${JSON.stringify(rest)} otherwise */ module.exports = format(info => { const stringifiedRest = jsonStringify(Object.assign({}, info, { level: undefined, message: undefined, splat: undefined })); const padding = info.padding && info.padding[info.level] || ''; if (stringifiedRest !== '{}') { info[MESSAGE] = `${info.level}:${padding} ${info.message} ${stringifiedRest}`; } else { info[MESSAGE] = `${info.level}:${padding} ${info.message}`; } return info; });