@subsocial/utils
Version:
JavaScript utils for Subsocial blockchain.
53 lines (52 loc) • 1.68 kB
JavaScript
;
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();