@vdegenne/ago 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ago.d.ts +2 -2
- package/lib/ago.d.ts.map +1 -1
- package/lib/ago.js +30 -24
- package/lib/ago.js.map +1 -1
- package/package.json +1 -1
package/lib/ago.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
interface AgoOptions {
|
|
2
2
|
/**
|
|
3
|
-
* If true will print "Today" and "
|
|
3
|
+
* If true, will print "Today", "Yesterday", and "Tomorrow" for respective intervals.
|
|
4
4
|
*
|
|
5
5
|
* @default false
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
relativeDayNames: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare function ago(dateInput: string | number, options?: Partial<AgoOptions>): string;
|
|
10
10
|
export {};
|
package/lib/ago.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ago.d.ts","sourceRoot":"","sources":["../src/ago.ts"],"names":[],"mappings":"AAAA,UAAU,UAAU;IACnB;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"ago.d.ts","sourceRoot":"","sources":["../src/ago.ts"],"names":[],"mappings":"AAAA,UAAU,UAAU;IACnB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,GAAG,CAClB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,MAAM,CAsDR"}
|
package/lib/ago.js
CHANGED
|
@@ -1,43 +1,49 @@
|
|
|
1
1
|
export function ago(dateInput, options) {
|
|
2
2
|
const _options = {
|
|
3
|
-
|
|
3
|
+
relativeDayNames: false,
|
|
4
4
|
...options,
|
|
5
5
|
};
|
|
6
6
|
const now = new Date();
|
|
7
|
-
let
|
|
7
|
+
let targetDate;
|
|
8
8
|
if (typeof dateInput === 'number') {
|
|
9
|
-
|
|
9
|
+
targetDate = new Date(dateInput < 1e11 ? dateInput * 1000 : dateInput);
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
|
-
|
|
12
|
+
targetDate = new Date(dateInput);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const isPast = targetDate.getTime() <= now.getTime();
|
|
15
|
+
const diffSeconds = Math.abs(now.getTime() - targetDate.getTime()) / 1000;
|
|
16
|
+
if (_options.relativeDayNames) {
|
|
17
|
+
const todayStr = now.toDateString();
|
|
18
|
+
const targetStr = targetDate.toDateString();
|
|
17
19
|
const yesterday = new Date(now);
|
|
18
20
|
yesterday.setDate(now.getDate() - 1);
|
|
19
|
-
|
|
21
|
+
const tomorrow = new Date(now);
|
|
22
|
+
tomorrow.setDate(now.getDate() + 1);
|
|
23
|
+
if (targetStr === todayStr)
|
|
20
24
|
return 'Today';
|
|
21
|
-
|
|
22
|
-
if (pastDateStr === yesterday.toDateString()) {
|
|
25
|
+
if (targetStr === yesterday.toDateString())
|
|
23
26
|
return 'Yesterday';
|
|
24
|
-
|
|
27
|
+
if (targetStr === tomorrow.toDateString())
|
|
28
|
+
return 'Tomorrow';
|
|
25
29
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const interval = Math.floor(seconds / value);
|
|
30
|
+
const intervals = [
|
|
31
|
+
['year', 31536000],
|
|
32
|
+
['month', 2592000],
|
|
33
|
+
['day', 86400],
|
|
34
|
+
['hour', 3600],
|
|
35
|
+
['minute', 60],
|
|
36
|
+
['second', 1],
|
|
37
|
+
];
|
|
38
|
+
for (const [unit, value] of intervals) {
|
|
39
|
+
const interval = diffSeconds / value;
|
|
37
40
|
if (interval >= 1) {
|
|
38
|
-
|
|
41
|
+
const rounded = unit === 'second' ? Math.floor(interval) : Math.ceil(interval);
|
|
42
|
+
return isPast
|
|
43
|
+
? `${rounded} ${unit}${rounded > 1 ? 's' : ''} ago`
|
|
44
|
+
: `${rounded} ${unit}${rounded > 1 ? 's' : ''}`;
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
|
-
return 'just now';
|
|
47
|
+
return isPast ? 'just now' : 'soon';
|
|
42
48
|
}
|
|
43
49
|
//# sourceMappingURL=ago.js.map
|
package/lib/ago.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ago.js","sourceRoot":"","sources":["../src/ago.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,GAAG,CAClB,SAA0B,EAC1B,OAA6B;IAE7B,MAAM,QAAQ,GAAe;QAC5B,
|
|
1
|
+
{"version":3,"file":"ago.js","sourceRoot":"","sources":["../src/ago.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,GAAG,CAClB,SAA0B,EAC1B,OAA6B;IAE7B,MAAM,QAAQ,GAAe;QAC5B,gBAAgB,EAAE,KAAK;QACvB,GAAG,OAAO;KACV,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,IAAI,UAAgB,CAAC;IAErB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACP,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAE1E,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QAE5C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpC,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAC3C,IAAI,SAAS,KAAK,SAAS,CAAC,YAAY,EAAE;YAAE,OAAO,WAAW,CAAC;QAC/D,IAAI,SAAS,KAAK,QAAQ,CAAC,YAAY,EAAE;YAAE,OAAO,UAAU,CAAC;IAC9D,CAAC;IAED,MAAM,SAAS,GAAuB;QACrC,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClB,CAAC,OAAO,EAAE,OAAO,CAAC;QAClB,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,MAAM,EAAE,IAAI,CAAC;QACd,CAAC,QAAQ,EAAE,EAAE,CAAC;QACd,CAAC,QAAQ,EAAE,CAAC,CAAC;KACb,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;QACrC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,OAAO,GACZ,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChE,OAAO,MAAM;gBACZ,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;gBACnD,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClD,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC"}
|