Nepotistic Pontifex Maximus

    json-text-sequence
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0 • Public • Published

    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".

    To install:

    npm install json-text-sequence
    

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

    const parser = require('json-text-sequence').parser;
    const fs = require('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);
    

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

    const generator = require('json-text-sequence').generator;
    const fs = require('fs');
    
    const g = new generator();
    g.pipe(fs.createWriteStream('example.log'));
    
    g.write({
      d: new Date(),
      count: 0
    });
    

    Tests Coverage Status

    Install

    npm i json-text-sequence

    DownloadsWeekly Downloads

    97,701

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    8.48 kB

    Total Files

    5

    Last publish

    Collaborators

    • hildjj