@vdegenne/ago 0.1.3 → 0.1.5

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 CHANGED
@@ -1,10 +1,10 @@
1
1
  interface AgoOptions {
2
2
  /**
3
- * If true will print "Today" and "Yesterday" for respective interval.
3
+ * If true, will print "Today", "Yesterday", and "Tomorrow" for respective intervals.
4
4
  *
5
5
  * @default false
6
6
  */
7
- todayAndYesterday: boolean;
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,iBAAiB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,GAAG,CAClB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,MAAM,CA0CR"}
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,40 +1,48 @@
1
1
  export function ago(dateInput, options) {
2
2
  const _options = {
3
- todayAndYesterday: false,
3
+ relativeDayNames: false,
4
4
  ...options,
5
5
  };
6
6
  const now = new Date();
7
- let pastDate;
7
+ let targetDate;
8
8
  if (typeof dateInput === 'number') {
9
- pastDate = new Date(dateInput < 1e11 ? dateInput * 1000 : dateInput);
10
- console.log(pastDate);
9
+ targetDate = new Date(dateInput < 1e11 ? dateInput * 1000 : dateInput);
11
10
  }
12
11
  else {
13
- pastDate = new Date(dateInput);
12
+ targetDate = new Date(dateInput);
14
13
  }
15
- const seconds = Math.floor((now.getTime() - pastDate.getTime()) / 1000);
16
- const intervals = {
17
- year: 31536000,
18
- month: 2592000,
19
- day: 86400,
20
- hour: 3600,
21
- min: 60,
22
- sec: 1,
23
- };
24
- for (const [unit, value] of Object.entries(intervals)) {
25
- const interval = Math.floor(seconds / value);
14
+ const isPast = targetDate.getTime() <= now.getTime();
15
+ const diffSeconds = Math.floor(Math.abs(now.getTime() - targetDate.getTime()) / 1000);
16
+ if (_options.relativeDayNames) {
17
+ const todayStr = now.toDateString();
18
+ const targetStr = targetDate.toDateString();
19
+ const yesterday = new Date(now);
20
+ yesterday.setDate(now.getDate() - 1);
21
+ const tomorrow = new Date(now);
22
+ tomorrow.setDate(now.getDate() + 1);
23
+ if (targetStr === todayStr)
24
+ return 'Today';
25
+ if (targetStr === yesterday.toDateString())
26
+ return 'Yesterday';
27
+ if (targetStr === tomorrow.toDateString())
28
+ return 'Tomorrow';
29
+ }
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 = Math.floor(diffSeconds / value);
26
40
  if (interval >= 1) {
27
- if (_options.todayAndYesterday) {
28
- if (unit === 'hour' || unit === 'min' || unit === 'sec') {
29
- return 'Today';
30
- }
31
- else if (unit === 'day' && interval === 1) {
32
- return 'Yesterday';
33
- }
34
- }
35
- return `${interval} ${unit}${interval > 1 ? 's' : ''} ago`;
41
+ return isPast
42
+ ? `${interval} ${unit}${interval > 1 ? 's' : ''} ago`
43
+ : `${interval} ${unit}${interval > 1 ? 's' : ''}`;
36
44
  }
37
45
  }
38
- return 'just now';
46
+ return isPast ? 'just now' : 'soon';
39
47
  }
40
48
  //# 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,iBAAiB,EAAE,KAAK;QACxB,GAAG,OAAO;KACV,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,IAAI,QAAc,CAAC;IAEnB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACP,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAExE,MAAM,SAAS,GAA4B;QAC1C,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACN,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAChC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACzD,OAAO,OAAO,CAAC;gBAChB,CAAC;qBAAM,IAAI,IAAI,KAAK,KAAK,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC7C,OAAO,WAAW,CAAC;gBACpB,CAAC;YACF,CAAC;YACD,OAAO,GAAG,QAAQ,IAAI,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAC5D,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
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,KAAK,CAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CACrD,CAAC;IAEF,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,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM;gBACZ,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;gBACrD,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpD,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vdegenne/ago",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "simple module for ago representations",
5
5
  "type": "module",
6
6
  "exports": {