JavaScript で YAML を扱うなら「js-yaml」が楽チン

Node.js で YAML ファイルを読み込んで扱いたくなったので、ググって1件目に出てきた js-yaml を使ってみた。

$ mkdir practice-yaml-in-js && cd $_
$ npm init -y
$ npm install -S js-yaml
$ touch index.js
const fs = require('fs');
const jsYaml = require('js-yaml');

// YAML ファイルを読み込む (最終的に string 型の変数に収められていれば YAML ベタ書きでも良い
const yamlData = fs.readFileSync('./my-settings.yaml', 'utf-8');
// 引数の string から連想配列を作る
const data = jsYaml.safeLoad(yamlData);

// 読み込んだファイル (ココでは my-settings.yaml) の内容によるが、以下のようにアクセスできたりする
console.log( data.info.name );  // 連想配列として
console.log( data.fileNames[5] );  // 配列へのアクセス

ファイルからの読み込み部分は素直に fs を使い、js-yaml にはとにかく string で渡せば良い。

なお、うまく YAML がパースできなかった場合は、YAMLException がスローされるので、必要に応じて trycatch で囲んだりしておこう。