@drewsonne/maya-dates
Version:
Typescript package to manipulate dates in the Maya Calendar
103 lines • 3.68 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TzolkinDay = exports.getTzolkinDay = exports.TzolkinDays = void 0;
var hashMap_1 = __importDefault(require("../../structs/hashMap"));
var wildcard_1 = require("../../wildcard");
var cycle_1 = __importDefault(require("./cycle"));
var TzolkinDays;
(function (TzolkinDays) {
TzolkinDays["IMIX"] = "Imix";
TzolkinDays["IK"] = "Ik'";
TzolkinDays["AK_BAL"] = "Ak'bal";
TzolkinDays["K_AN"] = "K'an";
TzolkinDays["CHIKCHAN"] = "Chikchan";
TzolkinDays["KIMI"] = "Kimi";
TzolkinDays["MANIK"] = "Manik'";
TzolkinDays["LAMAT"] = "Lamat";
TzolkinDays["MULUK"] = "Muluk";
TzolkinDays["OK"] = "Ok";
TzolkinDays["CHUWEN"] = "Chuwen";
TzolkinDays["EB"] = "Eb";
TzolkinDays["BEN"] = "Ben";
TzolkinDays["IX"] = "Ix";
TzolkinDays["MEN"] = "Men";
TzolkinDays["KIB"] = "Kib";
TzolkinDays["KABAN"] = "Kaban";
TzolkinDays["ETZ_NAB"] = "Etz'nab";
TzolkinDays["KAWAK"] = "Kawak";
TzolkinDays["AJAW"] = "Ajaw";
})(TzolkinDays = exports.TzolkinDays || (exports.TzolkinDays = {}));
var days = new hashMap_1.default([
undefined,
TzolkinDays.IMIX,
TzolkinDays.IK,
TzolkinDays.AK_BAL,
TzolkinDays.K_AN,
TzolkinDays.CHIKCHAN,
TzolkinDays.KIMI,
TzolkinDays.MANIK,
TzolkinDays.LAMAT,
TzolkinDays.MULUK,
TzolkinDays.OK,
TzolkinDays.CHUWEN,
TzolkinDays.EB,
TzolkinDays.BEN,
TzolkinDays.IX,
TzolkinDays.MEN,
TzolkinDays.KIB,
TzolkinDays.KABAN,
TzolkinDays.ETZ_NAB,
TzolkinDays.KAWAK,
TzolkinDays.AJAW,
]);
var singleton = {};
function getTzolkinDay(name) {
var cycleName = (typeof name === 'number') ? days.getValue(name) : name;
var cycleNameHash = "".concat(cycleName);
if (cycleNameHash === '*') {
return new wildcard_1.Wildcard();
}
if (singleton[cycleNameHash] === undefined) {
singleton[cycleNameHash] = new TzolkinDay(name);
}
return singleton[cycleNameHash];
}
exports.getTzolkinDay = getTzolkinDay;
var TzolkinDay = (function (_super) {
__extends(TzolkinDay, _super);
function TzolkinDay(newName) {
return _super.call(this, newName, days, getTzolkinDay) || this;
}
TzolkinDay.prototype.validate = function () {
if (this.value === undefined) {
throw new Error('Tzolk\'in day name must be provided');
}
if (typeof this.value === 'string') {
if (!days.includes(this.value)) {
throw new Error("Tzolk'in day (".concat(this.value, ") must be in ").concat(days));
}
}
return true;
};
return TzolkinDay;
}(cycle_1.default));
exports.TzolkinDay = TzolkinDay;
//# sourceMappingURL=tzolkinDay.js.map