Skip to content

Fetch implementation of EventSource with more functionality such as HTTP headers and support for Node.js.

License

Notifications You must be signed in to change notification settings

skyllo/fetch-event-source

Repository files navigation

FetchEventSource

FetchEventSource

Fetch implementation of EventSource with more functionality like setting HTTP headers and support for Node.js. Written in TypeScript with the types included in the package.

Features

  • Lightweight! 4kb in size (2kb gzip)
  • Tested on latest Safari, Firefox, Chrome on MacOS

Installation

yarn add fetch-event-source
npm install --save fetch-event-source

Usage

The API is the same as EventSource.

import FetchEventSource from 'fetch-event-source';

const eventSource = new FetchEventSource('/sse');
eventSource.addListener('open', () => console.log('SSE Open'));
eventSource.addListener('error', (err) => console.log('SSE Error', err));
eventSource.addListener('message', (e) => console.log('SSE Data', e.data));

Node.js

You can import in node using either syntax.

import FetchEventSource from 'fetch-event-source/server';

Or

const FetchEventSource = require('fetch-event-source/server');

API

Constructor

new FetchEventSource(Config)

Config

Typescript Config Definition

interface FetchEventSourceConfiguration {
    /** set custom fetch implementation */
    fetch?: typeof fetch;
    /** set custom headers to add to SSE request */
    headers?: Headers;
    /** automatically starts the SSE request */
    autoStart?: boolean;
    /** send cookies to cross-origin URLs */
    withCredentials?: boolean;
    /** initial reconnection delay */
    reconnectionDelay?: number;
}

Testing

All tests run using Jest in Node.js using this command.

yarn test

Similar Projects

About

Fetch implementation of EventSource with more functionality such as HTTP headers and support for Node.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published