diff --git a/sdk/typescript/src/node/serverSentEventGenerator.ts b/sdk/typescript/src/node/serverSentEventGenerator.ts index ba1f638c..63446830 100644 --- a/sdk/typescript/src/node/serverSentEventGenerator.ts +++ b/sdk/typescript/src/node/serverSentEventGenerator.ts @@ -1,4 +1,4 @@ -import { DatastarEventOptions, EventType, sseHeaders } from "../types.ts"; +import { DatastarEventOptions, EventType, sseHeaders, StreamOptions } from "../types.ts"; import { ServerSentEventGenerator as AbstractSSEGenerator } from "../abstractServerSentEventGenerator.ts"; @@ -47,11 +47,7 @@ export class ServerSentEventGenerator extends AbstractSSEGenerator { req: IncomingMessage, res: ServerResponse, onStart: (stream: ServerSentEventGenerator) => Promise | void, - options?: Partial<{ - onError: (error: unknown) => Promise | void; - onAbort: () => Promise | void; - keepalive: boolean; - }>, + options?: StreamOptions, ): Promise { const generator = new ServerSentEventGenerator(req, res); diff --git a/sdk/typescript/src/types.ts b/sdk/typescript/src/types.ts index 719bdf61..f6ea9540 100644 --- a/sdk/typescript/src/types.ts +++ b/sdk/typescript/src/types.ts @@ -22,6 +22,13 @@ import type { Jsonifiable } from "npm:type-fest"; export type FragmentMergeMode = typeof FragmentMergeModes[number]; export type EventType = typeof EventTypes[number]; +export type StreamOptions = Partial<{ + onError: (error: unknown) => Promise | void; + onAbort: (reason?: string) => Promise | void; + responseInit: ResponseInit; + keepalive: boolean; +}> + export interface DatastarEventOptions { eventId?: string; retryDuration?: number; diff --git a/sdk/typescript/src/web/serverSentEventGenerator.ts b/sdk/typescript/src/web/serverSentEventGenerator.ts index 79f47c30..546672bc 100644 --- a/sdk/typescript/src/web/serverSentEventGenerator.ts +++ b/sdk/typescript/src/web/serverSentEventGenerator.ts @@ -1,4 +1,4 @@ -import { DatastarEventOptions, EventType, sseHeaders } from "../types.ts"; +import { DatastarEventOptions, EventType, sseHeaders, StreamOptions } from "../types.ts"; import { ServerSentEventGenerator as AbstractSSEGenerator } from "../abstractServerSentEventGenerator.ts"; import type { Jsonifiable } from "npm:type-fest"; @@ -41,12 +41,7 @@ export class ServerSentEventGenerator extends AbstractSSEGenerator { */ static stream( onStart: (stream: ServerSentEventGenerator) => Promise | void, - options?: Partial<{ - onError: (error: unknown) => Promise | void; - onAbort: (reason: string) => Promise | void; - responseInit: ResponseInit; - keepalive: boolean; - }>, + options?: StreamOptions, ): Response { const readableStream = new ReadableStream({ async start(controller) {