wordle-shell
Version:
A Wordle for the command line
49 lines (48 loc) • 1.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Langs = void 0;
const pt_br_json_1 = __importDefault(require("./data/pt_br.json"));
const en_us_json_1 = __importDefault(require("./data/en_us.json"));
const seedrandom_1 = __importDefault(require("seedrandom"));
var Langs;
(function (Langs) {
Langs["ptBr"] = "pt-br";
Langs["enUs"] = "en-us";
})(Langs = exports.Langs || (exports.Langs = {}));
class WordPicker {
constructor(lang) {
var _a;
this.words = WordPicker.getWordList(lang);
const index = this.generateIndex();
this.word = (_a = this.words.at(index)) !== null && _a !== void 0 ? _a : "Error";
}
static getWordList(lang) {
switch (lang) {
case Langs.ptBr:
return pt_br_json_1.default;
case Langs.enUs:
return en_us_json_1.default;
default:
return en_us_json_1.default;
}
}
getWordList() {
return this.words;
}
getWord() {
return this.word;
}
generateIndex() {
const rng = WordPicker.seed();
const rand_number = rng();
return Math.floor(rand_number * this.words.length);
}
static seed() {
const today = new Date();
return (0, seedrandom_1.default)(today.toDateString());
}
}
exports.default = WordPicker;