2017 March 19
node-draftlogはnode.jsむけのリッチなログを 実現するライブラリ. 公式のgifを見ると何ができるかがわかりやすい. 特に一度コンソールにプリントした 文字列を、あとで異なる文字列で再描画することを可能にするライブラリ.
インストール方法
npm install draftlog
使い方
const DraftLog = require('draftlog');
DraftLog(console); // 初期化
console.info('Hello world from console.info');
const updatable_line = console.draft('Hello world from draft');
console.info('Hello world from console.info after draft');
updatable_line('Update hello world after two conslle.infos');
ここで面白いのは、update_line
で表示される行は, console.info
で標準出力に書いたのとは無関係に
あとから任意のタイミングでその行だけ再描画できること.
このようなあとから更新可能な行を作るためには, draft
関数を用いる.
実装
node.jsにおいて、標準出力はconsole._stdout
で得られる.
標準出力に流れてくる文字列を監視して, draft
が呼ばれたタイミングで
何行目に出力するかを記録している.
標準出力の文字列を監視しているのは,
LineCountStraem
というクラス.