10分でかける! node.js で対話的なプログラムを書く方法。
https://github.com/tokuhirom/utf728
UTF-8 から UTF-7 への変換をおこなう対話的なシェルをつくりたい、などのように単機能の対話的なシェルをつくりたいというケースはままあるかとおもいます。
そんな場合には readline というモジュールが組込まれているので、それをつかえばいいです。
具体的には以下のように書けば OK です。簡単ですね。
var Iconv = require('iconv').Iconv, rl = require('readline'), util = require('util'), undefined; function MyApp() { this.utf827 = new Iconv('UTF-8', 'UTF-7'); this.utf728 = new Iconv('UTF-7', 'UTF-8'); } MyApp.prototype = { run: function () { var self = this; var rli = rl.createInterface(process.stdin, process.stdout); rli.setPrompt('utf7> '); rli.on('line', function(cmd) { var e = self.convert(cmd); util.puts(e); rli.prompt(); }).on('close', function () { util.puts(''); process.stdin.destroy(); }); rli.prompt(); }, convert: function (str) { if (str.match(/^\+/)) { return this.utf728.convert(str); } else { return this.utf827.convert(str); } } }; (new MyApp()).run();