UNPKG

ts-gimei

Version:

日本語の人物名や住所のテストデータを、漢字・ひらがな・カタカナ・ローマ字で出力します。ブラウザ・Node.js両方で使用可能

62 lines (58 loc) 1.63 kB
import { __require } from "./chunk-5gtx3pza.js"; // src/utils.ts function getRandomItem(array) { return array[Math.floor(Math.random() * array.length)]; } // src/Gimei.ts class Gimei { namesData; addressesData; async person(params) { await this.ensureNamesData(); const gender = params?.gender ?? getRandomItem(["male", "female"]); const firstNames = this.namesData.firstNames[gender]; const lastNames = this.namesData.lastNames; const firstName = getRandomItem(firstNames); const lastName = getRandomItem(lastNames); const fullName = { kanji: `${lastName.kanji} ${firstName.kanji}`, hiragana: `${lastName.hiragana} ${firstName.hiragana}`, katakana: `${lastName.katakana} ${firstName.katakana}`, romaji: `${lastName.romaji} ${firstName.romaji}` }; return { firstName, lastName, fullName, gender }; } async address() { await this.ensureAddressesData(); const prefecture = getRandomItem(this.addressesData.prefecture); const city = getRandomItem(this.addressesData.city); const town = getRandomItem(this.addressesData.town); return { prefecture, city, town }; } async ensureNamesData() { if (this.namesData) return; const data = await import("./chunk-ytctgze3.js"); this.namesData = data.default; } async ensureAddressesData() { if (this.addressesData) return; const data = await import("./chunk-ces7fyxm.js"); this.addressesData = data.default; } } // src/index.ts var gimei = new Gimei; var src_default = gimei; export { gimei, src_default as default };