diff --git a/.changeset/beige-rules-argue.md b/.changeset/beige-rules-argue.md new file mode 100644 index 00000000000..8b2c0671f1f --- /dev/null +++ b/.changeset/beige-rules-argue.md @@ -0,0 +1,6 @@ +--- +"effect": patch +"@effect/platform-browser": patch +--- + +use "unbounded" buffer for Stream.fromEventListener diff --git a/.changeset/tricky-cheetahs-help.md b/.changeset/tricky-cheetahs-help.md new file mode 100644 index 00000000000..4667c66beae --- /dev/null +++ b/.changeset/tricky-cheetahs-help.md @@ -0,0 +1,5 @@ +--- +"effect": minor +--- + +add `bufferSize` option to Stream.fromEventListener diff --git a/packages/effect/src/Stream.ts b/packages/effect/src/Stream.ts index 8b3a9dbf803..54ae94cdc59 100644 --- a/packages/effect/src/Stream.ts +++ b/packages/effect/src/Stream.ts @@ -5963,5 +5963,6 @@ export const fromEventListener: ( readonly capture?: boolean readonly passive?: boolean readonly once?: boolean + readonly bufferSize?: number | "unbounded" | undefined } | undefined ) => Stream = internal.fromEventListener diff --git a/packages/platform-browser/src/BrowserStream.ts b/packages/platform-browser/src/BrowserStream.ts index 345372b7bae..50c22d45ec3 100644 --- a/packages/platform-browser/src/BrowserStream.ts +++ b/packages/platform-browser/src/BrowserStream.ts @@ -11,8 +11,13 @@ import * as internal from "./internal/stream.js" */ export const fromEventListenerWindow: ( type: K, - options?: boolean | Omit -) => Stream.Stream = internal.fromEventListenerWindow + options?: boolean | { + readonly capture?: boolean + readonly passive?: boolean + readonly once?: boolean + readonly bufferSize?: number | "unbounded" | undefined + } | undefined +) => Stream.Stream = internal.fromEventListenerWindow /** * Creates a `Stream` from document.addEventListener. @@ -20,5 +25,10 @@ export const fromEventListenerWindow: ( */ export const fromEventListenerDocument: ( type: K, - options?: boolean | Omit -) => Stream.Stream = internal.fromEventListenerDocument + options?: boolean | { + readonly capture?: boolean + readonly passive?: boolean + readonly once?: boolean + readonly bufferSize?: number | "unbounded" | undefined + } | undefined +) => Stream.Stream = internal.fromEventListenerDocument diff --git a/packages/platform-browser/src/internal/stream.ts b/packages/platform-browser/src/internal/stream.ts index a37cdca36c5..b38e5901353 100644 --- a/packages/platform-browser/src/internal/stream.ts +++ b/packages/platform-browser/src/internal/stream.ts @@ -7,11 +7,21 @@ import * as Stream from "effect/Stream" /** @internal */ export const fromEventListenerWindow = ( type: K, - options?: boolean | Omit + options?: boolean | { + readonly capture?: boolean + readonly passive?: boolean + readonly once?: boolean + readonly bufferSize?: number | "unbounded" | undefined + } | undefined ) => Stream.fromEventListener(window, type, options) /** @internal */ export const fromEventListenerDocument = ( type: K, - options?: boolean | Omit + options?: boolean | { + readonly capture?: boolean + readonly passive?: boolean + readonly once?: boolean + readonly bufferSize?: number | "unbounded" | undefined + } | undefined ) => Stream.fromEventListener(document, type, options)