update
This commit is contained in:
21
package/node_modules/tiny-relative-date/LICENSE.md
generated
vendored
Normal file
21
package/node_modules/tiny-relative-date/LICENSE.md
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Joseph Wynn
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
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'];
|
39
package/node_modules/tiny-relative-date/package.json
generated
vendored
Normal file
39
package/node_modules/tiny-relative-date/package.json
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "tiny-relative-date",
|
||||
"version": "1.3.0",
|
||||
"description": "Tiny function that provides relative, human-readable dates.",
|
||||
"main": "lib/index.js",
|
||||
"module": "src/index.js",
|
||||
"scripts": {
|
||||
"build": "babel src -d lib",
|
||||
"test": "npm run eslint && npm run jasmine",
|
||||
"eslint": "eslint --fix src/**/*.js",
|
||||
"jasmine": "jasmine",
|
||||
"prepublish": "npm run build"
|
||||
},
|
||||
"files": [
|
||||
"lib/",
|
||||
"src/",
|
||||
"translations/"
|
||||
],
|
||||
"license": "MIT",
|
||||
"author": "Joseph Wynn <joseph@wildlyinaccurate.com> (https://wildlyinaccurate.com/)",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/wildlyinaccurate/relative-date.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.24.1",
|
||||
"babel-plugin-add-module-exports": "^0.2.1",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-register": "^6.24.1",
|
||||
"eslint": "^4.1.0",
|
||||
"eslint-config-standard": "^10.2.1",
|
||||
"eslint-plugin-import": "^2.6.0",
|
||||
"eslint-plugin-node": "^5.0.0",
|
||||
"eslint-plugin-promise": "^3.5.0",
|
||||
"eslint-plugin-standard": "^3.0.1",
|
||||
"jasmine": "^2.6.0",
|
||||
"jasmine-spec-reporter": "^4.1.1"
|
||||
}
|
||||
}
|
89
package/node_modules/tiny-relative-date/src/factory.js
generated
vendored
Normal file
89
package/node_modules/tiny-relative-date/src/factory.js
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
const calculateDelta = (now, date) => Math.round(Math.abs(now - date) / 1000)
|
||||
|
||||
export default function relativeDateFactory (translations) {
|
||||
return function relativeDate (date, now = new Date()) {
|
||||
if (!(date instanceof Date)) {
|
||||
date = new Date(date)
|
||||
}
|
||||
|
||||
let delta = null
|
||||
|
||||
const minute = 60
|
||||
const hour = minute * 60
|
||||
const day = hour * 24
|
||||
const week = day * 7
|
||||
const month = day * 30
|
||||
const 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)
|
||||
}
|
||||
|
||||
const translate = (translatePhrase, timeValue) => {
|
||||
let key
|
||||
|
||||
if (translatePhrase === 'justNow') {
|
||||
key = translatePhrase
|
||||
} else if (now >= date) {
|
||||
key = `${translatePhrase}Ago`
|
||||
} else {
|
||||
key = `${translatePhrase}FromNow`
|
||||
}
|
||||
|
||||
const 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')
|
||||
}
|
||||
}
|
||||
}
|
4
package/node_modules/tiny-relative-date/src/index.js
generated
vendored
Normal file
4
package/node_modules/tiny-relative-date/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import relativeDateFactory from './factory'
|
||||
import enTranslations from '../translations/en'
|
||||
|
||||
export default relativeDateFactory(enTranslations)
|
31
package/node_modules/tiny-relative-date/translations/da.js
generated
vendored
Normal file
31
package/node_modules/tiny-relative-date/translations/da.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
justNow: "ligenu",
|
||||
secondsAgo: "{{time}} sekunder siden",
|
||||
aMinuteAgo: "et minut siden",
|
||||
minutesAgo: "{{time}} minutter siden",
|
||||
anHourAgo: "en time siden",
|
||||
hoursAgo: "{{time}} timer siden",
|
||||
aDayAgo: "i går",
|
||||
daysAgo: "{{time}} dage siden",
|
||||
aWeekAgo: "en uge siden",
|
||||
weeksAgo: "{{time}} uger siden",
|
||||
aMonthAgo: "en måned siden",
|
||||
monthsAgo: "{{time}} måneder siden",
|
||||
aYearAgo: "et år siden",
|
||||
yearsAgo: "{{time}} år siden",
|
||||
overAYearAgo: "over et år siden",
|
||||
secondsFromNow: "om {{time}} sekunder",
|
||||
aMinuteFromNow: "om et minut",
|
||||
minutesFromNow: "om {{time}} minutter",
|
||||
anHourFromNow: "om en time",
|
||||
hoursFromNow: "om {{time}} timer",
|
||||
aDayFromNow: "i morgen",
|
||||
daysFromNow: "om {{time}} dage",
|
||||
aWeekFromNow: "om en uge",
|
||||
weeksFromNow: "om {{time}} uger",
|
||||
aMonthFromNow: "om en måned",
|
||||
monthsFromNow: "om {{time}} måneder",
|
||||
aYearFromNow: "om et år",
|
||||
yearsFromNow: "om {{time}} år",
|
||||
overAYearFromNow: "om over et år"
|
||||
}
|
31
package/node_modules/tiny-relative-date/translations/de.js
generated
vendored
Normal file
31
package/node_modules/tiny-relative-date/translations/de.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
justNow: "gerade eben",
|
||||
secondsAgo: "vor {{time}} Sekunden",
|
||||
aMinuteAgo: "vor einer Minute",
|
||||
minutesAgo: "vor {{time}} Minuten",
|
||||
anHourAgo: "vor einer Stunde",
|
||||
hoursAgo: "vor {{time}} Stunden",
|
||||
aDayAgo: "gestern",
|
||||
daysAgo: "vor {{time}} Tagen",
|
||||
aWeekAgo: "letzte Woche",
|
||||
weeksAgo: "vor {{time}} Wochen",
|
||||
aMonthAgo: "letzten Monat",
|
||||
monthsAgo: "vor {{time}} Monaten",
|
||||
aYearAgo: "letztes Jahr",
|
||||
yearsAgo: "vor {{time}} Jahren",
|
||||
overAYearAgo: "vor über einem Jahr",
|
||||
secondsFromNow: "in {{time}} Sekunden",
|
||||
aMinuteFromNow: "in einer Minute",
|
||||
minutesFromNow: "in {{time}} Minuten",
|
||||
anHourFromNow: "in einer Stunde",
|
||||
hoursFromNow: "in {{time}} Stunden",
|
||||
aDayFromNow: "morgen",
|
||||
daysFromNow: "in {{time}} Tagen",
|
||||
aWeekFromNow: "nächste Woche",
|
||||
weeksFromNow: "in {{time}} Wochen",
|
||||
aMonthFromNow: "nächsten Monat",
|
||||
monthsFromNow: "in {{time}} Monaten",
|
||||
aYearFromNow: "nächstes Jahr",
|
||||
yearsFromNow: "in {{time}} Jahren",
|
||||
overAYearFromNow: "in über einem Jahr"
|
||||
}
|
31
package/node_modules/tiny-relative-date/translations/en-short.js
generated
vendored
Normal file
31
package/node_modules/tiny-relative-date/translations/en-short.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
justNow: "now",
|
||||
secondsAgo: "{{time}}s",
|
||||
aMinuteAgo: "1m",
|
||||
minutesAgo: "{{time}}m",
|
||||
anHourAgo: "1h",
|
||||
hoursAgo: "{{time}}h",
|
||||
aDayAgo: "1d",
|
||||
daysAgo: "{{time}}d",
|
||||
aWeekAgo: "1w",
|
||||
weeksAgo: "{{time}}w",
|
||||
aMonthAgo: '4w',
|
||||
monthsAgo: (months) => `${Math.round(months / 12 * 52)}w`,
|
||||
aYearAgo: "1y",
|
||||
yearsAgo: "{{time}}y",
|
||||
overAYearAgo: "1y+",
|
||||
secondsFromNow: "+{{time}}s",
|
||||
aMinuteFromNow: "+1m",
|
||||
minutesFromNow: "+{{time}}m",
|
||||
anHourFromNow: "+1h",
|
||||
hoursFromNow: "+{{time}}h",
|
||||
aDayFromNow: "+1d",
|
||||
daysFromNow: "+{{time}}d",
|
||||
aWeekFromNow: "+1w",
|
||||
weeksFromNow: "+{{time}}w",
|
||||
aMonthFromNow: '+4w',
|
||||
monthsFromNow: (months) => `+${Math.round(months / 12 * 52)}w`,
|
||||
aYearFromNow: "+1y",
|
||||
yearsFromNow: "+{{time}}y",
|
||||
overAYearFromNow: "+1y+"
|
||||
}
|
31
package/node_modules/tiny-relative-date/translations/en.js
generated
vendored
Normal file
31
package/node_modules/tiny-relative-date/translations/en.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
justNow: "just now",
|
||||
secondsAgo: "{{time}} seconds ago",
|
||||
aMinuteAgo: "a minute ago",
|
||||
minutesAgo: "{{time}} minutes ago",
|
||||
anHourAgo: "an hour ago",
|
||||
hoursAgo: "{{time}} hours ago",
|
||||
aDayAgo: "yesterday",
|
||||
daysAgo: "{{time}} days ago",
|
||||
aWeekAgo: "a week ago",
|
||||
weeksAgo: "{{time}} weeks ago",
|
||||
aMonthAgo: "a month ago",
|
||||
monthsAgo: "{{time}} months ago",
|
||||
aYearAgo: "a year ago",
|
||||
yearsAgo: "{{time}} years ago",
|
||||
overAYearAgo: "over a year ago",
|
||||
secondsFromNow: "{{time}} seconds from now",
|
||||
aMinuteFromNow: "a minute from now",
|
||||
minutesFromNow: "{{time}} minutes from now",
|
||||
anHourFromNow: "an hour from now",
|
||||
hoursFromNow: "{{time}} hours from now",
|
||||
aDayFromNow: "tomorrow",
|
||||
daysFromNow: "{{time}} days from now",
|
||||
aWeekFromNow: "a week from now",
|
||||
weeksFromNow: "{{time}} weeks from now",
|
||||
aMonthFromNow: "a month from now",
|
||||
monthsFromNow: "{{time}} months from now",
|
||||
aYearFromNow: "a year from now",
|
||||
yearsFromNow: "{{time}} years from now",
|
||||
overAYearFromNow: "over a year from now"
|
||||
}
|
31
package/node_modules/tiny-relative-date/translations/es.js
generated
vendored
Normal file
31
package/node_modules/tiny-relative-date/translations/es.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
justNow: "recién",
|
||||
secondsAgo: "hace {{time}} segundos",
|
||||
aMinuteAgo: "hace un minuto",
|
||||
minutesAgo: "hace {{time}} minutos",
|
||||
anHourAgo: "hace una hora",
|
||||
hoursAgo: "hace {{time}} horas",
|
||||
aDayAgo: "ayer",
|
||||
daysAgo: "hace {{time}} días",
|
||||
aWeekAgo: "hace una semana",
|
||||
weeksAgo: "hace {{time}} semanas",
|
||||
aMonthAgo: "hace un mes",
|
||||
monthsAgo: "hace {{time}} meses",
|
||||
aYearAgo: "hace un año",
|
||||
yearsAgo: "hace {{time}} años",
|
||||
overAYearAgo: "hace mas de un año",
|
||||
secondsFromNow: "dentro de {{time}} segundos",
|
||||
aMinuteFromNow: "dentro de un minuto",
|
||||
minutesFromNow: "dentro de {{time}} minutos",
|
||||
anHourFromNow: "dentro de una hora",
|
||||
hoursFromNow: "dentro de {{time}} horas",
|
||||
aDayFromNow: "mañana",
|
||||
daysFromNow: "dentro de {{time}} días",
|
||||
aWeekFromNow: "dentro de una semana",
|
||||
weeksFromNow: "dentro de {{time}} semanas",
|
||||
aMonthFromNow: "dentro de un mes",
|
||||
monthsFromNow: "dentro de {{time}} meses",
|
||||
aYearFromNow: "dentro de un año",
|
||||
yearsFromNow: "dentro de {{time}} años",
|
||||
overAYearFromNow: "dentro de mas de un año"
|
||||
}
|
Reference in New Issue
Block a user