@valkyriestudios/utils 7.0.0 → 7.2.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.
- package/CHANGELOG.md +22 -0
- package/README.md +72 -1
- package/date/addUTC.js +56 -0
- package/date/diff.js +41 -0
- package/date/endOfUTC.js +48 -0
- package/date/startOfUTC.js +20 -1
- package/date/toUnix.js +12 -0
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic
|
|
6
6
|
Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [7.2.0] - 2023-06-11
|
|
9
|
+
### Added
|
|
10
|
+
- date/toUnix: Convert a date to its corresponding unix timestamp in seconds (1.000.000 ops in ~300ms)
|
|
11
|
+
- date/diff (supports week,day,hour,minute,millisecond) (1.000.000 ops in ~650ms)
|
|
12
|
+
|
|
13
|
+
### Improved
|
|
14
|
+
- Dep: Upgrade @babel/cli to 7.22.5
|
|
15
|
+
- Dep: Upgrade @babel/core to 7.22.5
|
|
16
|
+
- Dep: Upgrade @babel/preset-env to 7.22.5
|
|
17
|
+
- Dep: Upgrade @babel/register to 7.22.5
|
|
18
|
+
- Dep: Upgrade eslint to 8.42.0
|
|
19
|
+
|
|
20
|
+
## [7.1.0] - 2023-05-13
|
|
21
|
+
### Added
|
|
22
|
+
- date/addUTC (1.000.000 ops in ~750ms)
|
|
23
|
+
- date/endOfUTC (1.000.000 ops in ~600ms), supports year,quarter,month,week,week_sun,day,hour,minute,second
|
|
24
|
+
|
|
25
|
+
### Improved
|
|
26
|
+
- date/startOfUTC now supports 'quarter'
|
|
27
|
+
- date/startOfUTC now supports 'week' (monday as first day of the week)
|
|
28
|
+
- date/startOfUTC now supports 'week_sun' (sunday as first day of the week)
|
|
29
|
+
|
|
8
30
|
## [7.0.0] - 2023-05-07
|
|
9
31
|
### Added
|
|
10
32
|
- Dep: @babel/cli
|
package/README.md
CHANGED
|
@@ -278,9 +278,26 @@ isDate(new Date('December 17, 1995 03:24:00'); // TRUE
|
|
|
278
278
|
isDate('December 17, 1995 03:24:00'); // FALSE
|
|
279
279
|
```
|
|
280
280
|
|
|
281
|
+
- **diff(val_a:Date, val_b:Date, key:String)**
|
|
282
|
+
Take two incoming dates and return the difference between them in a certain unit. Possible key options(week,day,hour,minute,second,millisecond).
|
|
283
|
+
|
|
284
|
+
Note: Does not touch the passed date objects, if no key is passed will default to millisecond
|
|
285
|
+
```js
|
|
286
|
+
diff(new Date("2022-10-05T13:12:11+02:00"), new Date("2022-11-05T13:12:11+06:00"), 'week'); // -4.404761904761905
|
|
287
|
+
diff(new Date("2022-11-05T13:12:11+06:00"), new Date("2022-10-05T13:12:11+02:00"), 'day'); // 30.83333333333333332
|
|
288
|
+
diff(new Date("2022-11-05T13:12:11+06:00"), new Date("2022-10-05T13:12:11+02:00"), 'hour'); // 740
|
|
289
|
+
diff(new Date("2022-10-05T13:12:11+02:00"), new Date("2022-10-05T17:43:09.344+06:00"), 'minute'); // -30.9724
|
|
290
|
+
diff(new Date("2022-10-05T13:12:11+02:00"), new Date("2022-10-05T17:43:09.344+06:00"), 'second'); // -1858.344
|
|
291
|
+
diff(new Date("2022-10-05T13:12:11+02:00"), new Date("2022-10-05T17:43:09.344+06:00"), 'millisecond'); // -1858344
|
|
292
|
+
diff(new Date("2022-11-05T13:12:11+06:00"), new Date("2022-10-05T13:25:43.898+02:00")); // 2663187102
|
|
293
|
+
```
|
|
294
|
+
|
|
281
295
|
- **toUTC(val:Date)**
|
|
282
296
|
Takes the passed date object and returns a new date object set for utc
|
|
283
297
|
|
|
298
|
+
- **toUnix(val:Date)**
|
|
299
|
+
Takes the passed date object and returns its unix timestamp in seconds
|
|
300
|
+
|
|
284
301
|
- **nowUnix()**
|
|
285
302
|
Returns the current unix timestamp in seconds
|
|
286
303
|
|
|
@@ -288,18 +305,72 @@ Returns the current unix timestamp in seconds
|
|
|
288
305
|
Returns the current unix timestamp in milliseconds
|
|
289
306
|
|
|
290
307
|
- **startOfUTC(val:Date, key:String)**
|
|
291
|
-
Take the incoming date and return a date set to the start of passed key. Possible key options(year,month,day,hour,minute,second).
|
|
308
|
+
Take the incoming date and return a date set to the start of passed key. Possible key options(year,quarter,month,week,week_sun,day,hour,minute,second).
|
|
292
309
|
|
|
293
310
|
Note: Does not touch the date object passed
|
|
294
311
|
```js
|
|
295
312
|
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'year'); // new Date("2023-01-01T00:00:00.000Z")
|
|
313
|
+
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'quarter'); // new Date("2023-04-01T00:00:00.000Z")
|
|
296
314
|
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'month'); // new Date("2023-05-01T00:00:00.000Z")
|
|
315
|
+
startOfUTC(new Date("2023-05-14T12:04:27+02:00"), 'week'); // new Date("2023-05-08T00:00:00.000Z")
|
|
316
|
+
startOfUTC(new Date("2023-02-03T12:04:27+02:00"), 'week'); // new Date("2023-01-30T00:00:00.000Z")
|
|
317
|
+
startOfUTC(new Date("2023-01-01T12:04:27+02:00"), 'week'); // new Date("2022-12-26T00:00:00.000Z")
|
|
318
|
+
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'week_sun'); // new Date("2023-04-30T00:00:00.000Z")
|
|
319
|
+
startOfUTC(new Date("2023-02-03T12:04:27+02:00"), 'week_sun'); // new Date("2023-01-29T00:00:00.000Z")
|
|
320
|
+
startOfUTC(new Date("2022-01-01T12:04:27+02:00"), 'week_sun'); // new Date("2021-12-26T00:00:00.000Z")
|
|
297
321
|
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'day'); // new Date("2023-05-04T00:00:00.000Z")
|
|
298
322
|
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'hour'); // new Date("2023-05-04T10:00:00.000Z")
|
|
299
323
|
startOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'minute'); // new Date("2023-05-04T10:04:00.000Z")
|
|
300
324
|
startOfUTC(new Date("2023-05-04T12:04:27.043+02:00"), 'second'); // new Date("2023-05-04T10:04:27.000Z")
|
|
301
325
|
```
|
|
302
326
|
|
|
327
|
+
- **endOfUTC(val:Date, key:String)**
|
|
328
|
+
Take the incoming date and return a date set to the end of passed key. Possible key options(year,quarter,month,week,week_sun,day,hour,minute,second).
|
|
329
|
+
|
|
330
|
+
Note: Does not touch the date object passed
|
|
331
|
+
```js
|
|
332
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'year'); // new Date("2023-12-31T23:59:59.999Z")
|
|
333
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'quarter'); // new Date("2023-06-30T23:59:59.999Z")
|
|
334
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'month'); // new Date("2023-05-31T23:59:59.999Z")
|
|
335
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'week'); // new Date("2023-05-07T23:59:59.999Z")
|
|
336
|
+
endOfUTC(new Date("2023-05-13T12:04:27+02:00"), 'week'); // new Date("2023-05-14T23:59:59.999Z")
|
|
337
|
+
endOfUTC(new Date("2023-05-14T12:04:27+02:00"), 'week'); // new Date("2023-05-14T23:59:59.999Z")
|
|
338
|
+
endOfUTC(new Date("2023-02-27T12:04:27+02:00"), 'week'); // new Date("2023-03-05T23:59:59.999Z")
|
|
339
|
+
endOfUTC(new Date("2022-12-29T12:04:27+02:00"), 'week'); // new Date("2023-01-01T23:59:59.999Z")
|
|
340
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'week_sun'); // new Date("2023-05-06T23:59:59.999Z")
|
|
341
|
+
endOfUTC(new Date("2023-05-12T12:04:27+02:00"), 'week_sun'); // new Date("2023-05-13T23:59:59.999Z")
|
|
342
|
+
endOfUTC(new Date("2023-05-06T12:04:27+02:00"), 'week_sun'); // new Date("2023-05-06T23:59:59.999Z")
|
|
343
|
+
endOfUTC(new Date("2023-03-29T12:04:27+02:00"), 'week_sun'); // new Date("2023-04-01T23:59:59.999Z")
|
|
344
|
+
endOfUTC(new Date("2021-12-28T12:04:27+02:00"), 'week_sun'); // new Date("2022-01-01T23:59:59.999Z")
|
|
345
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'day'); // new Date("2023-05-04T23:59:59.999Z")
|
|
346
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'hour'); // new Date("2023-05-04T10:59:59.999Z")
|
|
347
|
+
endOfUTC(new Date("2023-05-04T12:04:27+02:00"), 'minute'); // new Date("2023-05-04T10:04:59.999Z")
|
|
348
|
+
endOfUTC(new Date("2023-05-04T12:04:27.043+02:00"), 'second'); // new Date("2023-05-04T10:04:27.999Z")
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
- **addUTC(val:Date, amount:integer, key:String)**
|
|
352
|
+
Take the incoming date and add a certain amount of the passed key. Possible key options(year,years,month,months,day,days,hour,hours,minute,minutes,second,seconds).
|
|
353
|
+
|
|
354
|
+
Note: Does not touch the date object passed
|
|
355
|
+
```js
|
|
356
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 10, 'year'); // new Date("2032-10-05T11:12:11.000Z")
|
|
357
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -10, 'year'); // new Date("2012-10-05T11:12:11.000Z")
|
|
358
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 10, 'month'); // new Date("2023-08-05T11:12:11.000Z")
|
|
359
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -8970, 'month'); // new Date("1275-04-05T11:12:11.000Z")
|
|
360
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 200, 'day'); // new Date("2023-04-23T11:12:11.000Z")
|
|
361
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -400, 'day'); // new Date("2021-08-31T11:12:11.000Z")
|
|
362
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 2200, 'hour'); // new Date("2023-01-05T03:12:11.000Z")
|
|
363
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -10, 'hour'); // new Date("2022-10-05T01:12:11.000Z")
|
|
364
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 59, 'minute'); // new Date("2022-10-05T12:11:11.000Z")
|
|
365
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 336000, 'minute'); // new Date("2023-05-26T19:12:11.000Z")
|
|
366
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -34, 'minute'); // new Date("2022-10-05T10:38:11.000Z")
|
|
367
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -769, 'minute'); // new Date("2022-10-04T22:23:11.000Z")
|
|
368
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 59, 'second'); // new Date("2022-10-05T11:13:10.000Z")
|
|
369
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 2873 * 60, 'second'); // new Date("2022-10-07T11:05:11.000Z")
|
|
370
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), 336000 * 60, 'second'); // new Date("2023-05-26T19:12:11.000Z")
|
|
371
|
+
addUTC(new Date("2022-10-05T13:12:11+02:00"), -10, 'second'); // new Date("2022-10-05T11:12:01.000Z")
|
|
372
|
+
```
|
|
373
|
+
|
|
303
374
|
### deep
|
|
304
375
|
- **deepFreeze(val:Object)**
|
|
305
376
|
Recursively freezes all properties of an object
|
package/date/addUTC.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = addUTC;
|
|
7
|
+
var _is = _interopRequireDefault(require("./is"));
|
|
8
|
+
var _isInteger = _interopRequireDefault(require("../number/isInteger"));
|
|
9
|
+
var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
+
function addUTC(val, amount, key) {
|
|
12
|
+
if (!(0, _is["default"])(val)) throw new Error('Date To UTC requires a date object');
|
|
13
|
+
if (!(0, _isInteger["default"])(amount)) throw new Error('Amount needs to be an integer');
|
|
14
|
+
if (!(0, _isNotEmpty["default"])(key)) throw new Error('Key needs to be a string with content');
|
|
15
|
+
var copy = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), val.getUTCSeconds(), val.getUTCMilliseconds()));
|
|
16
|
+
switch (key) {
|
|
17
|
+
case 'years':
|
|
18
|
+
case 'year':
|
|
19
|
+
{
|
|
20
|
+
copy.setUTCFullYear(copy.getUTCFullYear() + amount);
|
|
21
|
+
return copy;
|
|
22
|
+
}
|
|
23
|
+
case 'months':
|
|
24
|
+
case 'month':
|
|
25
|
+
{
|
|
26
|
+
copy.setUTCMonth(copy.getUTCMonth() + amount);
|
|
27
|
+
return copy;
|
|
28
|
+
}
|
|
29
|
+
case 'days':
|
|
30
|
+
case 'day':
|
|
31
|
+
{
|
|
32
|
+
copy.setUTCDate(copy.getUTCDate() + amount);
|
|
33
|
+
return copy;
|
|
34
|
+
}
|
|
35
|
+
case 'hours':
|
|
36
|
+
case 'hour':
|
|
37
|
+
{
|
|
38
|
+
copy.setUTCHours(copy.getUTCHours() + amount);
|
|
39
|
+
return copy;
|
|
40
|
+
}
|
|
41
|
+
case 'minutes':
|
|
42
|
+
case 'minute':
|
|
43
|
+
{
|
|
44
|
+
copy.setUTCMinutes(copy.getUTCMinutes() + amount);
|
|
45
|
+
return copy;
|
|
46
|
+
}
|
|
47
|
+
case 'seconds':
|
|
48
|
+
case 'second':
|
|
49
|
+
{
|
|
50
|
+
copy.setUTCSeconds(copy.getUTCSeconds() + amount);
|
|
51
|
+
return copy;
|
|
52
|
+
}
|
|
53
|
+
default:
|
|
54
|
+
return copy;
|
|
55
|
+
}
|
|
56
|
+
}
|
package/date/diff.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = diff;
|
|
7
|
+
var _is = _interopRequireDefault(require("./is"));
|
|
8
|
+
var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
+
var SECOND_IN_MILLISECONDS = 1000;
|
|
11
|
+
var MINUTE_IN_MILLISECONDS = SECOND_IN_MILLISECONDS * 60;
|
|
12
|
+
var HOUR_IN_MILLISECONDS = MINUTE_IN_MILLISECONDS * 60;
|
|
13
|
+
var DAY_IN_MILLISECONDS = HOUR_IN_MILLISECONDS * 24;
|
|
14
|
+
var WEEK_IN_MILLISECONDS = DAY_IN_MILLISECONDS * 7;
|
|
15
|
+
function diff(val_a, val_b) {
|
|
16
|
+
var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;
|
|
17
|
+
if (!(0, _is["default"])(val_a) || !(0, _is["default"])(val_b)) throw new Error('Diff requires date objects for both values');
|
|
18
|
+
if (key !== !1 && !(0, _isNotEmpty["default"])(key)) throw new Error('Key needs to be a string or false');
|
|
19
|
+
var diff_in_ms = val_a.valueOf() - val_b.valueOf();
|
|
20
|
+
switch (key) {
|
|
21
|
+
case 'week':
|
|
22
|
+
case 'weeks':
|
|
23
|
+
return diff_in_ms / WEEK_IN_MILLISECONDS;
|
|
24
|
+
case 'day':
|
|
25
|
+
case 'days':
|
|
26
|
+
return diff_in_ms / DAY_IN_MILLISECONDS;
|
|
27
|
+
case 'hour':
|
|
28
|
+
case 'hours':
|
|
29
|
+
return diff_in_ms / HOUR_IN_MILLISECONDS;
|
|
30
|
+
case 'minute':
|
|
31
|
+
case 'minutes':
|
|
32
|
+
return diff_in_ms / MINUTE_IN_MILLISECONDS;
|
|
33
|
+
case 'second':
|
|
34
|
+
case 'seconds':
|
|
35
|
+
return diff_in_ms / SECOND_IN_MILLISECONDS;
|
|
36
|
+
case 'millisecond':
|
|
37
|
+
case 'milliseconds':
|
|
38
|
+
default:
|
|
39
|
+
return diff_in_ms;
|
|
40
|
+
}
|
|
41
|
+
}
|
package/date/endOfUTC.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = endOfUTC;
|
|
7
|
+
var _is = _interopRequireDefault(require("./is"));
|
|
8
|
+
var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
+
function endOfUTC(val, key) {
|
|
11
|
+
if (!(0, _is["default"])(val)) throw new Error('Date To UTC requires a date object');
|
|
12
|
+
if (!(0, _isNotEmpty["default"])(key)) throw new Error('Key needs to be a string with content');
|
|
13
|
+
switch (key) {
|
|
14
|
+
case 'year':
|
|
15
|
+
return new Date(Date.UTC(val.getUTCFullYear(), 11, 31, 23, 59, 59, 999));
|
|
16
|
+
case 'quarter':
|
|
17
|
+
{
|
|
18
|
+
var new_quarter = val.getUTCMonth() - val.getUTCMonth() % 3;
|
|
19
|
+
return new Date(Date.UTC(val.getUTCFullYear(), new_quarter >= 0 ? new_quarter + 3 : 3, 0, 23, 59, 59, 999));
|
|
20
|
+
}
|
|
21
|
+
case 'month':
|
|
22
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth() + 1, 0, 23, 59, 59, 999));
|
|
23
|
+
case 'week':
|
|
24
|
+
{
|
|
25
|
+
var date = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 23, 59, 59, 999));
|
|
26
|
+
var day = date.getUTCDay();
|
|
27
|
+
if (day !== 0) date.setUTCDate(date.getUTCDate() + (7 - day));
|
|
28
|
+
return date;
|
|
29
|
+
}
|
|
30
|
+
case 'week_sun':
|
|
31
|
+
{
|
|
32
|
+
var _date = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 23, 59, 59, 999));
|
|
33
|
+
var _day = _date.getUTCDay();
|
|
34
|
+
if (_day !== 6) _date.setUTCDate(_date.getUTCDate() + (6 - _day));
|
|
35
|
+
return _date;
|
|
36
|
+
}
|
|
37
|
+
case 'day':
|
|
38
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 23, 59, 59, 999));
|
|
39
|
+
case 'hour':
|
|
40
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), 59, 59, 999));
|
|
41
|
+
case 'minute':
|
|
42
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), 59, 999));
|
|
43
|
+
case 'second':
|
|
44
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), val.getUTCSeconds(), 999));
|
|
45
|
+
default:
|
|
46
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), val.getUTCSeconds(), val.getUTCMilliseconds()));
|
|
47
|
+
}
|
|
48
|
+
}
|
package/date/startOfUTC.js
CHANGED
|
@@ -13,8 +13,27 @@ function startOfUTC(val, key) {
|
|
|
13
13
|
switch (key) {
|
|
14
14
|
case 'year':
|
|
15
15
|
return new Date(Date.UTC(val.getUTCFullYear(), 0, 1, 0, 0, 0, 0));
|
|
16
|
+
case 'quarter':
|
|
17
|
+
{
|
|
18
|
+
var new_quarter = val.getUTCMonth() - val.getUTCMonth() % 3;
|
|
19
|
+
return new Date(Date.UTC(val.getUTCFullYear(), new_quarter >= 0 ? new_quarter : 0, 1, 0, 0, 0, 0));
|
|
20
|
+
}
|
|
16
21
|
case 'month':
|
|
17
22
|
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), 1, 0, 0, 0, 0));
|
|
23
|
+
case 'week':
|
|
24
|
+
{
|
|
25
|
+
var date = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 0, 0, 0, 0));
|
|
26
|
+
var subtract = date.getUTCDay() || 7;
|
|
27
|
+
if (subtract !== 1) date.setUTCDate(date.getUTCDate() - subtract + 1);
|
|
28
|
+
return date;
|
|
29
|
+
}
|
|
30
|
+
case 'week_sun':
|
|
31
|
+
{
|
|
32
|
+
var _date = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 0, 0, 0, 0));
|
|
33
|
+
var _subtract = _date.getUTCDay();
|
|
34
|
+
if (_subtract !== 0) _date.setUTCDate(_date.getUTCDate() - _subtract);
|
|
35
|
+
return _date;
|
|
36
|
+
}
|
|
18
37
|
case 'day':
|
|
19
38
|
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 0, 0, 0, 0));
|
|
20
39
|
case 'hour':
|
|
@@ -24,6 +43,6 @@ function startOfUTC(val, key) {
|
|
|
24
43
|
case 'second':
|
|
25
44
|
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), val.getUTCSeconds(), 0));
|
|
26
45
|
default:
|
|
27
|
-
return val;
|
|
46
|
+
return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), val.getUTCSeconds(), val.getUTCMilliseconds()));
|
|
28
47
|
}
|
|
29
48
|
}
|
package/date/toUnix.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = toUnix;
|
|
7
|
+
var _is = _interopRequireDefault(require("./is"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
+
function toUnix(val) {
|
|
10
|
+
if (!(0, _is["default"])(val)) throw new Error('toUnix requires a date object');
|
|
11
|
+
return Math.floor(val.valueOf() / 1000);
|
|
12
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valkyriestudios/utils",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.2.0",
|
|
4
4
|
"description": "A collection of single-function utilities for common tasks",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": {
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
},
|
|
33
33
|
"homepage": "https://github.com/ValkyrieStudios/utils#readme",
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@babel/cli": "^7.
|
|
36
|
-
"@babel/core": "^7.
|
|
37
|
-
"@babel/preset-env": "^7.
|
|
38
|
-
"@babel/register": "^7.
|
|
35
|
+
"@babel/cli": "^7.22.5",
|
|
36
|
+
"@babel/core": "^7.22.5",
|
|
37
|
+
"@babel/preset-env": "^7.22.5",
|
|
38
|
+
"@babel/register": "^7.22.5",
|
|
39
39
|
"babel-plugin-check-es2015-constants": "^6.22.0",
|
|
40
40
|
"babel-plugin-transform-member-expression-literals": "^6.9.4",
|
|
41
41
|
"babel-plugin-transform-minify-booleans": "^6.9.4",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"chai": "^4.3.7",
|
|
45
45
|
"chai-as-promised": "^7.1.1",
|
|
46
46
|
"chai-spies": "^1.0.0",
|
|
47
|
-
"eslint": "^8.
|
|
47
|
+
"eslint": "^8.42.0",
|
|
48
48
|
"mocha": "^10.2.0",
|
|
49
49
|
"nyc": "^15.1.0"
|
|
50
50
|
}
|