@regardio/js 0.5.0 → 0.7.0

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.
@@ -1,157 +0,0 @@
1
- // src/time/delay.ts
2
- function delay(ms) {
3
- return new Promise((resolve) => {
4
- return setTimeout(resolve, ms);
5
- });
6
- }
7
-
8
- // src/time/measure.ts
9
- async function measure(key, callback) {
10
- const start = Date.now();
11
- try {
12
- let result = callback();
13
- if (result instanceof Promise) {
14
- result = await result;
15
- }
16
- return result;
17
- } finally {
18
- const end = Date.now();
19
- console.log(`${key} took ${end - start}ms`);
20
- }
21
- }
22
-
23
- // src/time/time.ts
24
- function timeAgo(input) {
25
- const date = new Date(input);
26
- const formatter = new Intl.RelativeTimeFormat("en");
27
- const ranges = {
28
- days: 3600 * 24,
29
- hours: 3600,
30
- minutes: 60,
31
- months: 3600 * 24 * 30,
32
- seconds: 1,
33
- weeks: 3600 * 24 * 7,
34
- years: 3600 * 24 * 365
35
- };
36
- const secondsElapsed = (date.getTime() - Date.now()) / 1e3;
37
- for (const key of Object.keys(ranges)) {
38
- if (ranges[key] < Math.abs(secondsElapsed)) {
39
- const delta = secondsElapsed / ranges[key];
40
- return formatter.format(Math.round(delta), key);
41
- }
42
- }
43
- return "Just now";
44
- }
45
- var oneWeekFromNow = () => {
46
- const now = /* @__PURE__ */ new Date();
47
- return new Date(now.getTime() + 7 * 24 * 60 * 60 * 1e3);
48
- };
49
- var oneDayFromNow = () => {
50
- const now = /* @__PURE__ */ new Date();
51
- return new Date(now.getTime() + 1 * 24 * 60 * 60 * 1e3);
52
- };
53
- var oneMinuteFromNow = () => {
54
- const now = /* @__PURE__ */ new Date();
55
- return new Date(now.getTime() + 1 * 60 * 1e3);
56
- };
57
- function friendlyDuration(minutes, locale, short = false) {
58
- const numberFormatter = new Intl.NumberFormat(locale);
59
- if (!minutes) {
60
- return null;
61
- }
62
- if (short) {
63
- if (minutes > 120) {
64
- const hours = Math.floor(minutes / 60);
65
- const remainingMinutes = minutes % 60;
66
- if (remainingMinutes > 0) {
67
- return {
68
- key: "common:duration.hoursAndMinutesShort",
69
- vars: {
70
- hours: numberFormatter.format(hours),
71
- minutes: numberFormatter.format(remainingMinutes)
72
- }
73
- };
74
- }
75
- return {
76
- key: "common:duration.hoursShort",
77
- vars: { hours: numberFormatter.format(hours) }
78
- };
79
- }
80
- return {
81
- key: "common:duration.minutesShort",
82
- vars: { minutes: numberFormatter.format(minutes) }
83
- };
84
- }
85
- if (minutes >= 525600) {
86
- const years = Math.floor(minutes / 525600);
87
- return {
88
- key: "common:duration.years",
89
- vars: {
90
- count: years,
91
- value: numberFormatter.format(years)
92
- }
93
- };
94
- }
95
- if (minutes >= 43200) {
96
- const months = Math.floor(minutes / 43200);
97
- return {
98
- key: "common:duration.months",
99
- vars: {
100
- count: months,
101
- value: numberFormatter.format(months)
102
- }
103
- };
104
- }
105
- if (minutes >= 10080) {
106
- const weeks = Math.floor(minutes / 10080);
107
- return {
108
- key: "common:duration.weeks",
109
- vars: {
110
- count: weeks,
111
- value: numberFormatter.format(weeks)
112
- }
113
- };
114
- }
115
- if (minutes >= 1440) {
116
- const days = Math.floor(minutes / 1440);
117
- return {
118
- key: "common:duration.days",
119
- vars: {
120
- count: days,
121
- value: numberFormatter.format(days)
122
- }
123
- };
124
- }
125
- if (minutes >= 240) {
126
- const hours = Math.floor(minutes / 60);
127
- const remainingMinutes = minutes % 60;
128
- if (remainingMinutes > 0) {
129
- return {
130
- key: "common:duration.hoursAndMinutes",
131
- vars: {
132
- hours: numberFormatter.format(hours),
133
- minutes: numberFormatter.format(remainingMinutes)
134
- }
135
- };
136
- }
137
- return {
138
- key: "common:duration.hours",
139
- vars: {
140
- count: hours,
141
- value: numberFormatter.format(hours)
142
- }
143
- };
144
- }
145
- return {
146
- key: "common:duration.minutes",
147
- vars: {
148
- count: minutes,
149
- value: numberFormatter.format(minutes)
150
- }
151
- };
152
- }
153
- var dateTimeInUnix = (date) => {
154
- return Math.floor(date / 1e3);
155
- };
156
-
157
- export { dateTimeInUnix, delay, friendlyDuration, measure, oneDayFromNow, oneMinuteFromNow, oneWeekFromNow, timeAgo };