5.0.1 • Published 2 years ago

token-types v5.0.1

Weekly downloads
465,330
License
MIT
Repository
github
Last release
2 years ago

Node.js CI NPM version npm downloads coveralls Codacy Badge Language grade: JavaScript Total alerts DeepScan grade Known Vulnerabilities

token-types

A primitive token library used to read and write from a node Buffer. Although it is possible to use this module directly, it is primary designed to be used with strtok3 tokenizer.

Compatibility

Module: version 5 migrated from CommonJS to pure ECMAScript Module (ESM). JavaScript is compliant with ECMAScript 2019 (ES10).

Installation

npm install --save token-types

Usually in combination with strtok3:

npm install --save strtok3

Using TypeScript you should also install @tokenizer/token as a development dependency:

npm install --save-dev @tokenizer/token

Example

import * as strtok3 from 'strtok3';
import * as token from 'token-types';
    
(async () => {

  const tokenizer = await strtok3.fromFile("somefile.bin");
  try {
    const myNumber = await tokenizer.readToken(token.Float32_BE);
    console.log(`My number: ${myNumber}`);
  } finally {
    tokenizer.close(); // Close the file
  } 
})();

Tokens

Numeric tokens

node-strtok supports a wide variety of numerical tokens out of the box:

TokenNumberBitsEndianness
UINT8Unsigned integer8n/a
UINT16_BEUnsigned integer16big endian
UINT16_LEUnsigned integer16little endian
UINT24_BEUnsigned integer24big endian
UINT24_LEUnsigned integer24little endian
UINT32_BEUnsigned integer32big endian
UINT32_LEUnsigned integer32little endian
UINT64_BEUnsigned integer64big endian
UINT64_LE*Unsigned integer64little endian
INT8Signed integer8n/a
INT16_BESigned integer16big endian
INT16_LESigned integer16little endian
INT24_BESigned integer24big endian
INT24_LESigned integer24little endian
INT32_BESigned integer32big endian
INT32_LESigned integer32little endian
INT64_BESigned integer64big endian
INT64_LE*Signed integer64little endian
Float16_BEIEEE 754 float16big endian
Float16_LEIEEE 754 float16little endian
Float32_BEIEEE 754 float32big endian
Float32_LEIEEE 754 float32little endian
Float64_BEIEEE 754 float64big endian
Float64_LEIEEE 754 float64little endian
Float80_BE*IEEE 754 float80big endian
Float80_LE*IEEE 754 float80little endian

Other tokens

String types:

  • Windows-1252
  • ISO-8859-1

*) The tokens exceed the JavaScript IEEE 754 64-bit Floating Point precision, decoding and encoding is best effort based.

Custom token

Complex tokens can be added, which makes very suitable for reading binary files or network messages:

 ExtendedHeader = {
    len: 10,

    get: (buf, off) => {
      return {
        // Extended header size
        size: Token.UINT32_BE.get(buf, off),
        // Extended Flags
        extendedFlags: Token.UINT16_BE.get(buf, off + 4),
        // Size of padding
        sizeOfPadding: Token.UINT32_BE.get(buf, off + 6),
        // CRC data present
        crcDataPresent: common.strtokBITSET.get(buf, off + 4, 31)
      };
    }
  };
5.0.1

2 years ago

5.0.0

2 years ago

5.0.0-alpha.3

2 years ago

4.2.1

2 years ago

5.0.0-alpha.2

2 years ago

5.0.0-alpha.1

2 years ago

5.0.0-alpha.0

2 years ago

4.2.0

2 years ago

4.1.1

3 years ago

3.1.0

3 years ago

4.1.0

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.0.0

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

2.0.0

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.10.0

6 years ago

0.9.4

6 years ago

0.9.3

6 years ago

0.9.2

7 years ago

0.9.1

7 years ago

0.9.0

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago