Unify types and move to types.ts file

This commit is contained in:
Mateusz Knapik 2025-04-09 23:52:10 +00:00
parent 8b84986410
commit 047560b58c
3 changed files with 11 additions and 13 deletions

View File

@ -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 { ServerSentEventGenerator as AbstractSSEGenerator } from "../abstractServerSentEventGenerator.ts";
@ -47,11 +47,7 @@ export class ServerSentEventGenerator extends AbstractSSEGenerator {
req: IncomingMessage, req: IncomingMessage,
res: ServerResponse, res: ServerResponse,
onStart: (stream: ServerSentEventGenerator) => Promise<void> | void, onStart: (stream: ServerSentEventGenerator) => Promise<void> | void,
options?: Partial<{ options?: StreamOptions,
onError: (error: unknown) => Promise<void> | void;
onAbort: () => Promise<void> | void;
keepalive: boolean;
}>,
): Promise<void> { ): Promise<void> {
const generator = new ServerSentEventGenerator(req, res); const generator = new ServerSentEventGenerator(req, res);

View File

@ -22,6 +22,13 @@ import type { Jsonifiable } from "npm:type-fest";
export type FragmentMergeMode = typeof FragmentMergeModes[number]; export type FragmentMergeMode = typeof FragmentMergeModes[number];
export type EventType = typeof EventTypes[number]; export type EventType = typeof EventTypes[number];
export type StreamOptions = Partial<{
onError: (error: unknown) => Promise<void> | void;
onAbort: (reason?: string) => Promise<void> | void;
responseInit: ResponseInit;
keepalive: boolean;
}>
export interface DatastarEventOptions { export interface DatastarEventOptions {
eventId?: string; eventId?: string;
retryDuration?: number; retryDuration?: number;

View File

@ -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 { ServerSentEventGenerator as AbstractSSEGenerator } from "../abstractServerSentEventGenerator.ts";
import type { Jsonifiable } from "npm:type-fest"; import type { Jsonifiable } from "npm:type-fest";
@ -41,12 +41,7 @@ export class ServerSentEventGenerator extends AbstractSSEGenerator {
*/ */
static stream( static stream(
onStart: (stream: ServerSentEventGenerator) => Promise<void> | void, onStart: (stream: ServerSentEventGenerator) => Promise<void> | void,
options?: Partial<{ options?: StreamOptions,
onError: (error: unknown) => Promise<void> | void;
onAbort: (reason: string) => Promise<void> | void;
responseInit: ResponseInit;
keepalive: boolean;
}>,
): Response { ): Response {
const readableStream = new ReadableStream({ const readableStream = new ReadableStream({
async start(controller) { async start(controller) {