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.
- Lightweight! 4kb in size (2kb gzip)
- Tested on latest Safari, Firefox, Chrome on MacOS
yarn add fetch-event-source
npm install --save fetch-event-source
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));
You can import in node using either syntax.
import FetchEventSource from 'fetch-event-source/server';
Or
const FetchEventSource = require('fetch-event-source/server');
new FetchEventSource(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;
}
All tests run using Jest in Node.js using this command.
yarn test
- sse-client: https://github.com/julienmachon/sse-client
- sse-fetcher: https://github.com/jakearchibald/sse-fetcher