simulateReadableStream()
simulateReadableStream
is a utility function that creates a ReadableStream which emits provided values sequentially with configurable delays. This is particularly useful for testing streaming functionality or simulating time-delayed data streams.
import { simulateReadableStream } from 'ai';
const stream = simulateReadableStream({ chunks: ['Hello', ' ', 'World'], initialDelayInMs: 100, chunkDelayInMs: 50,});
Import
import { simulateReadableStream } from "ai"
API Signature
Parameters
chunks:
T[]
Array of values to be emitted by the stream
initialDelayInMs?:
number | null
Initial delay in milliseconds before emitting the first value. Defaults to 0. Set to null to skip the initial delay entirely.
chunkDelayInMs?:
number | null
Delay in milliseconds between emitting each value. Defaults to 0. Set to null to skip delays between chunks.
Returns
Returns a ReadableStream<T>
that:
- Emits each value from the provided
chunks
array sequentially - Waits for
initialDelayInMs
before emitting the first value (if notnull
) - Waits for
chunkDelayInMs
between emitting subsequent values (if notnull
) - Closes automatically after all chunks have been emitted
Type Parameters
T
: The type of values contained in the chunks array and emitted by the stream
Examples
Basic Usage
const stream = simulateReadableStream({ chunks: ['Hello', ' ', 'World'],});
With Delays
const stream = simulateReadableStream({ chunks: ['Hello', ' ', 'World'], initialDelayInMs: 1000, // Wait 1 second before first chunk chunkDelayInMs: 500, // Wait 0.5 seconds between chunks});
Without Delays
const stream = simulateReadableStream({ chunks: ['Hello', ' ', 'World'], initialDelayInMs: null, // No initial delay chunkDelayInMs: null, // No delay between chunks});