update
This commit is contained in:
100
package/node_modules/tiny-relative-date/lib/factory.js
generated
vendored
Normal file
100
package/node_modules/tiny-relative-date/lib/factory.js
generated
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = relativeDateFactory;
|
||||
var calculateDelta = function calculateDelta(now, date) {
|
||||
return Math.round(Math.abs(now - date) / 1000);
|
||||
};
|
||||
|
||||
function relativeDateFactory(translations) {
|
||||
return function relativeDate(date) {
|
||||
var now = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
|
||||
|
||||
if (!(date instanceof Date)) {
|
||||
date = new Date(date);
|
||||
}
|
||||
|
||||
var delta = null;
|
||||
|
||||
var minute = 60;
|
||||
var hour = minute * 60;
|
||||
var day = hour * 24;
|
||||
var week = day * 7;
|
||||
var month = day * 30;
|
||||
var year = day * 365;
|
||||
|
||||
delta = calculateDelta(now, date);
|
||||
|
||||
if (delta > day && delta < week) {
|
||||
date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
|
||||
delta = calculateDelta(now, date);
|
||||
}
|
||||
|
||||
var translate = function translate(translatePhrase, timeValue) {
|
||||
var key = void 0;
|
||||
|
||||
if (translatePhrase === 'justNow') {
|
||||
key = translatePhrase;
|
||||
} else if (now >= date) {
|
||||
key = translatePhrase + 'Ago';
|
||||
} else {
|
||||
key = translatePhrase + 'FromNow';
|
||||
}
|
||||
|
||||
var translation = translations[key];
|
||||
|
||||
if (typeof translation === 'function') {
|
||||
return translation(timeValue);
|
||||
}
|
||||
|
||||
return translation.replace('{{time}}', timeValue);
|
||||
};
|
||||
|
||||
switch (false) {
|
||||
case !(delta < 30):
|
||||
return translate('justNow');
|
||||
|
||||
case !(delta < minute):
|
||||
return translate('seconds', delta);
|
||||
|
||||
case !(delta < 2 * minute):
|
||||
return translate('aMinute');
|
||||
|
||||
case !(delta < hour):
|
||||
return translate('minutes', Math.floor(delta / minute));
|
||||
|
||||
case Math.floor(delta / hour) !== 1:
|
||||
return translate('anHour');
|
||||
|
||||
case !(delta < day):
|
||||
return translate('hours', Math.floor(delta / hour));
|
||||
|
||||
case !(delta < day * 2):
|
||||
return translate('aDay');
|
||||
|
||||
case !(delta < week):
|
||||
return translate('days', Math.floor(delta / day));
|
||||
|
||||
case Math.floor(delta / week) !== 1:
|
||||
return translate('aWeek');
|
||||
|
||||
case !(delta < month):
|
||||
return translate('weeks', Math.floor(delta / week));
|
||||
|
||||
case Math.floor(delta / month) !== 1:
|
||||
return translate('aMonth');
|
||||
|
||||
case !(delta < year):
|
||||
return translate('months', Math.floor(delta / month));
|
||||
|
||||
case Math.floor(delta / year) !== 1:
|
||||
return translate('aYear');
|
||||
|
||||
default:
|
||||
return translate('overAYear');
|
||||
}
|
||||
};
|
||||
}
|
||||
module.exports = exports['default'];
|
18
package/node_modules/tiny-relative-date/lib/index.js
generated
vendored
Normal file
18
package/node_modules/tiny-relative-date/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _factory = require('./factory');
|
||||
|
||||
var _factory2 = _interopRequireDefault(_factory);
|
||||
|
||||
var _en = require('../translations/en');
|
||||
|
||||
var _en2 = _interopRequireDefault(_en);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
exports.default = (0, _factory2.default)(_en2.default);
|
||||
module.exports = exports['default'];
|
Reference in New Issue
Block a user