UNPKG

@subsocial/utils

Version:
53 lines (52 loc) 1.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubDate = exports.I18N_DAYJS_RELATIVE_TIME_KEY = exports.relativeTimeUnits = void 0; const dayjs_1 = __importDefault(require("dayjs")); const relativeTime_1 = __importDefault(require("dayjs/plugin/relativeTime")); const updateLocale_1 = __importDefault(require("dayjs/plugin/updateLocale")); require("dayjs/locale/ru"); class SubsocialDate { constructor() { dayjs_1.default.extend(relativeTime_1.default); dayjs_1.default.extend(updateLocale_1.default); } formatDate(date) { const diff = (0, dayjs_1.default)().diff((0, dayjs_1.default)(date), 'days'); if (diff < 7) { return (0, dayjs_1.default)(date).fromNow().toLowerCase(); } else if (diff > 7 && diff < 365) { return (0, dayjs_1.default)(date).format('DD MMM'); } else { return (0, dayjs_1.default)(date).format('DD MMM YY'); } } updateLocale({ localeName, relativeTime }) { dayjs_1.default.updateLocale(localeName, { relativeTime }); this.setLocale(localeName); } setLocale(localeName) { dayjs_1.default.locale(localeName); } } exports.relativeTimeUnits = { future: '%s', past: '%s', s: '', m: '', mm: '%d', h: '', hh: '%d', d: '', dd: '%d', M: '', MM: '%d', y: '', yy: '%d', }; exports.I18N_DAYJS_RELATIVE_TIME_KEY = 'dayjs.relativeTime'; exports.SubDate = new SubsocialDate();