Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

lifion-aws-event-stream

lifion6.7kMIT1.0.7

Node.js parser for the application/vnd.amazon.eventstream content-type.

aws, aws-event-stream, cloud, content-type, event-stream, node, parser, stream

readme

lifion-aws-event-stream

Node.js parser for binary streams under the application/vnd.amazon.eventstream content-type.

Getting Started

To install the module:

npm install lifion-aws-event-stream --save

The module exports a parse function and a Parser stream. To use the parse function:

const { parse } = require('lifion-aws-event-stream');

const buffer = Buffer.from('000000100000000005c248eb7d98c8ff', 'hex');
console.log(parse(buffer)); // { headers: {}, payload: '' }

To use the Parser stream:

const { Parser } = require('lifion-aws-event-stream');

const parser = new Parser();
parser.on('data', console.log); // { headers: {}, payload: '' }

const buffer = Buffer.from('000000100000000005c248eb7d98c8ff', 'hex');
parser.write(buffer);

Pipe an HTTP response to parse the messages as they arrive:

const got = require('got');
const { Parser } = require('lifion-aws-event-stream');
const { pipeline } = require('stream');

pipeline([
  got('/', …),
  new Parser(),
  new Writable({
    objectMode: true,
    write(data, encoding, callback) {
      console.log(data);
      callback();
    }
  }),
]);

This project's implementation is based on:

API Reference

eventStream.Parser ⇐ Transform

A transform stream that calls parse with the binary data written to it. Can be used to pipe a response stream from an AWS service HTTP request. The stream will emit errors thrown during parse calls.

Kind: static class of lifion-aws-event-stream
Extends: Transform
See: https://nodejs.org/dist/latest-v10.x/docs/api/stream.html#stream_class_stream_transform

eventStream.parse(buffer) ⇒ object

Parses the specified buffer with vnd.amazon.eventstream data into an object.

Kind: static method of lifion-aws-event-stream
Returns: object - The parsed vnd.amazon.eventstream object.
Throws:

  • Error Whenever:
    • The specified buffer has less than 16 bytes. The minimum vnd.amazon.eventstream message should have 4 bytes for the total length of the package, 4 bytes for the length of the headers section, 4 bytes for the checksum of the prelude, and finally 4 more bytes for the checksum of the entire message.
    • The total length as specified in the message doesn't matches the bufffer length.
    • The checksum of the prelude doesn't matches the calculated checksum.
    • The checksum of the message doesn't matches the calculated checksum.
    • The header value type is unknown.
Param Type Description
buffer Buffer The buffer to parse.

License

MIT

changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Generated by auto-changelog.

v1.0.7 (2019-11-11)

  • #115: Update dependency prettier to ^1.19.1
  • #114: Update dependency auto-changelog to ^1.16.2
  • #113: Update dependency eslint to ^6.6.0
  • e751c10: Adopt core commons 2.3.4

v1.0.6 (2019-10-18)

  • #105: Update dependency eslint to ^6.4.0
  • #106: Update dependency codecov to ^3.6.1
  • #107: Update dependency lint-staged to ^9.3.0
  • #104: Update dependency auto-changelog to ^1.16.1
  • #100: Update dependency eslint to ^6.3.0
  • #101: Update dependency jsdoc-to-markdown to ^5.0.1
  • #102: Update dependency auto-changelog to ^1.16.0
  • #103: Update dependency husky to ^3.0.5
  • #99: Update dependency lint-staged to ^9.2.5
  • #92: Update dependency husky to ^3.0.2
  • #91: Update dependency lint-staged to ^9.2.1
  • #90: Update dependency husky to ^3.0.1
  • a414c06: Adopt core commons 2.3.3
  • 69c18a1: Recreate the package-lock.json file
  • e6f25d4: Upgrade dependencies
  • 74a2e5e: Recreate lock file
  • 007a53f: Create CODE_OF_CONDUCT.md
  • a9cad41: Recreate lock file
  • 4cc21ee: Adopt core commons 2.3.3

v1.0.5 (2019-07-12)

  • #86: Update dependency auto-changelog to ^1.14.1
  • #82: Update dependency lint-staged to v9
  • #83: Update dependency husky to v3
  • #81: Update dependency husky to ^2.7.0
  • #80: Update dependency eslint to ^6.0.1
  • #78: Update dependency eslint to v6
  • #79: Update dependency husky to ^2.5.0
  • #73: Update dependency eslint-config-lifion to ^1.2.3
  • #74: Update dependency husky to ^2.4.1
  • #76: Update dependency prettier to ^1.18.2
  • #77: Update dependency lint-staged to ^8.2.1
  • #75: Update dependency lint-staged to ^8.2.0
  • #72: Update dependency lint-staged to ^8.1.7
  • #71: Update dependency codecov to ^3.5.0
  • #70: Update dependency husky to ^2.3.0
  • #69: Update dependency prettier to ^1.17.1
  • #68: Update dependency jsdoc-to-markdown to v5
  • #67: Update dependency codecov to ^3.4.0
  • #66: Update dependency jest to ^24.8.0
  • #65: Update dependency lint-staged to ^8.1.6
  • #64: Update dependency jest-junit to ^6.4.0
  • #63: Update dependency husky to ^2.2.0
  • #62: Update dependency husky to v2
  • 470c034: Adopt the latest linter
  • 5fd9445: Complete adoption of GitHub Actions
  • b887030: Update main.workflow

v1.0.4 (2019-04-24)

  • b21e862: Remove test files from release

v1.0.3 (2019-04-24)

  • #61: Update dependency auto-changelog to ^1.13.0
  • #60: Update dependency prettier to ^1.17.0
  • #59: Update dependency auto-changelog to ^1.12.1
  • #58: Update dependency codecov to ^3.3.0
  • #57: Update dependency jest to ^24.7.1
  • #56: Update dependency eslint to ^5.16.0
  • #55: Update dependency auto-changelog to ^1.12.0
  • #54: Update dependency eslint to ^5.15.3
  • #53: Update dependency jest to ^24.5.0
  • #52: Update dependency jest to ^24.4.0
  • #51: Update dependency jest to ^24.3.1
  • #50: Update dependency eslint to ^5.15.1
  • #49: Update dependency lint-staged to ^8.1.5
  • d7bd993: Recreate lock file
  • 4300bd2: Fix stream transform of incomplete or partial data

v1.0.2 (2019-02-27)

  • #47: Update dependency eslint to ^5.14.1
  • #46: Update dependency jest-junit to ^6.3.0
  • #45: Update dependency lint-staged to ^8.1.4
  • #44: Update dependency codecov to ^3.2.0
  • #43: Update dependency jest to ^24.1.0
  • #42: Update dependency lint-staged to ^8.1.3
  • #41: Update dependency eslint to ^5.13.0
  • #40: Update dependency prettier to ^1.16.4
  • #39: Update dependency jest-junit to ^6.2.1
  • #37: Update dependency jest to v24
  • #36: Update dependency jest-junit to ^6.1.0
  • #35: Update dependency npm-watch to ^0.6.0
  • #34: Update dependency prettier to ^1.16.1
  • #33: Update dependency eslint to ^5.12.1
  • #29: Update dependency husky to ^1.3.1
  • #30: Update dependency eslint to ^5.12.0
  • #31: Update dependency auto-changelog to ^1.11.0
  • #32: Update dependency jest-junit to v6
  • #28: Update dependency eslint to ^5.10.0
  • #27: Update dependency prettier to ^1.15.3
  • #25: Update dependency lint-staged to ^8.1.0
  • #24: Update dependency husky to ^1.2.0
  • #26: Update dependency npm-watch to ^0.5.0
  • b07c2d6: Upgrade eslint-config-lifion
  • df0dd03: Merge pull request #38 from lifion/feature/renovate-lint-staged-8.x
  • 4439212: Update dependency lint-staged to ^8.1.1
  • e41f037: Re-create package-lock.json
  • c1592df: Correct the author

v1.0.1 (2018-11-20)

  • #23: Update dependency eslint-config-lifion to ^1.0.3
  • #21: Update dependency lint-staged to ^8.0.5
  • #22: Update dependency auto-changelog to ^1.10.2
  • #20: Update dependency husky to ^1.1.4
  • #18: Update dependency prettier to ^1.15.2
  • #19: Update dependency auto-changelog to ^1.10.1
  • #17: Update dependency eslint to ^5.9.0
  • #15: Update dependency prettier to ^1.15.1
  • #16: Update dependency auto-changelog to ^1.9.0
  • #12: Update dependency eslint to ^5.8.0
  • #13: Update dependency lint-staged to v8
  • #14: Update dependency husky to ^1.1.3
  • #11: Update dependency eslint to ^5.7.0
  • #10: Update dependency husky to ^1.1.2
  • #8: Update dependency eslint-config-lifion to ^1.0.2
  • #5: Update dependency husky to ^1.1.1
  • #7: Update dependency auto-changelog to ^1.8.1
  • #6: Update dependency eslint-config-lifion to ^1.0.1
  • b87a7de: Correct the pipeline
  • 31a1274: Re-create package-lock.json
  • 003ff29: Set NVM to the current LTS
  • 415a529: Correct the pipeline test and lint artifacts

v1.0.0 (2018-10-04)

  • #2: Add implementation of the event-stream parser
  • #4: Add deploy and publish to circleci
  • #3: Update dependency husky to ^1.1.0
  • e8efb66: Add full documentation
  • 88cbdea: Add full test coverage
  • 585ea39: Correct dependencies, remove internal references
  • d80ca47: Move the ESLint configuration to its own file
  • f9eb6f4: Upgrade the husky configuration
  • 3cccca2: Move the ESLint configuration into its own file

v1.0.0-alpha.1 (2018-09-28)