Référence d'API — nodefony/client — sse
stable
Documentation › Référence d’API › nodefony › client-sse
Générée depuis les déclarations de types publiées de
nodefony10.0.0-beta.6 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.
nodefony/client#
import { … } from "nodefony/client" — 12 symboles.
Classes (3)#
NodefonySse#
class NodefonySse extends EventTarget
Client d’un flux text/event-stream, compatible EventSource, sur fetch.
static readonly CONNECTING = 0static readonly OPEN = 1static readonly CLOSED = 2readonly CONNECTING = 0readonly OPEN = 1readonly CLOSED = 2readonly url: string— L’adresse du flux, résolue.readonly withCredentials: boolean— Les cookies partent-ils vers une autre origine ?onopen: (event: Event) => void | null— Appelé à l’ouverture de chaque connexion.onmessage: (event: MessageEvent<string>) => void | null— Appelé pour chaque événement de typemessage.onerror: (event: Event) => void | null— Appelé à chaque coupure, avant la reconnexion ou l’abandon.constructor(url: string | URL, options?: NodefonySseOptions)get readyState(): number— État de la connexion : 0CONNECTING, 1OPEN, 2CLOSED.get lastEventId(): string— Le dernier identifiant reçu — celui que la reconnexion renverra.close(): void— Ferme la connexion et annule toute reconnexion.
SseLimitError#
class SseLimitError extends RangeError
Un événement — ou une ligne — dépasse la taille admise.
constructor(limit: number)
SseParser#
class SseParser
Lit un flux text/event-stream déjà décodé en texte, morceau par morceau.
constructor(handlers: ISseParserHandlers, lastEventId?: string, maxEventSize?: number)get lastEventId(): string— L’identifiant courant du flux — celui qu’une reconnexion renverra.push(chunk: string): void— Lit un morceau du flux.end(): void— Fin du flux : la ligne et le bloc inachevés sont jetés — un bloc que n’a pas clos une ligne vide n’est jamais rendu (§9.2.6).
Fonctions (3)#
initialSseSnapshot#
function initialSseSnapshot(url: string | URL | null): SseSnapshot
L’état d’un flux AVANT que observeSse ne l’ouvre — la valeur initiale qu’une liaison affiche au premier rendu : CONNECTING pour une adresse, CLOSED sans erreur pour null.
observeSse#
function observeSse(url: string | URL | null, emit: Emit<SseSnapshot>, options?: ObserveSseOptions): Dispose
Observe un flux text/event-stream : l’ouvre, rend son état à emit à chaque transition et à chaque événement, et le ferme à la libération.
sseRebindKey#
function sseRebindKey(url: string | URL | null, options?: ObserveSseOptions): string
Clé de ré-ouverture d’un flux : l’adresse et les types écoutés, et rien d’autre. Le rappel onEvent et les objets d’options changent d’identité à chaque rendu dans la plupart des frameworks ; rouvrir à chaque rendu couperait le flux en boucle. Les autres réglages (en-têtes, corps) sont lus à l’ouverture.
Constantes (1)#
SSE_MAX_EVENT_SIZE#
const SSE_MAX_EVENT_SIZE: number
Taille maximale d’un événement par défaut, en unités UTF-16 : 4 Mi.
Interfaces (5)#
ISseEvent#
interface ISseEvent
Un événement reçu, une fois sa ligne vide atteinte (WHATWG §9.2.6).
readonly type: string— Le champevent, ou"message"quand le bloc n’en portait pas.readonly data: string— Les champsdatadu bloc, joints par un saut de ligne.readonly lastEventId: string— L’identifiant courant du flux, après ce bloc —""s’il n’y en a jamais eu.
ISseParserHandlers#
interface ISseParserHandlers
Ce que l’analyseur rend à mesure qu’il lit.
onEvent(event: ISseEvent): void— Un bloc complet, porteur de données.onRetry?(ms: number): void— Le serveur demande un autre délai de reconnexion (champretry, en ms).
NodefonySseOptions#
interface NodefonySseOptions
Options de NodefonySse.
method?: string— Méthode HTTP.headers?: Record<string, string>— En-têtes ajoutés à chaque connexion (unAuthorization, par exemple).body?: string— Corps de la requête — renvoyé à chaque reconnexion.withCredentials?: boolean— Envoyer les cookies vers une autre origine (credentials: "include").retry?: number— Délai de reconnexion initial (ms), jusqu’à ce que le serveur en impose un parretry:.lastEventId?: string— Identifiant à reprendre dès la première connexion (en-têteLast-Event-ID).maxEventSize?: number— Taille maximale d’un événement (unités UTF-16).connectTimeout?: number— Délai d’ouverture (ms) : une réponse qui n’arrive pas dans ce délai est abandonnée, et la reconnexion prend le relais.fetch?: typeof fetch—fetchà employer — injectable pour un certificat, un agent ou un test.
ObserveSseOptions#
interface ObserveSseOptions extends NodefonySseOptions
Réglages de observeSse : ceux de NodefonySse, plus deux.
events?: readonly string[]— Types d’événements écoutés — le champevent:du serveur.onEvent?: (event: ISseEvent) => void— Appelé pour CHAQUE événement reçu, avant la mise à jour de l’état.
SseSnapshot#
interface SseSnapshot
L’état d’un flux observé — ce qu’une vue affiche.
readonly readyState: number— 0CONNECTING, 1OPEN, 2CLOSED— les constantes deNodefonySse.readonly lastEvent: ISseEvent | null— Le dernier événement reçu d’un des types écoutés,nulltant qu’aucun.readonly error: boolean— La dernière transition était-elle une coupure ?