nconfでYAMLファイルを扱える様にする
evacでは、アグリゲータとしての挙動をJSONファイルで定義する様にしていて、その内容の解釈にnconfを利用しているのだけど、YAMLもフォーマットとしてサポートさせたいので試してみたのでその際のメモ。
nconf自体はパーサーを外部に指定できる仕組みがあるので以下の様に組み合わせるとYAMLをJSONを扱うのと同様に解釈できた。
YAMLのパーサーには以下を利用した。
YAMLファイルを適当に準備。
in: staticWord: text: "test word." filter: through: out: stdout:
これをnconfと組み合わせてYAMLを設定ファイルとして解釈させるには以下の様にすればよい。
var config = require('nconf'); var yaml = require('js-yaml'); config.use('file',{ file:'/home/hideack/foo.yaml', format:{ parse: yaml.safeLoad, stringify: yaml.safeDump } }); config.load(function (err, conf) { console.log(conf); //{ in: {staticWord: {text:'test word.'}},filter: {through: null},out: {stdout: null}} });