FetchStreamer
This library utilize ReadableStream
that provide in fetch
, to let you process structured data while downloading it.
This library is most usable when you want to process data like the following:
Data stream contains data units with fixed length
bace138be6953bbff4c0a97057d55691c124dc949ad38ae4d9dc31b35d4cef4cfa7416d63d56b3d17b49555aab14c5c1ac466ecec1c74c6db6dbe81518cee1c1
The above data is the combine of 4 md5 hashes, and you want to process it as soon as every 32 bytes of data became available.
Examples
Fixed length
const url = 'http://localhost:3000/data';const streamer = url 32 'utf-8';streamer streamerstart;
Dynamic length
const url = 'http://localhost:3000/data'; // This time, the actual data length will be presented in every chunk's first byte.const streamer = url 1 'utf-8';streamer;streamerstart;
Checkout example folder for more details.
APIs
constructor(url, initialSize, textDecoderEncoding)
url: Reading url initialSize: Default chunk size textDecoderEncoding: If supplied, the data you receive in onData callback will be decoded first. See also https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder
Events
onData((data, info) => {})
This event will be fired every time when buffer reaches targeted size.
data: Chunk data info:
onFinish((info) => {})
This event will be fired when there is no more data to read
info:
Methods
pause()
Pause processing, this will not pause fetching.
resume()
Resume paused processing process.
License
MIT