@huideyeren/type-gimei
Version:
type-gimei generates Japanese Language random data.
452 lines • 13.7 kB
JavaScript
"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