type-gimeiとは
type-gimeiは日本人の名前をランダムに返すライブラリです。
テストの時に使うことを想定しています。
rubyのgimeiにインスパイアされており、インターフェースをなるべく踏襲するようにしています。
使い方
TypeScript
import { Gimei, Name } from 'type-gimei';
for (let i = 0; i < 10; i++) {
const name: Name = Gimei.randomName();
const hiragana: string = name.hiragana();
const romaji: string = name.romaji();
const kanji: string = name.kanji();
const katakana: string = name.katakana();
console.log(`
${hiragana}
${romaji}
${kanji}
${katakana}
`);
}
ES6, ES5
const {Gimei} = require('type-gimei');
for (let i = 0; i < 10; i++) {
let name = Gimei.randomFemale();
console.log(name.hiragana());
console.log(name.kanji());
console.log(name.romaji());
console.log('----');
}
var gimei = require('type-gimei').Gimei;
var name = gimei.randomName();
var hiragana = name.hiragana();
var romaji = name.romaji();
var kanji = name.kanji();
var katakana = name.katakana();
console.log(hiragana);
console.log(romaji);
console.log(kanji);
console.log(katakana);
というような感じ
気づいた点
もともとはangularの中でダミーのデータを気軽に作りたいと思っていたところ、gimeiというgemを知り、実装もお手軽そうだったのでTypeScriptで書いてみるちょうど良いお題だと思ったので書きました。
でもRubyで簡単にかける部分をTypeScriptでやると冗長な感じになってしまったりして、そういえばTypeScriptやES6とかでメタプロってどうやるんだろうと思った次第です。
TypeScriptをbuildしてnpmにpublishする部分はRxJSのその部分からだいぶ拝借してきたのでそれなりに良い勉強になった。
TypeScript上で使う場合、tsconfigのtargetを指定することでtype-gimeiの_esm5や_esm2015にビルドしたソースを使い分けているようだった。
angular6からはnode由来のfsとかpathだったりのモジュールが使えなかったので、サンプルデータを記述しているymlファイルの読み込みを実行する方式ではなくあらかじめ変数として定義する方式に変更した。
originはこちら