json-text-sequence
Parse and generate RS-delimited JSON sequences according to draft-ietf-json-text-sequence
Last updated 15 days ago by hildjj .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install json-text-sequence 
SYNC missed versions from official npm registry.

json-text-sequence

Parse and generate JSON text sequences as defined in RFC 7464.

JSON text sequences are nice for unambiguous JSON log files. They are resilient to many forms of damage such as truncation, multiple writers incorrectly configured to write to the same file, corrupted JSON, etc. An example sequence:

␞{"d":"2014-09-22T21:58:35.270Z","value":6}

␞{"d":"2014-09-22T21:59:15.117Z","value":12}

Where "␞" is the ASCII "Record Separator" character (U+001E), and " " is the ASCII "LINE FEED" character (U+000A), otherwise known as "\n".

Installation

npm install json-text-sequence

API

Parsing

To parse the format, pipe an input source into a parser stream:

import {Parser} from 'json-text-sequence'
import fs from 'fs'

const p = new Parser()
  .on('data', obj => {
    console.log('JSON:', obj);
  })
  .on('truncated', buf => {
    console.log('Truncated:', buf);
  })
  .on('invalid', buf => {
    console.log('Invalid:', buf);
  })
  .on('finish', () => {
    console.log('DONE');
  });

fs.createReadStream('example.log').pipe(p);

Generation

To generate the format, create a generator, pipe its output somewhere interesting, then write objects to the generator:

import {Generator} from 'json-text-sequence'
import fs from 'fs'

const g = new Generator();
g.pipe(fs.createWriteStream('example.log'));

g.write({
  d: new Date(),
  count: 0
});

Tests codecov

Current Tags

  • 3.0.1                                ...           latest (15 days ago)

17 Versions

  • 3.0.1                                ...           15 days ago
  • 3.0.0                                ...           2 months ago
  • 2.0.2                                ...           a year ago
  • 2.0.1                                ...           2 years ago
  • 2.0.0                                ...           2 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
  • 0.3.0                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.1                                ...           9 years ago
  • 0.1.0                                ...           9 years ago
  • 0.0.7                                ...           9 years ago
  • 0.0.6                                ...           10 years ago
  • 0.0.5                                ...           10 years ago
  • 0.0.4                                ...           10 years ago
  • 0.0.3                                ...           10 years ago
  • 0.0.2                                ...           10 years ago
Maintainers (1)
Downloads
Total 12
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (1)
Dev Dependencies (0)
None
Dependents (2)

© 2010 - cnpmjs.org x YWFE | Home | YWFE