This module contains implementations for reading from and writing to files, as well as implementations for deflate compression using various JavaScript APIs. It is mainly used by the armarius module.
Contained are IO contexts for Blob object (read only), ArrayBuffers, and Node.js FileHandle objects. Compression contexts exist for the CompressionStreams API, the Node.js zlib module, and the fflate library.
Armarius-IO can be installed using npm:
npm install armarius-ioIO contexts are objects that extend the IO class and can be used to read from or write to an underlying file or buffer.
This library contains the following IO contexts:
ArrayBufferIO- for reading from and writing to an ArrayBufferBlobIO- for reading from a Blob or JavaScript File objectNodeFileIO- for reading from and writing to a Node.js FileHandle object
let data = new Uint8Array(123);
let io = new ArrayBufferIO(data.buffer, data.byteOffset, data.byteLength);let file = input.files[0];
let io = new BlobIO(file);let file = await fs.promises.open('file.txt', 'r+');
let stat = await file.stat();
let io = new NodeFileIO(file, 0, stat.size);DataStream objects can be used to read data from a source. All IO contexts also implement DataStream.
DataProcessor objects read and transform data from a DataStream. This library includes DataProcessors for deflate compression using various JavaScript APIs.
NativeDeflateDataProcessorandNativeInflateDataProcessor- for using the CompressionStreams APINodeDeflateDataProcessorandNodeInflateDataProcessor- for using the Node.js zlib moduleFflateDeflateDataProcessorandFflateInflateDataProcessor- for using the fflate libraryDefaultDeflateDataProcessorandDefaultInflateDataProcessor- for using the best available compression method