Node.js の readline 組み込みモジュールで echo コマンドからのパイプを受け取る

Node.js の組み込みモジュールである readline を使ってお遊び。

以前にも、echo コマンドから文字列をパイプで受け取って処理を行う Node.js ワンライナーを書いたが、今回は /dev/stdin を使わないやり方。

readline モジュールを使って次のようなコードを書いてやる。

#!/usr/bin/env node
const readline = require('readline');

const reader = readline.createInterface({
  input   : process.stdin,
  output  : process.stdout,
  terminal: false
});
reader.on('line', (line) => {
  console.log(line + ' が渡されました');
  reader.close();
});

このスクリプトファイルを使うと、次のように echo コマンドからの文字列を受け取れる。

$ echo 'AAA' | node ./read-pipe.js 
AAA が渡されました

readline モジュールには他にもプロンプトを設定するメソッドなどもあったりするので、CLI ツールを作る時にお世話になるかも。