npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sse-utils

v1.1.0

Published

Utility functions for serializing and deserializing SSE messages

Downloads

11

Readme

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