1.0.6 • Published 8 months ago

sk-eventsource-polyfill v1.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

��# sk-eventsource-polyfill

This library provides a convenient way to handle Server-Sent Events (SSE) with options to customize HTTP methods, request bodies, headers, and event handlers.

Installation

npm install sk-eventsource-polyfill

Exports

Types

  • ISSEOption: Interface for SSE options.
  • TEventHandlers: Type for event handler functions.
  • TMethod: HTTP methods (GET, POST, PUT, DELETE).

Functions

  • fetchStream(url: string, options: ISSEOption): Promise<void>
    Establishes an SSE connection to the specified URL.

API Reference

fetchStream

fetchStream(url: string, options: ISSEOption): Promise<void>

Parameters

  • url: string
    The URL to connect to.

  • options: ISSEOption
    Configuration object:

    • method: GET | POST
      HTTP method to use (default: GET).
    • onOpen: () => void
      Callback for when the connection is successfully opened.
    • onEnd: () => void
      Callback for when the connection is closed.
    • eventHandlers: { [event: string]: (data: string) => void }
      Handlers for specific events.
    • onError: (error: Error) => void
      Callback for errors during the connection.
    • body: object
      Data to send with the request (for POST).
    • headers: { [key: string]: string }
      Additional headers for the request.
    • keepAlive: boolean
      Reconnect automatically on errors (default: false).
    • retryTimeout: number
      Time (in ms) to wait before reconnecting (default: 5000).
    • abortController: AbortController
      Optional controller to cancel the request.

Stream Chunks

Each stream chunk consists of two lines at least:

  • event: The name of the event.
    Default value is stream.
  • data: The data string associated with the event.

Usage Example

import { fetchStream } from 'sk-eventsource-polyfill';

const eventHandlers = {
  stream: (data) => console.log('stream:', data),
};

fetchStream('https://example.com/events', {
  method: 'GET',
  onOpen: () => console.log('Connection opened'),
  onEnd: () => console.log('Connection closed'),
  onError: (error) => console.error('Error:', error),
  eventHandlers,
});
1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago