1.0.0-alpha.2 • Published 5 years ago
fetch-event-source v1.0.0-alpha.2
FetchEventSource
Fetch implementation of EventSource with more functionality like setting HTTP headers and support for Node.js. Written in TypeScript with the types includes 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
- sse-client: https://github.com/julienmachon/sse-client
- sse-fetcher: https://github.com/jakearchibald/sse-fetcher