UNPKG

jalali-ts

Version:

Parse and interact with jalali date

70 lines (69 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.throwError = exports.zeroPad = exports.normalizeMilliseconds = exports.normalizeHours = exports.normalizeNumbers = exports.monthLength = exports.toGregorian = exports.toJalali = void 0; var Utils_1 = require("./Utils"); var toJalali = function (date) { var jalali = Utils_1.Utils.toJalali(date); jalali.month -= 1; return jalali; }; exports.toJalali = toJalali; var toGregorian = function (year, month, date) { var gregorian = Utils_1.Utils.toGregorian(year, month + 1, date); gregorian.month -= 1; return gregorian; }; exports.toGregorian = toGregorian; var monthLength = function (year, month) { month = Utils_1.Utils.mod(month, 12); year += Utils_1.Utils.div(month, 12); if (month < 0) { month += 12; year -= 1; } return Utils_1.Utils.monthLength(year, month + 1); }; exports.monthLength = monthLength; var normalizeNumbers = function (date) { var persianNumbers = new Map(); persianNumbers.set('۰', '0'); persianNumbers.set('۱', '1'); persianNumbers.set('۲', '2'); persianNumbers.set('۳', '3'); persianNumbers.set('۴', '4'); persianNumbers.set('۵', '5'); persianNumbers.set('۶', '6'); persianNumbers.set('۷', '7'); persianNumbers.set('۸', '8'); persianNumbers.set('۹', '9'); return String(date).split('').map(function (char) { var _a; return (_a = persianNumbers.get(char)) !== null && _a !== void 0 ? _a : char; }).join(''); }; exports.normalizeNumbers = normalizeNumbers; var normalizeHours = function (date, hours) { var meridian = null; if (String(date).toLowerCase().includes('am')) meridian = 'am'; if (String(date).toLowerCase().includes('pm')) meridian = 'pm'; if (meridian === 'am' && hours === 12) return 0; if (meridian === 'pm' && (hours >= 1 && hours <= 11)) return hours + 12; return (meridian !== null && hours > 12) ? -1 : hours; }; exports.normalizeHours = normalizeHours; var normalizeMilliseconds = function (ms) { if (ms.length === 1) return Number(ms) * 100; else if (ms.length === 2) return Number(ms) * 10; return ms.length > 3 ? -1 : Number(ms); }; exports.normalizeMilliseconds = normalizeMilliseconds; var zeroPad = function (value, maxLength) { if (maxLength === void 0) { maxLength = 2; } return String(value).padStart(maxLength, '0'); }; exports.zeroPad = zeroPad; var throwError = function (value) { throw new Error("Invalid: ".concat(value)); }; exports.throwError = throwError;