TypeScriptでYAML形式のデータを扱う際には、yaml
ライブラリが非常に有用です。このライブラリは、YAMLのパース(解析)や文字列化を簡単に行うことができます。
yamlライブラリのインストール
まず、yaml
ライブラリをプロジェクトに追加します。npmを使用して以下のコマンドを実行してください。
npm install yaml
または、yarnを使用している場合は以下のコマンドを実行します。
yarn add yaml
YAML形式の文字列からのパース
YAML形式の文字列をJavaScriptオブジェクトに変換するには、yaml
ライブラリのparse
関数を使用します。
import { parse } from 'yaml';
const yamlString = `
name: John Doe
age: 30
email: john.doe@example.com
`;
const data = parse(yamlString);
console.log(data);
上記のコードを実行すると、以下のオブジェクトが出力されます。
{
name: 'John Doe',
age: 30,
email: 'john.doe@example.com'
}
ファイルからのパース
YAMLファイルを読み込み、パースすることも可能です。Node.jsのfs
モジュールと組み合わせて使用します。
import { parse } from 'yaml';
import { readFileSync } from 'fs';
const file = readFileSync('./data.yaml', 'utf8');
const data = parse(file);
console.log(data);
この方法で、data.yaml
ファイルの内容をオブジェクトとして取得できます。
パース後、クラスの型へ変換
パースしたデータを特定のクラスのインスタンスとして扱いたい場合、TypeScriptの型アサーションを使用してクラスの型に変換することができます。
import { parse } from 'yaml';
import { readFileSync } from 'fs';
class User {
name: string;
age: number;
email: string;
constructor(name: string, age: number, email: string) {
this.name = name;
this.age = age;
this.email = email;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
}
const file = readFileSync('./user.yaml', 'utf8');
const data = parse(file) as User;
const user = new User(data.name, data.age, data.email);
user.sayHello();
このコードでは、user.yaml
ファイルから読み込んだデータをUser
クラスのインスタンスとして扱っています。
文字列化
JavaScriptオブジェクトをYAML形式の文字列に変換するには、yaml
ライブラリのstringify
関数を使用します。
import { stringify } from 'yaml';
const data = {
name: 'John Doe',
age: 30,
email: 'john.doe@example.com'
};
const yamlString = stringify(data);
console.log(yamlString);
このコードを実行すると、以下のYAML形式の文字列が出力されます。
name: John Doe
age: 30
email: john.doe@example.com
以上、yaml
ライブラリを使用して、YAML形式の文字列からのパース、ファイルからのパース、パース後のクラスの型への変換、そして文字列化の方法をご紹介しました。このライブラリを活用することで、TypeScriptでのYAMLデータの操作が容易になります。
0 件のコメント:
コメントを投稿