milisaniye
Version:
Zaman bildiren yazılı ifadeleri milisaniyeye çevirin!
92 lines (80 loc) • 3.39 kB
text/typescript
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;
};
};