sse-utils
v1.1.0
Published
Utility functions for serializing and deserializing SSE messages
Downloads
28
Readme
SSE Utils
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 messageid
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
data
string
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 serializedserializer
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 parsedeserializer
Deserializer? A specialized function to reconstruct the payloadThrows 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 parsedeserializer
Deserializer? A specialized function to reconstruct the payloadThrows TypeError
sseObjects
should be a string including terminating newlines
Returns array<SSEObject> An array with the data sent in the messages