sse-fetcher

SSE events reimplemented on top of fetch()

Usage no npm install needed!

<script type="module">
  import sseFetcher from 'https://cdn.skypack.dev/sse-fetcher';
</script>

README

SSEFetcher

This a class that reads server sent events using fetch(). It works in Edge (which doesn't support EventSource) if you have a TextDecoder polyfill.

Usage

const sse = new SSEFetcher(url, opts);
// opts.withCredentials - Send cookies to cross-origin URLs.
// opts.reconnectionDelay - Initial reconnection delay.

(async function() {
  while (true) {
    const message = await sse.nextMessage();
    console.log(message);
    // message.data - Data sent
    // message.type - Event type sent
  }
})();

// Later, stop events & close the connection.
sse.close();

Demo: https://sse-fetcher.glitch.me/.

Files

  • lib/index.ts - Original typescript.
  • dist/SSEFetcher.mjs - JS module. Default exports SSEFetcher.
  • dist/SSEFetcher.js - Plain JS. Exposes SSEFetcher on the global.
  • dist/SSEFetcher-min.js - Minified plain JS. 1k gzipped.