ts-gimei
Version:
日本語の人物名や住所のテストデータを、漢字・ひらがな・カタカナ・ローマ字で出力します。ブラウザ・Node.js両方で使用可能
62 lines (58 loc) • 1.63 kB
JavaScript
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
};