@giveback007/util-lib 1.1.0 → 2.1.1

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/dist/http.js CHANGED
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.joinParamsToUrl = joinParamsToUrl;
4
4
  exports.fetchJSON = fetchJSON;
5
+ const test_1 = require("./test");
5
6
  function joinParamsToUrl(url, searchParams) {
6
7
  const u = new URL(url);
7
- Object.entries(searchParams).forEach(([key, value]) => value !== undefined
8
- &&
9
- value !== null
8
+ Object.entries(searchParams).forEach(([key, value]) => !(0, test_1.nonVal)(value)
10
9
  &&
11
10
  u.searchParams.append(key, value));
12
11
  return u.href;
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";;AAEA,0CAcC;AAED,8BAiDC;AAjED,SAAgB,eAAe,CAC3B,GAAW,EACX,YAAsD;IAEtD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAClD,KAAK,KAAK,SAAS;;YAEnB,KAAK,KAAK,IAAI;;YAEd,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAe,CAAC,CAC9C,CAAC;IAEF,OAAO,CAAC,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,SAAS,CAC3B,GAAW,EACX,UAII,EAAE;IAEN,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,YAAY,CAAC;IAE5B,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC;IAG/C,IAAI,GAAG,GAAyB,SAAS,CAAC;IAC1C,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,OAAc,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/B,OAAO;gBACH,EAAE,EAAE,IAAY;gBAChB,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,EAAO;gBAC3B,GAAG,EAAE,SAAS,EAAE,GAAG;aACtB,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,IAAI,IAAyB,CAAC;YAC9B,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,GAAG,SAAS,CAAC;YACrB,CAAC;YAED,OAAO;gBACH,EAAE,EAAE,KAAc;gBAClB,IAAI,EAAE,IAA2B;gBACjC,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC9B,GAAG;aACN,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChB,OAAO;YACH,EAAE,EAAE,KAAc;YAClB,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAU,CAAC;YACvD,GAAG;SACN,CAAA;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";;AAGA,0CAaC;AAED,8BAiDC;AAlED,iCAAgC;AAEhC,SAAgB,eAAe,CAC3B,GAAW,EACX,YAAsD;IAEtD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAClD,CAAC,IAAA,aAAM,EAAC,KAAK,CAAC;;YAEd,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAe,CAAC,CAC9C,CAAC;IAEF,OAAO,CAAC,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,SAAS,CAC3B,GAAW,EACX,UAII,EAAE;IAEN,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,YAAY,CAAC;IAE5B,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC;IAG/C,IAAI,GAAG,GAAyB,SAAS,CAAC;IAC1C,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,OAAc,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/B,OAAO;gBACH,EAAE,EAAE,IAAY;gBAChB,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,EAAO;gBAC3B,GAAG,EAAE,SAAS,EAAE,GAAG;aACtB,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,IAAI,IAAyB,CAAC;YAC9B,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,GAAG,SAAS,CAAC;YACrB,CAAC;YAED,OAAO;gBACH,EAAE,EAAE,KAAc;gBAClB,IAAI,EAAE,IAA2B;gBACjC,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC9B,GAAG;aACN,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChB,OAAO;YACH,EAAE,EAAE,KAAc;YAClB,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAU,CAAC;YACvD,GAAG;SACN,CAAA;IACL,CAAC;AACL,CAAC"}
package/dist/time.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { AnyDate, MsTime, num, PartialTimeObj, str, TimeArr, TimeObj } from '.';
1
+ import { Temporal } from '@js-temporal/polyfill';
2
+ import { AnyDate, MsTime, num, str, TimeArr, TimeObj } from '.';
2
3
  export declare const msTime: MsTime;
3
4
  export declare const weekTuple: readonly ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
4
5
  /**
@@ -11,28 +12,6 @@ export declare const weekTuple: readonly ["Sun", "Mon", "Tue", "Wed", "Thu", "Fr
11
12
  * @example "15:07:56:150"
12
13
  */
13
14
  export declare function dateTimeToString(dt?: Date): string;
14
- /** Gives the 'start' and 'end' of a day.
15
- *
16
- * Start of day is the first ms of the day
17
- *
18
- * End of day is the last ms of the day
19
- */
20
- export declare function getDayStartEnd(t: number | Date, type?: 'unix' | 'local'): {
21
- start: Date;
22
- end: Date;
23
- };
24
- export declare function weekStartEnd(t: number | Date, weekStart?: 'sun' | 'mon', type?: 'unix' | 'local'): {
25
- start: Date;
26
- end: Date;
27
- };
28
- export declare function monthStartEnd(t: number | Date, type?: 'unix' | 'local'): {
29
- start: Date;
30
- end: Date;
31
- };
32
- export declare function yearStartEnd(t: number | Date, type?: 'unix' | 'local'): {
33
- start: Date;
34
- end: Date;
35
- };
36
15
  export declare const time: {
37
16
  /** Seconds(n) -> to ms */
38
17
  readonly sec: (n: num) => number;
@@ -72,16 +51,15 @@ export declare const time: {
72
51
  };
73
52
  export declare const humanizedTime: (date: AnyDate) => string | null;
74
53
  /** A Date substitute, to make working with time easier and more versatile */
75
- export declare function getTime(date: TimeObj | PartialTimeObj | TimeArr, ianaTimeZone?: str): {
54
+ export declare function getTime(t: TimeArr | num | str, timeZone?: str): {
55
+ zonedTemporal: Temporal.ZonedDateTime;
56
+ date: Date;
76
57
  tzOffsetMin: number;
77
58
  localISO: string;
59
+ timeObj: TimeObj;
78
60
  isoStr: string;
79
- Date: Date;
61
+ timeZone: string;
80
62
  epochMs: number;
81
- ianaTZ: string;
82
- timeObj: TimeObj;
83
63
  };
84
- export declare function timeZoneOffsetMin(ianaTimeZone: string, date?: Date): number;
85
- export declare const timeObj: (dt: Date) => TimeObj;
64
+ export declare const timeObj: (dt: Date | Temporal.ZonedDateTime) => TimeObj;
86
65
  export declare function parseDate(d: AnyDate): Date | null;
87
- export declare function toLocalISOString(date: Date, tzOffsetMin?: number): string;
package/dist/time.js CHANGED
@@ -2,14 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.timeObj = exports.humanizedTime = exports.time = exports.weekTuple = exports.msTime = void 0;
4
4
  exports.dateTimeToString = dateTimeToString;
5
- exports.getDayStartEnd = getDayStartEnd;
6
- exports.weekStartEnd = weekStartEnd;
7
- exports.monthStartEnd = monthStartEnd;
8
- exports.yearStartEnd = yearStartEnd;
9
5
  exports.getTime = getTime;
10
- exports.timeZoneOffsetMin = timeZoneOffsetMin;
11
6
  exports.parseDate = parseDate;
12
- exports.toLocalISOString = toLocalISOString;
7
+ const polyfill_1 = require("@js-temporal/polyfill");
13
8
  const _1 = require(".");
14
9
  exports.msTime = {
15
10
  s: 1000,
@@ -35,71 +30,6 @@ function dateTimeToString(dt = new Date()) {
35
30
  const ms = ('00' + dt.getMilliseconds()).slice(-3);
36
31
  return `${h}:${m}:${s}:${ms}`;
37
32
  }
38
- /** Gives the 'start' and 'end' of a day.
39
- *
40
- * Start of day is the first ms of the day
41
- *
42
- * End of day is the last ms of the day
43
- */
44
- function getDayStartEnd(t, type = 'local') {
45
- if ((0, _1.isType)(t, 'number'))
46
- t = new Date(t);
47
- const y = t.getFullYear();
48
- const m = t.getMonth();
49
- const d = t.getDate();
50
- let start = new Date(y, m, d);
51
- let end = new Date(y, m, d, 23, 59, 59, 999);
52
- if (type === 'unix') {
53
- const tzOffset = exports.time.min(start.getTimezoneOffset());
54
- start = new Date(start.getTime() + tzOffset);
55
- end = new Date(end.getTime() + tzOffset);
56
- }
57
- return { start, end };
58
- }
59
- function weekStartEnd(t, weekStart = 'sun', type = 'local') {
60
- if ((0, _1.isType)(t, 'number'))
61
- t = new Date(t);
62
- const wd = t.getDay();
63
- const startOffset = wd * -1 + (weekStart === 'mon' ? 1 : 0);
64
- const endOffset = 6 + startOffset;
65
- const s = new Date(t.getTime() + exports.time.dys(startOffset));
66
- const e = new Date(t.getTime() + exports.time.dys(endOffset));
67
- let start = new Date(s.getFullYear(), s.getMonth(), s.getDate());
68
- let end = new Date(e.getFullYear(), e.getMonth(), e.getDate(), 23, 59, 59, 999);
69
- if (type === 'unix') {
70
- const tzOffset = exports.time.min(start.getTimezoneOffset());
71
- start = new Date(start.getTime() + tzOffset);
72
- end = new Date(end.getTime() + tzOffset);
73
- }
74
- return { start, end };
75
- }
76
- function monthStartEnd(t, type = 'local') {
77
- if ((0, _1.isType)(t, 'number'))
78
- t = new Date(t);
79
- const y = t.getFullYear();
80
- const m = t.getMonth();
81
- let start = new Date(y, m, 1);
82
- let end = new Date(y, m, 0, 23, 59, 59, 999);
83
- if (type === 'unix') {
84
- const tzOffset = exports.time.min(start.getTimezoneOffset());
85
- start = new Date(start.getTime() + tzOffset);
86
- end = new Date(end.getTime() + tzOffset);
87
- }
88
- return { start, end };
89
- }
90
- function yearStartEnd(t, type = 'local') {
91
- if ((0, _1.isType)(t, 'number'))
92
- t = new Date(t);
93
- const y = t.getFullYear();
94
- let start = new Date(y, 0, 1);
95
- let end = new Date(y, 12, 0, 23, 59, 59, 999);
96
- if (type === 'unix') {
97
- const tzOffset = exports.time.min(start.getTimezoneOffset());
98
- start = new Date(start.getTime() + tzOffset);
99
- end = new Date(end.getTime() + tzOffset);
100
- }
101
- return { start, end };
102
- }
103
33
  exports.time = {
104
34
  /** Seconds(n) -> to ms */
105
35
  sec: (n) => 1_000 * n,
@@ -167,35 +97,42 @@ const humanizedTime = (date) => {
167
97
  exports.humanizedTime = humanizedTime;
168
98
  // Intl.supportedValuesOf('timeZone');
169
99
  /** A Date substitute, to make working with time easier and more versatile */
170
- function getTime(date, ianaTimeZone) {
171
- const dt = parseDate(date);
172
- if (!dt)
173
- throw new Error('Invalid Date');
174
- ianaTimeZone = ianaTimeZone || Intl.DateTimeFormat().resolvedOptions().timeZone;
175
- const tzOffsetMin = timeZoneOffsetMin(ianaTimeZone, dt);
176
- const localISO = toLocalISOString(dt, tzOffsetMin);
177
- const finalDateObj = new Date(localISO);
100
+ function getTime(t, timeZone) {
101
+ timeZone = timeZone || Intl.DateTimeFormat().resolvedOptions().timeZone;
102
+ let zonedTemporal;
103
+ let date;
104
+ let isoStr;
105
+ if ((0, _1.isType)(t, 'number') || (0, _1.isType)(t, 'string')) {
106
+ date = new Date(t);
107
+ isoStr = date.toISOString();
108
+ zonedTemporal = polyfill_1.Temporal.ZonedDateTime.from(isoStr + `[${timeZone}]`);
109
+ }
110
+ else {
111
+ zonedTemporal = polyfill_1.Temporal.ZonedDateTime.from({
112
+ year: t[0],
113
+ month: t[1] || 1,
114
+ day: t[2] || 1,
115
+ hour: t[3] || 0,
116
+ minute: t[4] || 0,
117
+ second: t[5] || 0,
118
+ millisecond: t[6] || 0,
119
+ timeZone
120
+ });
121
+ date = new Date(zonedTemporal.epochMilliseconds);
122
+ isoStr = date.toISOString();
123
+ }
178
124
  return {
179
- tzOffsetMin, // this flips from the JS output, to align with the ISO output (- when js would be +)
180
- localISO,
181
- isoStr: finalDateObj.toISOString(),
182
- Date: finalDateObj,
183
- epochMs: finalDateObj.getTime(),
184
- ianaTZ: ianaTimeZone,
185
- timeObj: (0, exports.timeObj)(dt),
125
+ zonedTemporal,
126
+ date,
127
+ tzOffsetMin: zonedTemporal.offsetNanoseconds / 60_000_000_000,
128
+ localISO: zonedTemporal.toJSON(),
129
+ timeObj: (0, exports.timeObj)(zonedTemporal),
130
+ isoStr,
131
+ timeZone: timeZone,
132
+ epochMs: zonedTemporal.epochMilliseconds,
186
133
  };
187
134
  }
188
- function timeZoneOffsetMin(ianaTimeZone, date = new Date()) {
189
- const local = new Date(date);
190
- local.setMilliseconds(0);
191
- local.setSeconds(0);
192
- const tzTime = local.toLocaleString('US-en', { timeZone: ianaTimeZone });
193
- const tzDt = new Date(tzTime);
194
- const offsetMs = -local.getTimezoneOffset() * 60_000;
195
- const utcTime = tzDt.getTime() + offsetMs;
196
- return (utcTime - local.getTime()) / 60_000;
197
- }
198
- const timeObj = (dt) => ({
135
+ const timeObj = (dt) => dt instanceof Date ? ({
199
136
  y: dt.getFullYear(),
200
137
  m: dt.getMonth() + 1,
201
138
  d: dt.getDate(),
@@ -204,6 +141,15 @@ const timeObj = (dt) => ({
204
141
  sec: dt.getSeconds(),
205
142
  ms: dt.getMilliseconds(),
206
143
  wDay: exports.weekTuple[dt.getDay()]
144
+ }) : ({
145
+ y: dt.year,
146
+ m: dt.month,
147
+ d: dt.day,
148
+ h: dt.hour,
149
+ min: dt.minute,
150
+ sec: dt.second,
151
+ ms: dt.millisecond,
152
+ wDay: exports.weekTuple[dt.dayOfWeek]
207
153
  });
208
154
  exports.timeObj = timeObj;
209
155
  function parseDate(d) {
@@ -220,12 +166,4 @@ function parseDate(d) {
220
166
  }
221
167
  return dt;
222
168
  }
223
- function toLocalISOString(date, tzOffsetMin = -date.getTimezoneOffset()) {
224
- const sign = tzOffsetMin >= 0 ? '+' : '-';
225
- const diffHours = String(Math.floor(Math.abs(tzOffsetMin) / 60)).padStart(2, '0');
226
- const diffMinutes = String(Math.abs(tzOffsetMin) % 60).padStart(2, '0');
227
- return date.toLocaleString('lt').replace(' ', 'T') // or use: "sv-SE" (same effect)
228
- + '.' + (date.getMilliseconds() + '').padStart(3, '0')
229
- + sign + diffHours + ':' + diffMinutes;
230
- }
231
169
  //# sourceMappingURL=time.js.map
package/dist/time.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giveback007/util-lib",
3
- "version": "1.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "Utility library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,6 +25,7 @@
25
25
  },
26
26
  "homepage": "https://github.com/Giveback007/util-lib#readme",
27
27
  "dependencies": {
28
+ "@js-temporal/polyfill": "^0.5.1",
28
29
  "tslib": "^2.8.1"
29
30
  },
30
31
  "devDependencies": {
package/src/http.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import { Dict } from "./@types";
2
+ import { nonVal } from "./test";
2
3
 
3
4
  export function joinParamsToUrl(
4
5
  url: string,
5
6
  searchParams: Dict<string | number | undefined | null>,
6
7
  ) {
7
8
  const u = new URL(url);
9
+
8
10
  Object.entries(searchParams).forEach(([key, value]) =>
9
- value !== undefined
10
- &&
11
- value !== null
11
+ !nonVal(value)
12
12
  &&
13
13
  u.searchParams.append(key, value as string)
14
14
  );
package/src/time.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { AnyDate, isType, MsTime, num, PartialTimeObj, str, TimeArr, TimeObj } from '.';
1
+ import { Temporal } from '@js-temporal/polyfill';
2
+ import { AnyDate, isType, MsTime, num, str, TimeArr, TimeObj } from '.';
2
3
 
3
4
  export const msTime: MsTime = {
4
5
  s: 1000,
@@ -29,93 +30,6 @@ export function dateTimeToString(dt = new Date())
29
30
  return `${h}:${m}:${s}:${ms}`;
30
31
  }
31
32
 
32
- /** Gives the 'start' and 'end' of a day.
33
- *
34
- * Start of day is the first ms of the day
35
- *
36
- * End of day is the last ms of the day
37
- */
38
- export function getDayStartEnd(t: number | Date, type: 'unix' | 'local' = 'local') {
39
- if (isType(t, 'number')) t = new Date(t);
40
-
41
- const y = t.getFullYear();
42
- const m = t.getMonth();
43
- const d = t.getDate();
44
-
45
- let start = new Date(y, m, d);
46
- let end = new Date(y, m, d, 23, 59, 59, 999);
47
-
48
- if (type === 'unix') {
49
- const tzOffset = time.min(start.getTimezoneOffset());
50
-
51
- start = new Date(start.getTime() + tzOffset);
52
- end = new Date(end.getTime() + tzOffset);
53
- }
54
-
55
- return { start, end };
56
- }
57
-
58
- export function weekStartEnd(t: number | Date, weekStart: 'sun' | 'mon' = 'sun', type: 'unix' | 'local' = 'local') {
59
- if (isType(t, 'number')) t = new Date(t);
60
-
61
- const wd = t.getDay();
62
-
63
- const startOffset = wd * -1 + (weekStart === 'mon' ? 1 : 0);
64
- const endOffset = 6 + startOffset;
65
-
66
- const s = new Date(t.getTime() + time.dys(startOffset));
67
- const e = new Date(t.getTime() + time.dys(endOffset));
68
-
69
- let start = new Date(s.getFullYear(), s.getMonth(), s.getDate());
70
- let end = new Date(e.getFullYear(), e.getMonth(), e.getDate(), 23, 59, 59, 999);
71
-
72
- if (type === 'unix') {
73
- const tzOffset = time.min(start.getTimezoneOffset());
74
-
75
- start = new Date(start.getTime() + tzOffset);
76
- end = new Date(end.getTime() + tzOffset);
77
- }
78
-
79
- return { start, end };
80
- }
81
-
82
- export function monthStartEnd(t: number | Date, type: 'unix' | 'local' = 'local') {
83
- if (isType(t, 'number')) t = new Date(t);
84
-
85
- const y = t.getFullYear();
86
- const m = t.getMonth();
87
-
88
- let start = new Date(y, m, 1);
89
- let end = new Date(y, m, 0, 23, 59, 59, 999);
90
-
91
- if (type === 'unix') {
92
- const tzOffset = time.min(start.getTimezoneOffset());
93
-
94
- start = new Date(start.getTime() + tzOffset);
95
- end = new Date(end.getTime() + tzOffset);
96
- }
97
-
98
- return { start, end };
99
- }
100
-
101
- export function yearStartEnd(t: number | Date, type: 'unix' | 'local' = 'local') {
102
- if (isType(t, 'number')) t = new Date(t);
103
-
104
- const y = t.getFullYear();
105
-
106
- let start = new Date(y, 0, 1);
107
- let end = new Date(y, 12, 0, 23, 59, 59, 999);
108
-
109
- if (type === 'unix') {
110
- const tzOffset = time.min(start.getTimezoneOffset());
111
-
112
- start = new Date(start.getTime() + tzOffset);
113
- end = new Date(end.getTime() + tzOffset);
114
- }
115
-
116
- return { start, end };
117
- }
118
-
119
33
  export const time = {
120
34
  /** Seconds(n) -> to ms */
121
35
  sec: (n: num) => 1_000 * n,
@@ -186,46 +100,47 @@ export const humanizedTime = (date: AnyDate) => {
186
100
  // Intl.supportedValuesOf('timeZone');
187
101
  /** A Date substitute, to make working with time easier and more versatile */
188
102
  export function getTime(
189
- date: TimeObj | PartialTimeObj | TimeArr,
190
- ianaTimeZone?: str
103
+ t: TimeArr | num | str,
104
+ timeZone?: str
191
105
  ) {
192
- const dt = parseDate(date);
193
- if (!dt) throw new Error('Invalid Date');
194
-
195
- ianaTimeZone = ianaTimeZone || Intl.DateTimeFormat().resolvedOptions().timeZone;
196
- const tzOffsetMin = timeZoneOffsetMin(ianaTimeZone, dt);
197
-
198
- const localISO = toLocalISOString(dt, tzOffsetMin);
199
- const finalDateObj = new Date(localISO);
106
+ timeZone = timeZone || Intl.DateTimeFormat().resolvedOptions().timeZone;
107
+ let zonedTemporal: Temporal.ZonedDateTime;
108
+ let date: Date;
109
+ let isoStr: str;
110
+
111
+ if (isType(t, 'number') || isType(t, 'string')) {
112
+ date = new Date(t);
113
+ isoStr = date.toISOString();
114
+ zonedTemporal = Temporal.ZonedDateTime.from(isoStr + `[${timeZone}]`);
115
+ } else {
116
+ zonedTemporal = Temporal.ZonedDateTime.from({
117
+ year: t[0],
118
+ month: t[1] || 1,
119
+ day: t[2] || 1,
120
+ hour: t[3] || 0,
121
+ minute: t[4] || 0,
122
+ second: t[5] || 0,
123
+ millisecond: t[6] || 0,
124
+ timeZone
125
+ });
126
+
127
+ date = new Date(zonedTemporal.epochMilliseconds);
128
+ isoStr = date.toISOString();
129
+ }
200
130
 
201
131
  return {
202
- tzOffsetMin, // this flips from the JS output, to align with the ISO output (- when js would be +)
203
- localISO,
204
- isoStr: finalDateObj.toISOString(),
205
- Date: finalDateObj,
206
- epochMs: finalDateObj.getTime(),
207
- ianaTZ: ianaTimeZone,
208
- timeObj: timeObj(dt),
132
+ zonedTemporal,
133
+ date,
134
+ tzOffsetMin: zonedTemporal.offsetNanoseconds / 60_000_000_000,
135
+ localISO: zonedTemporal.toJSON(),
136
+ timeObj: timeObj(zonedTemporal),
137
+ isoStr,
138
+ timeZone: timeZone,
139
+ epochMs: zonedTemporal.epochMilliseconds,
209
140
  }
210
141
  }
211
142
 
212
- export function timeZoneOffsetMin(
213
- ianaTimeZone: string,
214
- date = new Date(),
215
- ) {
216
- const local = new Date(date);
217
- local.setMilliseconds(0);
218
- local.setSeconds(0);
219
- const tzTime = local.toLocaleString('US-en', { timeZone: ianaTimeZone });
220
- const tzDt = new Date(tzTime);
221
-
222
- const offsetMs = -local.getTimezoneOffset() * 60_000;
223
- const utcTime = tzDt.getTime() + offsetMs;
224
-
225
- return (utcTime - local.getTime()) / 60_000
226
- }
227
-
228
- export const timeObj = (dt: Date): TimeObj => ({
143
+ export const timeObj = (dt: Date | Temporal.ZonedDateTime): TimeObj => dt instanceof Date ? ({
229
144
  y: dt.getFullYear(),
230
145
  m: dt.getMonth() + 1,
231
146
  d: dt.getDate(),
@@ -234,6 +149,15 @@ export const timeObj = (dt: Date): TimeObj => ({
234
149
  sec: dt.getSeconds(),
235
150
  ms: dt.getMilliseconds(),
236
151
  wDay: weekTuple[dt.getDay()]!
152
+ }) : ({
153
+ y: dt.year,
154
+ m: dt.month,
155
+ d: dt.day,
156
+ h: dt.hour,
157
+ min: dt.minute,
158
+ sec: dt.second,
159
+ ms: dt.millisecond,
160
+ wDay: weekTuple[dt.dayOfWeek]!
237
161
  });
238
162
 
239
163
  export function parseDate(d: AnyDate) {
@@ -252,17 +176,4 @@ export function parseDate(d: AnyDate) {
252
176
  }
253
177
 
254
178
  return dt;
255
- }
256
-
257
- export function toLocalISOString(
258
- date: Date,
259
- tzOffsetMin = -date.getTimezoneOffset()
260
- ) {
261
- const sign = tzOffsetMin >= 0 ? '+' : '-';
262
- const diffHours = String(Math.floor(Math.abs(tzOffsetMin) / 60)).padStart(2, '0');
263
- const diffMinutes = String(Math.abs(tzOffsetMin) % 60).padStart(2, '0');
264
-
265
- return date.toLocaleString('lt').replace(' ', 'T') // or use: "sv-SE" (same effect)
266
- + '.' + (date.getMilliseconds() + '').padStart(3, '0')
267
- + sign + diffHours + ':' + diffMinutes;
268
179
  }