1.1.0 • Published 6 years ago

sse-utils v1.1.0

Weekly downloads
5
License
Apache-2.0
Repository
github
Last release
6 years ago

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