Skip to content
Type

StreamSourceOptions

Options for defining a StreamSource.

ts
type StreamSourceOptions = {
	getSize: () => MaybePromise<number>;
	read: (start: number, end: number) => MaybePromise<Uint8Array | ReadableStream<Uint8Array>>;
	maxCacheSize?: number;
	prefetchProfile?: 'none' | 'fileSystem' | 'network';
};

See MaybePromise.

Used by

Properties

getSize

ts
getSize: () => MaybePromise<number>;

Called when the size of the entire file is requested. Must return or resolve to the size in bytes. This function is guaranteed to be called before read.

See MaybePromise.

read

ts
read: (start: number, end: number) => MaybePromise<Uint8Array<ArrayBufferLike> | ReadableStream<Uint8Array<ArrayBufferLike>>>;

Called when data is requested. Must return or resolve to the bytes from the specified byte range, or a stream that yields these bytes.

See MaybePromise.

maxCacheSize

ts
maxCacheSize?: number;

The maximum number of bytes the cache is allowed to hold in memory. Defaults to 8 MiB.

prefetchProfile

ts
prefetchProfile?: 'none' | 'fileSystem' | 'network';

Specifies the prefetch profile that the reader should use with this source. A prefetch profile specifies the pattern with which bytes outside of the requested range are preloaded to reduce latency for future reads.

  • 'none' (default): No prefetching; only the data needed in the moment is requested.
  • 'fileSystem': File system-optimized prefetching: a small amount of data is prefetched bidirectionally, aligned with page boundaries.
  • 'network': Network-optimized prefetching, or more generally, prefetching optimized for any high-latency environment: tries to minimize the amount of read calls and aggressively prefetches data when sequential access patterns are detected.

Released under the Mozilla Public License 2.0.