Skip to content

Commit

Permalink
Merge pull request pinojs#377 from pinojs/std-serializer-api-typo
Browse files Browse the repository at this point in the history
std serializers api typo + deprecation unit tests
  • Loading branch information
David Mark Clements authored Mar 27, 2018
2 parents e7fca49 + e5602b4 commit c61a367
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 4 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
],
"scripts": {
"browser-test": "zuul tape test/browser*test.js --local",
"test": "standard | snazzy && tap --no-cov test/*test.js",
"ci": "standard | snazzy && tap --cov test/*test.js",
"test": "standard | snazzy && NODE_OPTIONS='--no-warnings' tap --no-cov test/*test.js",
"ci": "standard | snazzy && NODE_OPTIONS='--no-warnings' tap --cov test/*test.js",
"bench-all": "node benchmarks/runbench all",
"bench-basic": "node benchmarks/runbench basic",
"bench-object": "node benchmarks/runbench object",
Expand Down
16 changes: 14 additions & 2 deletions pino.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var EventEmitter = require('events').EventEmitter
var stringifySafe = require('fast-safe-stringify')
var serializers = require('pino-std-serializers')
var fs = require('fs')
var util = require('util')
var pump = require('pump')
var flatstr = require('flatstr')
var pretty = require('./pretty')
Expand Down Expand Up @@ -326,7 +327,7 @@ function pino (opts, stream) {

if (iopts.slowtime) {
instance.time = time.slowTime
process.emitWarning('use `timestamp: pino.stdTimeFunctions.slowTime`', '(pino) `slowtime` is deprecated')
util.deprecate(tools.noop, '(pino) `slowtime` is deprecated: use `timestamp: pino.stdTimeFunctions.slowTime`')()
} else if (iopts.timestamp && Function.prototype.isPrototypeOf(iopts.timestamp)) {
instance.time = iopts.timestamp
} else if (iopts.timestamp) {
Expand Down Expand Up @@ -383,8 +384,19 @@ module.exports.stdSerializers = {
res: serializers.res,
err: serializers.err,
wrapRequestSerializer: serializers.wrapRequestSerializer,
wrapRespnonseSerializer: serializers.wrapResponseSerializer
wrapResponseSerializer: serializers.wrapResponseSerializer
}

Object.defineProperty(module.exports.stdSerializers, 'wrapRespnonseSerializer', {
enumerable: true,
get: util.deprecate(
function () {
return serializers.wrapResponseSerializer
},
'`pino.stdSerializers.wrapRespnonseSerializer` is deprecated: use `pino.stdSerializers.wrapResponseSerializer`'
)
})

module.exports.stdTimeFunctions = Object.assign({}, time)
module.exports.pretty = pretty
Object.defineProperty(
Expand Down
45 changes: 45 additions & 0 deletions test/deprecated.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
'use strict'

var test = require('tap').test
var pino = require('../')
var sink = require('./helper').sink

test('opts.slowtime', function (t) {
if (typeof process.emitWarning === 'function') {
process.once('warning', (msg) => {
t.is(/`slowtime` is deprecated/.test(msg), true)
t.end()
})
} else {
const write = process.stderr.write
process.stderr.write = (msg) => {
t.is(/`slowtime` is deprecated/.test(msg), true)
process.nextTick(t.end)
process.stderr.write = write
}
}

var instance = pino({slowtime: true},
sink(function (chunk, enc, cb) {
t.ok(Date.parse(chunk.time) <= new Date(), 'time is greater than Date.now()')
}))

instance.info('hello world')
})

test('pino.stdSerializers.wrapRespnonseSerializer', function (t) {
if (typeof process.emitWarning === 'function') {
process.once('warning', (msg) => {
t.is(/`pino.stdSerializers.wrapRespnonseSerializer` is deprecated/.test(msg), true)
t.end()
})
} else {
const write = process.stderr.write
process.stderr.write = (msg) => {
t.is(/`pino.stdSerializers.wrapRespnonseSerializer` is deprecated/.test(msg), true)
process.nextTick(t.end)
process.stderr.write = write
}
}
t.is(pino.stdSerializers.wrapRespnonseSerializer, pino.stdSerializers.wrapResponseSerializer)
})

0 comments on commit c61a367

Please sign in to comment.