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)