Socket
Socket
Sign inDemoInstall

eventsource-parser

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eventsource-parser

Streaming, source-agnostic EventSource/Server-Sent Events parser


Version published
Weekly downloads
468K
increased by9.34%
Maintainers
1
Weekly downloads
 
Created

Package description

What is eventsource-parser?

The eventsource-parser npm package is a utility for parsing Server-Sent Events (SSE) streams. It allows you to handle real-time data streams from servers efficiently by parsing the incoming data into manageable events.

What are eventsource-parser's main functionalities?

Parsing SSE Streams

This feature allows you to parse incoming SSE data streams. The `createParser` function initializes a parser that processes incoming data and triggers a callback for each event.

const { createParser } = require('eventsource-parser');

const parser = createParser((event) => {
  if (event.type === 'event') {
    console.log('Received event:', event);
  }
});

const sseData = `data: Hello\n\n`;
parser.feed(sseData);

Handling Different Event Types

This feature allows you to handle different types of events, such as comments and data events. The parser can differentiate between these types and process them accordingly.

const { createParser } = require('eventsource-parser');

const parser = createParser((event) => {
  if (event.type === 'event') {
    console.log('Received event:', event);
  } else if (event.type === 'comment') {
    console.log('Received comment:', event);
  }
});

const sseData = `: This is a comment\ndata: Hello\n\n`;
parser.feed(sseData);

Error Handling

This feature demonstrates how to handle errors that may occur during the parsing of SSE data. The parser can throw errors if the data is not in the correct format, and you can catch these errors to handle them gracefully.

const { createParser } = require('eventsource-parser');

const parser = createParser((event) => {
  if (event.type === 'event') {
    console.log('Received event:', event);
  }
});

try {
  const invalidSseData = `data: Hello\ninvalid\n`;
  parser.feed(invalidSseData);
} catch (error) {
  console.error('Error parsing SSE data:', error);
}

Other packages similar to eventsource-parser

Changelog

Source

1.0.0 (2023-03-23)

⚠ BREAKING CHANGES

  • improve ESM/CJS compatibility, require node 14 or higher

Code Refactoring

  • improve ESM/CJS compatibility, require node 14 or higher (26d630e)

Readme

Source

eventsource-parser

npm versionnpm bundle size

A streaming parser for server-sent events/eventsource, without any assumptions about how the actual stream of data is retrieved. It is intended to be a building block for clients and polyfills in javascript environments such as browsers, node.js and deno.

You create an instance of the parser, and feed it chunks of data - partial or complete, and the parse emits parsed messages once it receives a complete message.

Installation

npm install --save eventsource-parser

Usage

import {createParser, ParsedEvent, ReconnectInterval} from 'eventsource-parser'

function onParse(event: ParsedEvent | ReconnectInterval) {
  if (event.type === 'event') {
    console.log('Received event!')
    console.log('id: %s', event.id || '<none>')
    console.log('name: %s', event.name || '<none>')
    console.log('data: %s', event.data)
  } else if (event.type === 'reconnect-interval') {
    console.log('We should set reconnect interval to %d milliseconds', event.value)
  }
}

const parser = createParser(onParse)
const sseStream = getSomeReadableStream()

for await (const chunk of sseStream) {
  parser.feed(chunk)
}

// If you want to re-use the parser for a new stream of events, make sure to reset it!
parser.reset()
console.log('Done!')

License

MIT © Espen Hovlandsdal

Keywords

FAQs

Package last updated on 28 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc