Skip to content

Latest commit

 

History

History
50 lines (37 loc) · 1.18 KB

13-readline.md

File metadata and controls

50 lines (37 loc) · 1.18 KB

🐢 Node.js

🌟 The different core modules

Readline

The readline module will allow you to consume “Readable” type Streams line by line. For example if you want to read a file line by line:

import readline from "readline";
import fs from "fs";

async function* readFileByLine(filename) {
    const rl = readline.createInterface({
        input: fs.createReadStream(filename), crlfDelay: Infinity,
    });

    for await (const line of rl) {
        yield line;
    }
}

for await (const line of readFileByLine("./input.txt")) {
    console.log(line);
}

Because process.stdin is a Stream Readable it is also possible to create CLIs (or simply prompts).

import readline from "readline";

function prompt(query) {
    const rl = readline.createInterface({
        input: process.stdin, output: process.stdout
    });

    return new Promise((resolve) => {
        rl.question(query, (response) => {
            rl.close();
            resolve(reponse);
        });
    });
}

⬅️ 🌟 The different core modules: Zlib | ➡️ 🌟 The different core modules: perf_hooks