Buckets:
| const test = require('node:test') | |
| const assert = require('node:assert') | |
| const os = require('node:os') | |
| const { join } = require('node:path') | |
| const { readFile } = require('node:fs').promises | |
| const { watchFileCreated, file } = require('../helper') | |
| const pino = require('../../') | |
| const { DEFAULT_LEVELS } = require('../../lib/constants') | |
| const { pid } = process | |
| const hostname = os.hostname() | |
| test('pino.transport with a pipeline', async (t) => { | |
| const destination = file() | |
| const transport = pino.transport({ | |
| pipeline: [{ | |
| target: join(__dirname, '..', 'fixtures', 'transport-transform.js') | |
| }, { | |
| target: join(__dirname, '..', 'fixtures', 'to-file-transport.js'), | |
| options: { destination } | |
| }] | |
| }) | |
| t.after(transport.end.bind(transport)) | |
| const instance = pino(transport) | |
| instance.info('hello') | |
| await watchFileCreated(destination) | |
| const result = JSON.parse(await readFile(destination)) | |
| delete result.time | |
| assert.deepEqual(result, { | |
| pid, | |
| hostname, | |
| level: DEFAULT_LEVELS.info, | |
| msg: 'hello', | |
| service: 'pino' // this property was added by the transform | |
| }) | |
| }) | |
| test('pino.transport with targets containing pipelines', async (t) => { | |
| const destinationA = file() | |
| const destinationB = file() | |
| const transport = pino.transport({ | |
| targets: [ | |
| { | |
| target: join(__dirname, '..', 'fixtures', 'to-file-transport.js'), | |
| options: { destination: destinationA } | |
| }, | |
| { | |
| pipeline: [ | |
| { | |
| target: join(__dirname, '..', 'fixtures', 'transport-transform.js') | |
| }, | |
| { | |
| target: join(__dirname, '..', 'fixtures', 'to-file-transport.js'), | |
| options: { destination: destinationB } | |
| } | |
| ] | |
| } | |
| ] | |
| }) | |
| t.after(transport.end.bind(transport)) | |
| const instance = pino(transport) | |
| instance.info('hello') | |
| await watchFileCreated(destinationA) | |
| await watchFileCreated(destinationB) | |
| const resultA = JSON.parse(await readFile(destinationA)) | |
| const resultB = JSON.parse(await readFile(destinationB)) | |
| delete resultA.time | |
| delete resultB.time | |
| assert.deepEqual(resultA, { | |
| pid, | |
| hostname, | |
| level: DEFAULT_LEVELS.info, | |
| msg: 'hello' | |
| }) | |
| assert.deepEqual(resultB, { | |
| pid, | |
| hostname, | |
| level: DEFAULT_LEVELS.info, | |
| msg: 'hello', | |
| service: 'pino' // this property was added by the transform | |
| }) | |
| }) | |
| test('pino.transport with targets containing pipelines with levels defined and dedupe', async (t) => { | |
| const destinationA = file() | |
| const destinationB = file() | |
| const transport = pino.transport({ | |
| targets: [ | |
| { | |
| target: join(__dirname, '..', 'fixtures', 'to-file-transport.js'), | |
| options: { destination: destinationA }, | |
| level: DEFAULT_LEVELS.info | |
| }, | |
| { | |
| pipeline: [ | |
| { | |
| target: join(__dirname, '..', 'fixtures', 'transport-transform.js') | |
| }, | |
| { | |
| target: join(__dirname, '..', 'fixtures', 'to-file-transport.js'), | |
| options: { destination: destinationB } | |
| } | |
| ], | |
| level: DEFAULT_LEVELS.error | |
| } | |
| ], | |
| dedupe: true | |
| }) | |
| t.after(transport.end.bind(transport)) | |
| const instance = pino(transport) | |
| instance.info('hello info') | |
| instance.error('hello error') | |
| await watchFileCreated(destinationA) | |
| await watchFileCreated(destinationB) | |
| const resultA = JSON.parse(await readFile(destinationA)) | |
| const resultB = JSON.parse(await readFile(destinationB)) | |
| delete resultA.time | |
| delete resultB.time | |
| assert.deepEqual(resultA, { | |
| pid, | |
| hostname, | |
| level: DEFAULT_LEVELS.info, | |
| msg: 'hello info' | |
| }) | |
| assert.deepEqual(resultB, { | |
| pid, | |
| hostname, | |
| level: DEFAULT_LEVELS.error, | |
| msg: 'hello error', | |
| service: 'pino' // this property was added by the transform | |
| }) | |
| }) | |
Xet Storage Details
- Size:
- 3.83 kB
- Xet hash:
- 6426eb2ddce10625ba28b330ae1fe20d68bc7cb65746a0eedfd8db174af9e90a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.