UNPKG

@huideyeren/type-gimei

Version:

type-gimei generates Japanese Language random data.

452 lines 13.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Random = exports.Town = exports.City = exports.Prefecture = exports.Address = exports.LastName = exports.FirstName = exports.Name = exports.Gimei = exports.GENDER = void 0; var addresses_data_1 = require("./addresses_data"); var names_data_1 = require("./names_data"); var jconv = require('jaconv'); var GENDER; (function (GENDER) { GENDER["male"] = "male"; GENDER["female"] = "female"; })(GENDER = exports.GENDER || (exports.GENDER = {})); var Gimei = (function () { function Gimei(gender) { if (gender === void 0) { gender = undefined; } this.name = new Name(gender); this.address = new Address(); } Object.defineProperty(Gimei, "NAMES", { get: function () { return names_data_1.NAMES_DATA; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei, "ADDRESSES", { get: function () { return addresses_data_1.ADDRESSES_DATA; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei, "GENDER", { get: function () { return GENDER; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei, "Random", { get: function () { return Random; }, enumerable: false, configurable: true }); Gimei.randomName = function (gender) { if (gender === void 0) { gender = undefined; } return new Name(gender); }; Gimei.randomAddress = function () { return new Address(); }; Gimei.randomMale = function () { return Name.randomMale(); }; Gimei.randomFemale = function () { return Name.randomFemale(); }; Gimei.createName = function () { return new Name(); }; Gimei.createAddress = function () { return new Address(); }; Gimei.kanji = function () { return this.createName().kanji(); }; Gimei.katakana = function () { return this.createName().katakana(); }; Gimei.romaji = function () { return this.createName().romaji(); }; Gimei.first = function () { return this.createName().first; }; Gimei.last = function () { return this.createName().last; }; Gimei.prefecture = function () { return this.createAddress().prefecture; }; Gimei.city = function () { return this.createAddress().city; }; Gimei.town = function () { return this.createAddress().town; }; Gimei.prototype.kanji = function () { return this.name.kanji(); }; Gimei.prototype.hiragana = function () { return this.name.hiragana(); }; Gimei.prototype.katakana = function () { return this.name.katakana(); }; Gimei.prototype.romaji = function () { return this.name.romaji(); }; Object.defineProperty(Gimei.prototype, "first", { get: function () { return this.name.first; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei.prototype, "last", { get: function () { return this.name.last; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei.prototype, "prefecture", { get: function () { return this.address.prefecture; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei.prototype, "city", { get: function () { return this.address.city; }, enumerable: false, configurable: true }); Object.defineProperty(Gimei.prototype, "town", { get: function () { return this.address.town; }, enumerable: false, configurable: true }); Gimei.prototype.toString = function () { return this.name.kanji(); }; return Gimei; }()); exports.Gimei = Gimei; var Name = (function () { function Name(gender) { if (gender === void 0) { gender = undefined; } this.gender = gender; this.first = new FirstName(gender); this.last = new LastName(); } Name.randomMale = function () { return new this(Gimei.GENDER.male); }; Name.randomFemale = function () { return new this(Gimei.GENDER.female); }; Name.kanji = function () { return (new this).kanji(); }; Name.hiragana = function () { return (new this).hiragana(); }; Name.katakana = function () { return (new this).katakana(); }; Name.romaji = function () { return (new this).romaji(); }; Name.prototype.toString = function () { return "uheheheh"; }; Name.prototype.kanji = function () { return this.last.kanji() + " " + this.first.kanji(); }; Name.prototype.hiragana = function () { return this.last.hiragana() + " " + this.first.hiragana(); }; Name.prototype.katakana = function () { return this.last.katakana() + " " + this.first.katakana(); }; Name.prototype.romaji = function () { return this.last.romaji() + " " + this.first.romaji(); }; Name.prototype.isMale = function () { return this.gender == Gimei.GENDER.male; }; Name.prototype.isFemale = function () { return this.gender == Gimei.GENDER.female; }; return Name; }()); exports.Name = Name; var FirstName = (function () { function FirstName(gender) { if (gender === void 0) { gender = undefined; } this.gender = gender || Random.randomGender(); var data_len = Gimei.NAMES['first_name'][this.gender].length - 1; this.name = new NameWord(Gimei.NAMES['first_name'][this.gender][Random.random(0, data_len)]); } FirstName.createMale = function () { return (new this(GENDER.male)); }; FirstName.createFemale = function () { return (new this(GENDER.female)); }; FirstName.prototype.kanji = function () { return this.name.kanji(); }; FirstName.prototype.hiragana = function () { return this.name.hiragana(); }; FirstName.prototype.katakana = function () { return this.name.katakana(); }; FirstName.prototype.romaji = function () { return this.name.romaji(); }; FirstName.prototype.isMale = function () { return this.gender === GENDER.male; }; FirstName.prototype.isFemale = function () { return this.gender === GENDER.female; }; FirstName.prototype.toString = function () { return this.name.toString(); }; return FirstName; }()); exports.FirstName = FirstName; var LastName = (function () { function LastName() { var data_len = Gimei.NAMES['last_name'].length - 1; this.name = new NameWord(Gimei.NAMES['last_name'][Random.random(0, data_len)]); } LastName.prototype.kanji = function () { return this.name.kanji(); }; LastName.prototype.hiragana = function () { return this.name.hiragana(); }; LastName.prototype.katakana = function () { return this.name.katakana(); }; LastName.prototype.romaji = function () { return this.name.romaji(); }; LastName.prototype.toString = function () { return this.name.toString(); }; return LastName; }()); exports.LastName = LastName; var NameWord = (function () { function NameWord(name) { this.name = name; } NameWord.prototype.kanji = function () { return this.name[0]; }; NameWord.prototype.hiragana = function () { return this.name[1]; }; NameWord.prototype.katakana = function () { return this.name[2]; }; NameWord.prototype.romaji = function () { var n = jconv.toHebon(this.hiragana()); return n.charAt(0) + n.slice(1).toLowerCase(); }; NameWord.prototype.toString = function () { return this.kanji(); }; return NameWord; }()); var Address = (function () { function Address() { this.prefecture = new Prefecture(); this.city = new City(); this.town = new Town(); } Address.kanji = function () { return (new this).kanji(); }; Address.hiragana = function () { return (new this).hiragana(); }; Address.katakana = function () { return (new this).katakana(); }; Address.romaji = function () { return (new this).romaji(); }; Address.prototype.toString = function () { return "uheheheh"; }; Address.prototype.kanji = function () { return "" + this.prefecture.kanji() + this.city.kanji() + this.town.kanji(); }; Address.prototype.hiragana = function () { return "" + this.prefecture.hiragana() + this.city.hiragana() + this.town.hiragana(); }; Address.prototype.katakana = function () { return "" + this.prefecture.katakana() + this.city.katakana() + this.town.katakana(); }; Address.prototype.romaji = function () { return this.prefecture.romaji() + " " + this.city.romaji() + " " + this.town.romaji(); }; return Address; }()); exports.Address = Address; var Prefecture = (function () { function Prefecture() { var data_len = Gimei.ADDRESSES['prefecture'].length - 1; this.address = new AddressWord(Gimei.ADDRESSES['prefecture'][Random.random(0, data_len)]); } Prefecture.prototype.kanji = function () { return this.address.kanji(); }; Prefecture.prototype.hiragana = function () { return this.address.hiragana(); }; Prefecture.prototype.katakana = function () { return this.address.katakana(); }; Prefecture.prototype.romaji = function () { return this.address.romaji(); }; Prefecture.prototype.toString = function () { return this.address.toString(); }; return Prefecture; }()); exports.Prefecture = Prefecture; var City = (function () { function City() { var data_len = Gimei.ADDRESSES['city'].length - 1; this.address = new AddressWord(Gimei.ADDRESSES['city'][Random.random(0, data_len)]); } City.prototype.kanji = function () { return this.address.kanji(); }; City.prototype.hiragana = function () { return this.address.hiragana(); }; City.prototype.katakana = function () { return this.address.katakana(); }; City.prototype.romaji = function () { return this.address.romaji(); }; City.prototype.toString = function () { return this.address.toString(); }; return City; }()); exports.City = City; var Town = (function () { function Town() { var data_len = Gimei.ADDRESSES['town'].length - 1; this.address = new AddressWord(Gimei.ADDRESSES['town'][Random.random(0, data_len)]); } Town.prototype.kanji = function () { return this.address.kanji(); }; Town.prototype.hiragana = function () { return this.address.hiragana(); }; Town.prototype.katakana = function () { return this.address.katakana(); }; Town.prototype.romaji = function () { return this.address.romaji(); }; Town.prototype.toString = function () { return this.address.toString(); }; return Town; }()); exports.Town = Town; var AddressWord = (function () { function AddressWord(address) { this.address = address; } AddressWord.prototype.kanji = function () { return this.address[0]; }; AddressWord.prototype.hiragana = function () { return this.address[1]; }; AddressWord.prototype.katakana = function () { return this.address[2]; }; AddressWord.prototype.romaji = function () { var n = jconv.toHebon(this.hiragana()); return n.charAt(0) + n.slice(1).toLowerCase(); }; AddressWord.prototype.toString = function () { return this.kanji(); }; return AddressWord; }()); var Random = (function () { function Random(seed) { if (seed === undefined) { var max = 100; var min = 0; seed = Math.floor(Math.random() * (max - min)) + min; } this.x = 123456789; this.y = 345677911; this.z = 567899233; this.w = seed; } Random.prototype.next = function () { var t; t = this.x ^ (this.x << 11); this.x = this.y; this.y = this.z; this.z = this.w; return this.w = (this.w ^ (this.w >>> 19)) ^ (t ^ (t >>> 8)); }; Random.prototype.nextInt = function (min, max) { var rand = Math.abs(this.next()); return min + (rand % (max + 1 - min)); }; Random.random = function (min, max) { if (min === void 0) { min = 0; } if (max === void 0) { max = 1; } var rand = new Random(); return rand.nextInt(min, max); }; Random.randomGender = function (min, max) { if (min === void 0) { min = 0; } if (max === void 0) { max = 1; } var rand = new Random(); var index = rand.nextInt(min, max); var gender; switch (index) { case 0: gender = GENDER.male; break; case 1: gender = GENDER.female; break; default: gender = GENDER.male; break; } return gender; }; return Random; }()); exports.Random = Random; //# sourceMappingURL=gimei.js.map