UNPKG

icetool

Version:
72 lines (71 loc) 3.99 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _NumberDateFormat_language, _NumberDateFormat_data; Object.defineProperty(exports, "__esModule", { value: true }); exports.NumberDateFormat = void 0; const types_1 = require("../../interface/types"); const Error_1 = require("../Error"); const Translate_1 = require("../Translate"); class NumberDateFormat { constructor(lang, data) { _NumberDateFormat_language.set(this, void 0); _NumberDateFormat_data.set(this, {}); __classPrivateFieldSet(this, _NumberDateFormat_language, lang, "f"); __classPrivateFieldGet(this, _NumberDateFormat_data, "f").format = data?.format ?? "MMMM Do YYYY, hh:mm:ss"; if (!types_1.language.includes(__classPrivateFieldGet(this, _NumberDateFormat_language, "f"))) throw new Error_1.Errors("us-US", "languageNotValid"); } format(value) { let time = value; if (typeof (time) === "string") time = new Date(time).getTime(); if (typeof (time) !== "number") throw new Error_1.Errors(__classPrivateFieldGet(this, _NumberDateFormat_language, "f"), "notType"); const translateTime = new Translate_1.Translate(__classPrivateFieldGet(this, _NumberDateFormat_language, "f")); const key = translateTime.get("time.day"); const date = new Date(time); const month = translateTime.get("time.months")[date.getMonth()]; const day = translateTime.get("time.days")[date.getDay()]; const dayNumber = ("00" + date.getDate()).slice(-2) + (key[date.getDate() - 1] ? key[date.getDate() - 1] : translateTime.get("time.th")); const years = date.getFullYear(); const hours = ("00" + date.getHours()).slice(-2); const minutes = ("00" + date.getMinutes()).slice(-2); const second = ("00" + date.getSeconds()).slice(-2); const ms = ("000" + date.getMilliseconds()).slice(0, 3); const getMonth = ("00" + (date.getMonth() + 1)).slice(-2); const getDay = ("00" + date.getDate()).slice(-2); const values = { "MMMM": month, "MM": month.slice(0, 3), "M": getMonth, "Do": dayNumber, "dddd": day, "dd": day.slice(0, 3), "d": getDay, "YYYY": years, "YY": years.toString().slice(2, 4), "hh": hours, "mm": minutes, "ss": second, "ms": ms }; let format = __classPrivateFieldGet(this, _NumberDateFormat_data, "f").format; for (const [update, v] of Object.entries(values)) { const reg = new RegExp(update, "g"); format = format.replace(reg, v); } return format; } } exports.NumberDateFormat = NumberDateFormat; _NumberDateFormat_language = new WeakMap(), _NumberDateFormat_data = new WeakMap();