@8ms/helpers 1.1.18 → 1.1.19
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/date/getDate.d.ts +5 -3
- package/dist/date/getDate.js +31 -20
- package/package.json +2 -1
package/dist/date/getDate.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { DateType } from './date';
|
|
2
|
+
declare type GetDateType = {
|
|
3
|
+
input: DateType;
|
|
4
|
+
setMidnight?: boolean;
|
|
5
|
+
};
|
|
2
6
|
/**
|
|
3
7
|
* Convert a (number | string | Date) into a Date object.
|
|
4
8
|
*/
|
|
5
|
-
declare const getDate: ({ input }:
|
|
6
|
-
input: DateType;
|
|
7
|
-
}) => Date;
|
|
9
|
+
declare const getDate: ({ input, setMidnight }: GetDateType) => Date;
|
|
8
10
|
export default getDate;
|
package/dist/date/getDate.js
CHANGED
|
@@ -3,36 +3,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var addHours_1 = __importDefault(require("date-fns/addHours"));
|
|
7
6
|
var parse_1 = __importDefault(require("date-fns/parse"));
|
|
8
|
-
var subHours_1 = __importDefault(require("date-fns/subHours"));
|
|
9
7
|
/**
|
|
10
8
|
* Convert a (number | string | Date) into a Date object.
|
|
11
9
|
*/
|
|
12
10
|
var getDate = function (_a) {
|
|
13
|
-
var input = _a.input;
|
|
11
|
+
var input = _a.input, _b = _a.setMidnight, setMidnight = _b === void 0 ? true : _b;
|
|
14
12
|
var date;
|
|
15
13
|
if (input instanceof Date) {
|
|
16
14
|
date = new Date(input.valueOf());
|
|
17
15
|
}
|
|
18
|
-
else if ('string' === typeof input) {
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
else if ('string' === typeof input || 'number' === typeof input) {
|
|
17
|
+
// Convert the input into string
|
|
18
|
+
var dateString = input.toString();
|
|
19
|
+
// 20220412
|
|
20
|
+
if (8 === dateString.length) {
|
|
21
|
+
var year = Number(dateString.substring(0, 4));
|
|
22
|
+
var month = Number(dateString.substring(4, 6));
|
|
23
|
+
var day = Number(dateString.substring(6, 8));
|
|
24
|
+
if (year > 999 && month < 13 && day < 32) {
|
|
25
|
+
date = new Date();
|
|
26
|
+
date.setUTCFullYear(year);
|
|
27
|
+
date.setUTCMonth(month - 1);
|
|
28
|
+
date.setUTCDate(day);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// 2022-04-12
|
|
32
|
+
else if (10 === dateString.length) {
|
|
33
|
+
var dateTimeString = dateString + ' 00:00:00s';
|
|
34
|
+
date = (0, parse_1.default)(dateTimeString, 'yyyy-MM-dd HH:mm:ss', new Date());
|
|
35
|
+
}
|
|
36
|
+
// 2022-04-12 01:01:01
|
|
37
|
+
else if (19 === dateString.length) {
|
|
38
|
+
date = (0, parse_1.default)(dateString, 'yyyy-MM-dd HH:mm:ss', new Date());
|
|
39
|
+
}
|
|
40
|
+
// Unsure date format, try anything
|
|
41
|
+
else {
|
|
42
|
+
date = new Date(dateString);
|
|
43
|
+
}
|
|
21
44
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
date = (0, parse_1.default)(dateString, 'yyyyMMdd HH:mm:ss', new Date());
|
|
25
|
-
}
|
|
26
|
-
// Behind an hour (going back to DST)
|
|
27
|
-
if (date.getTimezoneOffset() < 0) {
|
|
28
|
-
date = (0, addHours_1.default)(date, 1);
|
|
29
|
-
}
|
|
30
|
-
// Forward an hour (going into BST)
|
|
31
|
-
else if (date.getTimezoneOffset() > 0) {
|
|
32
|
-
date = (0, subHours_1.default)(date, 1);
|
|
33
|
-
}
|
|
34
|
-
// Otherwise set to UTC hours
|
|
35
|
-
else {
|
|
45
|
+
// Reset to UTC hours
|
|
46
|
+
if (setMidnight) {
|
|
36
47
|
date.setHours(0, 0, 0, 0);
|
|
37
48
|
}
|
|
38
49
|
return date;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@8ms/helpers",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.19",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/8millionstories-organisation/8ms-helpers-ts.git"
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"@types/node": "17.0.23",
|
|
26
26
|
"babel-jest": "27.5.1",
|
|
27
27
|
"crypto-js": "4.1.1",
|
|
28
|
+
"date-fns-tz": "1.3.3",
|
|
28
29
|
"jest": "27.5.1",
|
|
29
30
|
"ts-node": "10.7.0",
|
|
30
31
|
"tslib": "2.3.1",
|