generate-human-names
Version:
Generate random names
61 lines • 2.21 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.genNames = void 0;
const surnames_json_1 = __importDefault(require("./surnames.json"));
const females_json_1 = __importDefault(require("./females.json"));
const males_json_1 = __importDefault(require("./males.json"));
function genNames(options = {}) {
const gpool = [];
if (options.gender) {
if (options.gender.toLowerCase() == 'female') {
gpool.push(...females_json_1.default.names);
}
else if (options.gender.toLowerCase() == 'male') {
gpool.push(...males_json_1.default.names);
}
else {
gpool.push(...[...females_json_1.default.names, ...males_json_1.default.names]);
}
}
else {
gpool.push(...[...females_json_1.default.names, ...males_json_1.default.names]);
}
let count = 1;
if (options.count && !isNaN(options.count) && options.count > 0) {
count = options.count;
}
let surname = false;
let lpool = [];
if (options.surname) {
surname = true;
lpool = surnames_json_1.default.names;
}
const names = [];
let x = 0;
while (x < count) {
const rand = Math.floor(Math.random() * gpool.length);
let tempFirst = gpool[rand].toLowerCase();
let tempFirstArr = tempFirst.split('');
tempFirstArr[0] = tempFirstArr[0].toUpperCase();
const resolvedFirst = tempFirstArr.join('');
let resolvedLast;
if (surname) {
const randl = Math.floor(Math.random() * lpool.length);
let tempLast = lpool[randl].toLowerCase();
let tempLastArr = tempLast.split('');
tempLastArr[0] = tempLastArr[0].toUpperCase();
resolvedLast = tempLastArr.join('');
}
names.push({
first: resolvedFirst,
last: resolvedLast
});
x++;
}
return names;
}
exports.genNames = genNames;
//# sourceMappingURL=index.js.map