JSPM

  • Created
  • Published
  • Downloads 11169907
  • Score
    100M100P100Q213496F
  • License MIT

A promise based streaming tokenizer

Package Exports

  • strtok3
  • strtok3/lib/AbstractTokenizer

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (strtok3) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Build Status NPM version npm downloads Dependencies Coverage Status

A promise based streaming tokenizer for NodeJS. This node module is a successor of strtok2.

Usage

The strtok3 contains one class, ReadStreamTokenizer, which is constructed with a a stream.Readable.

The ReadStreamTokenizer has one method readToken which takes a token as an argument and returns a Promise resolving the decoded token value.

The token is basically a description what to read form the stream. A basic set of token types can be found here: token-types.

Reading from a stream

Below is an example of parsing the the first byte from a readable stream as an unsigned-integer:

TypeScript:
import * as strtok3 from "strtok3";
import * as stream from "stream";
import * as Token from "token-types";
    
let readableStream: stream.Readable;
// Assign readable

strtok3.fromStream(readableStream).then((tokenizer) => {
  return tokenizer.readToken<number>(Token.UINT8).then((myUint8Number) => {
    console.log("My number: %s", myUint8Number);
  });
})
JavaScript:
var strtok3 = require('strtok3');
var Token = require('token-types');
    
var readableStream;
// Assign readable


strtok3.fromStream(readableStream).then( function(streamTokenizer) {
  return streamTokenizer.readToken(Token.UINT8).then( function(myUint8Number) {
    console.log('My number: %s', myUint8Number);
  });
})

Reading from a file

The same can be done from a file:

TypeScript:
import * as strtok3 from "strtok3";
import * as Token from "token-types";
    
strtok3.fromFile("somefile.bin").then((tokenizer) => {
  return tokenizer.readToken<number>(Token.UINT8).then((myUint8Number) => {
    console.log("My number: %s", myUint8Number);
  });
})
JavaScript:
var strtok3 = require('strtok3');
var Token = require('token-types');
    
strtok3.fromFile('somefile.bin').then( function(streamTokenizer) {
  return streamTokenizer.readToken(Token.UINT8).then( function(myUint8Number) {
    console.log('My number: %s', myUint8Number);
  });
})