Coverage

100%
13
13
0

/Users/sebastiansandqvist/Documents/Sites & Projects/apps/~modules/s-ago/index.js

100%
13
13
0
LineHitsSource
11'use strict';
2
31function format(diff, divisor, name, prev) {
431 var val = Math.floor(diff / divisor);
531 return val <= 1 ? prev : val + ' ' + name + 's ago';
6}
7
81function ago(date) {
9
1033 var diff = Math.abs(Date.now() - date.getTime());
11
1233 if (diff < 60000) { // less than a minute
132 return 'just now';
14 }
15
1631 for (var i = 0; i < ago.units.length; i++) {
17109 if (diff < ago.units[i].max) {
1831 return format(diff, ago.units[i].value, ago.units[i].name, ago.units[i].prev);
19 }
20 }
21
22}
23
241ago.units = [
25 { max: 2760000, value: 60000, name: 'minute', prev: 'a minute ago' }, // max: 46 minutes
26 { max: 72000000, value: 3600000, name: 'hour', prev: 'an hour ago' }, // max: 20 hours
27 { max: 518400000, value: 86400000, name: 'day', prev: 'yesterday' }, // max: 6 days
28 { max: 2419200000, value: 604800000, name: 'week', prev: 'last week' }, // max: 28 days
29 { max: 28512000000, value: 2592000000, name: 'month', prev: 'last month' }, // max: 11 months
30 { max: Infinity, value: 31536000000, name: 'year', prev: 'last year' }
31];
32
331module.exports = ago;