bakana
Version:
Backend for kana's single-cell analyses. This supports single or multiple samples, execution in Node.js or the browser, in-memory caching of results for iterative analyses, and serialization to/from file for redistribution.
18 lines (15 loc) • 538 B
JavaScript
import * as fs from "fs";
export function stream(file, chunkSize, callback, resolve, reject) {
let x = fs.createReadStream(file, { highWaterMark: chunkSize });
x.on("data", callback);
if (resolve !== null) {
x.on("end", () => resolve(null));
}
x.on('error', e => reject("file streaming failed; " + e.message));
}
export function peek(file, n) {
let handle = fs.openSync(file, "r");
let output = new Uint8Array(n);
let read = fs.readSync(handle, output, 0, n);
return output.slice(0, read);
}