icetool
Version:
Your fonctions friends
72 lines (71 loc) • 3.99 kB
JavaScript
;
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();