UNPKG

@sencinion/ms

Version:

Türk kullanıcılar için çevirilmiş ms modülü

124 lines 3.51 kB
"use strict"; const units = { milisaniye: { birim: 1, aliases: ["milisecond", "miliseconds", "ms", "milisaniye"], }, saniye: { birim: 1000, aliases: ["sec", "sa", "sn", "s", "san", "seconds", "second", "saniye"], }, dakika: { birim: 1000 * 60, aliases: ["d", "dak", "dk", "dakika", "minute", "minutes", "min"], }, saat: { birim: 1000 * 60 * 60, aliases: ["saat", "st", "hour", "hours"], }, gün: { birim: 1000 * 60 * 60 * 24, aliases: ["gün", "gun", "g", "day", "days"], }, hafta: { birim: 1000 * 60 * 60 * 24 * 7, aliases: ["hafta", "h", "ha", "week", "weeks", "hft"], }, ay: { birim: 1000 * 60 * 60 * 24 * 30, aliases: ["ay", "month", "mon"], }, yıl: { birim: 1000 * 60 * 60 * 24 * 365.25, aliases: ["yıl", "y", "years", "year", "yl", "yil"], }, yüzyıl: { birim: 1000 * 60 * 60 * 24 * 365.25 * 100, aliases: [ "yuzyil", "yüzyil", "yuzyıl", "yüzyıl", "yy", "cen", "century", "asir", "asır", ], }, milenyum: { birim: 1000 * 60 * 60 * 24 * 365.25 * 1000, aliases: ["milenyum", "mil", "binyıl", "binyil"], }, }; function ms(input, parse = false, forceFormat = false) { let output = 0; let isNumber = false; if (typeof input === "number") { isNumber = true; output = input; } else if (typeof input == "string") { const parts = input.match(/-?\d*\.?\d+\s*[a-zA-Zğüşöçıİ]*/g) || []; const part = parts .map((part) => parseUnit(part.trim())) .filter((unit) => unit !== undefined); output = part.map(unitToMs).reduce((acc, num) => acc + num, 0); } else if (Array.isArray(input)) { output = input.map(unitToMs).reduce((acc, num) => acc + num, 0); } else return 0; const unit = msToUnit(output); if (isNumber || forceFormat) return unit.length !== 0 ? unit.map((unit) => `${unit.value} ${unit.unit}`).join(" ") : `0 milisaniye`; if (parse) return unit; return output; } function msToUnit(ms) { const unitsArray = Object.keys(units) .map((key) => ({ unit: key, value: units[key].birim, })) .sort((a, b) => b.value - a.value); return unitsArray .map(({ unit, value }) => { const result = Math.floor(ms / value); ms -= result * value; if (result == 0) return undefined; return { value: result, unit: unit }; }) .filter(Boolean); } function unitToMs(unit) { const uni = unit.unit; if (!uni) return unit.value; return unit.value * units[uni].birim; } function parseUnit(str) { var _a; let num = (_a = str.match(/-?\d*\.?\d+/)) === null || _a === void 0 ? void 0 : _a[0]; let unit = str .replace(num || "", "") .trim() .toLowerCase(); if (!num) return { value: 0, unit: "milisaniye" }; let number = parseFloat(num); unit = unit.trim(); for (const key in units) { if (units[key].aliases.some((u) => unit == u)) { return { value: number, unit: key }; } } return { value: number, unit: "milisaniye" }; } module.exports = ms; //# sourceMappingURL=ms.js.map