@dwesley/linereader
Version:
A simple `Readliner` class, similar to Java's `readline()` method, written in typescript (for Node) to read files line-by-line asynchronously and quickly.
32 lines (29 loc) • 1.51 kB
TypeScript
import fs from 'node:fs';
import readline from 'node:readline';
declare class LineReader {
/**
* Creates a readline interface for reading a file.
*
* @param {fs.PathLike} path - The path of the file to read.
* @param {BufferEncoding} [encoding=utf8] - The encoding of the file. Defaults to "utf8".
* @return {readline.Interface} The readline interface for reading the file.
*/
static createReadLineInterface(path: fs.PathLike, encoding?: BufferEncoding): readline.Interface;
/**
* Creates a LineReader object for reading lines from a file.
*
* @param {fs.PathLike} path - The path of the file to read.
* @param {BufferEncoding} encoding - The encoding to use when reading the file. Default is "utf8".
* @return {Object} An object with methods for reading lines from the file.
* - `hasNextLine`: A function that returns `true` if there is another line to read, `false` otherwise.
* - `nextLine`: An async function that reads the next line from the file and returns it.
* - `close`: A function that closes the LineReader and stops reading lines from the file.
*/
static create(path: fs.PathLike, encoding?: BufferEncoding): {
hasNextLine: () => boolean;
nextLine: <Output>(fn?: ((value: string) => Output) | undefined) => Promise<string | Output | undefined>;
/** Manually closes the LineReader by calling the `close` method */
close: () => void;
};
}
export { LineReader };