Package Exports
- lifion-aws-event-stream
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 (lifion-aws-event-stream) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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 --saveThe 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:
- https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-eventstream
- https://github.com/awslabs/aws-c-event-stream
API Reference
- lifion-aws-event-stream
- .Parser ⇐
Transform - .parse(buffer) ⇒
object
- .Parser ⇐
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:
ErrorWhenever:- 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. |