UNPKG

milisaniye

Version:

Zaman bildiren yazılı ifadeleri milisaniyeye çevirin!

92 lines (80 loc) 3.39 kB
import { convert } from "../util/convert"; declare type Unit = "Years" | "Year" | "Yrs" | "Yr" | "Y" | "Yıl" | "Weeks" | "Week" | "W" | "Hafta" | "Days" | "Day" | "D" | "Gün" | "Hours" | "Hour" | "Hrs" | "Hr" | "H" | "Saat" | "Minutes" | "Minute" | "Mins" | "Min" | "M" | "Dakika" | "Dk" | "Seconds" | "Second" | "Secs" | "Sec" | "s" | "Saniye" | "Sn" | "Milliseconds" | "Millisecond" | "Msecs" | "Msec" | "Ms"; declare type UnitAnyCase = Unit | Uppercase<Unit> | Lowercase<Unit>; export declare type StringValue = `${number}` | `${number}${UnitAnyCase}` | `${number} ${UnitAnyCase}`; interface Options { birim?: string; }; const s = 1000, m = s * 60, h = m * 60, d = h * 24, w = d * 7, y = d * 365.25; /** * `value` değişkenini belirtilen zaman birimine çevirir (varsayılan birim: milisaniye) * * Seçenekler: * * - `birim` (kullanılabilir birimlerin tümüne [buradan](https://www.npmjs.com/package/milisaniye#birimler) ulaşabilirsiniz) * * @param {String} value * @param {Object} [options] */ export const ms = (value: StringValue, options?: Options): number | undefined => { if (!value) return; if (value.length > 1000) return;7 const match = /^(-?(?:\d+)?\.?\d+) *(milisaniye?|msec?|msecs?|millisecond?|milliseconds?|ms?|sec?|secs?|seconds?|second?|saniye?|sn?|s?|minutes?|minute?|mins?|min?|dakika?|dk?|m?|hours?|hour?|hrs?|hr?|h?|saat?|days?|day?|gün?|d?|weeks?|week?|hafta?|w?|years?|year?|yrs?|yr?|yıl?|y)?$/i.exec(String(value).toLocaleUpperCase("tr").toLocaleLowerCase("tr")) ?? /^(-?(?:\d+)?\.?\d+) *(milisaniye?|msec?|msecs?|millisecond?|milliseconds?|ms?|sec?|secs?|seconds?|second?|saniye?|sn?|s?|minutes?|minute?|mins?|min?|dakika?|dk?|m?|hours?|hour?|hrs?|hr?|h?|saat?|days?|day?|gün?|d?|weeks?|week?|hafta?|w?|years?|year?|yrs?|yr?|yıl?|y)?$/i.exec(String(value).toLocaleUpperCase("en-US").toLocaleLowerCase("en-US")); if (!match) return; const n = parseFloat(match[1]); const type_ = (match[2] || "ms").toLocaleLowerCase("tr"); const birim = options?.birim ?? "ms"; if (isNaN(n)) return; switch (type_) { case "years": case "year": case "yrs": case "yr": case "y": case "yıl": return convert(n * y, birim); case "weeks": case "week": case "w": case "hafta": return convert(n * w, birim); case "days": case "day": case "d": case "gün": return convert(n * d, birim); case "hours": case "hour": case "hrs": case "hr": case "h": case "saat": return convert(n * h, birim); case "minutes": case "minute": case "mins": case "min": case "m": case "dakika": case "dk": return convert(n * m, birim); case "seconds": case "second": case "secs": case "sec": case "s": case "saniye": case "sn": return convert(n * s, birim); case "milliseconds": case "millisecond": case "msecs": case "msec": case "ms": case "milisaniye": return convert(n, birim); default: return undefined; }; };