date-fns
Version:
Modern JavaScript date utility library
77 lines (65 loc) • 1.94 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = formatRelative;
var _index = _interopRequireDefault(require("../../../../_lib/isSameUTCWeek/index.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var adjectivesLastWeek = {
masculine: 'ostatni',
feminine: 'ostatnia'
};
var adjectivesThisWeek = {
masculine: 'ten',
feminine: 'ta'
};
var adjectivesNextWeek = {
masculine: 'następny',
feminine: 'następna'
};
var dayGrammaticalGender = {
0: 'feminine',
1: 'masculine',
2: 'masculine',
3: 'feminine',
4: 'masculine',
5: 'masculine',
6: 'feminine'
};
function getAdjectives(token, date, baseDate, options) {
if ((0, _index.default)(date, baseDate, options)) {
return adjectivesThisWeek;
} else if (token === 'lastWeek') {
return adjectivesLastWeek;
} else if (token === 'nextWeek') {
return adjectivesNextWeek;
} else {
throw new Error("Cannot determine adjectives for token ".concat(token));
}
}
function getAdjective(token, date, baseDate, options) {
var day = date.getUTCDay();
var adjectives = getAdjectives(token, date, baseDate, options);
var grammaticalGender = dayGrammaticalGender[day];
return adjectives[grammaticalGender];
}
function dayAndTimeWithAdjective(token, date, baseDate, options) {
var adjective = getAdjective(token, date, baseDate, options);
return "'".concat(adjective, "' eeee 'o' p");
}
var formatRelativeLocale = {
lastWeek: dayAndTimeWithAdjective,
yesterday: "'wczoraj o' p",
today: "'dzisiaj o' p",
tomorrow: "'jutro o' p",
nextWeek: dayAndTimeWithAdjective,
other: 'P'
};
function formatRelative(token, date, baseDate, options) {
var format = formatRelativeLocale[token];
if (typeof format === 'function') {
return format(token, date, baseDate, options);
}
return format;
}
module.exports = exports.default;
;