async-readable
TypeScript icon, indicating that this package has built-in type declarations

0.4.2 • Public • Published

async-readable

npm version actions codecov

Utils for reading streams in paused mode (pull stream).

How to Use

Basic

const { createReadStream } = require('fs');
const { asyncReadable } = require('async-readable');
 
async function parse_GIF_size (path) {
 
    const { read } = asyncReadable(createReadStream(path));
 
    const [ G, I, F ] = await read(3);
    const [ EIGHT, SEVEN_OR_NINE, A ] = await read(3);
 
    const width = (await read(2)).readUInt16LE(0);
    const height = (await read(2)).readUInt16LE(0);
 
    return { width, height };
 
}
 
parse_GIF_size('./sample.gif').then(console.log, console.error);

Advanced

assuming to have

const { connect } = require('net');
 
const socket = connect({ host: 'localhost', port: 8080 });
 
async function* process ({ read }) {
 
    while (true) {
        const head = await read(2);
        const size = head.readUInt16LE(0);
        yield read(size);
    }
 
}

hence

const { toAsyncIterable } = require('async-readable');
 
const unpack = toAsyncIterable(process);
 
async function run () {
 
    for await (const frame of unpack(socket)) {
        // ...
    }
 
}

or

const { toReadableStream } = require('async-readable');
 
const unpack = toReadableStream(process);
 
function run () {
 
    const stream = unpack(socket);
 
    stream.on('data', frame => {
        // ...
    });
 
}

License

the MIT

Readme

Keywords

Package Sidebar

Install

npm i async-readable

Weekly Downloads

66

Version

0.4.2

License

MIT

Unpacked Size

12.4 kB

Total Files

10

Last publish

Collaborators

  • imcotton