sse-utils

1.1.0 • Public • Published

SSE Utils

Greenkeeper badge NPM Version Build Status Dependency Status Code Climate Test Coverage

This is a small package that aims to be the server sent events equivalent of the JSON built-in module. It allows you to stringify an SSE object so it can be put on the wire. It allows you parse a stringified SSE object (you'll normally use another library to create an SSE client, but this can be helpfull for testing purposes).

Installation

npm install sse-utils

Examples

Individual Messages

let sse = require('sse-utils');
 
let input = {data: {foo: 'bar'}};
let sseString = sse.stringify(input);
console.log(sseString);
let output = sse.parse(sseString);
console.log(output);

Multiple Messages

let sse = require('sse-utils');
 
let input = [{data: {foo: 'bar'}}, {data: {bar: 'baz'}}];
let sseString = sse.stringifyAll(input);
console.log(sseString);
 
let output = sse.parseAll(sseString);
console.log(sseString);

TODO

  • Add support for asynchronous (de)serializers

API

Table of Contents

SSEObject

Type: object

Properties

  • data any The payload of the message
  • id string? The ID of the message (for reconnection)
  • event string? The type of event being sent

Serializer

Custom serialization function

Type: function

Parameters

  • payload any

Returns string

Deserializer

Custom deserialization function

Type: function

Parameters

Returns any

stringify

Stringify the data to an SSE message

Parameters

  • payload SSEObject The payload of the sse message: contains data, id?, event?

  • serializer Serializer? A specialized function that marshals the data into a string (optional)

  • Throws TypeError Arguments should have their correct types

Returns string The data as an SSE message

stringifyAll

Stringify an array of data to SSE messages

Parameters

  • payload array<SSEObject> An array of SSEObjects to be serialized

  • serializer Serializer? A specialized function that marshals the data into a string (optional)

  • Throws TypeError Arguments should have their correct types

Returns string The data is a single SSE message string

parse

Parse an SSE message and return the data

Parameters

  • sseObject string The SSE message to parse

  • deserializer Deserializer? A specialized function to reconstruct the payload

  • Throws TypeError sseObject should be a string including the terminating newlines

Returns SSEObject The data sent in this SSE message

parseAll

Parse multiple SSE messages and return an array of SSEObjects

Parameters

  • sseObjects string The SSE messages to parse

  • deserializer Deserializer? A specialized function to reconstruct the payload

  • Throws TypeError sseObjects should be a string including terminating newlines

Returns array<SSEObject> An array with the data sent in the messages

Package Sidebar

Install

npm i sse-utils

Weekly Downloads

4

Version

1.1.0

License

Apache-2.0

Unpacked Size

370 kB

Total Files

12

Last publish

Collaborators

  • wdullaer