@8ms/helpers 1.15.0 → 1.16.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/date/getDate.js CHANGED
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const getMidnight_1 = __importDefault(require("./getMidnight"));
7
7
  const getTimeZoned_1 = __importDefault(require("./getTimeZoned"));
8
- const date_fns_1 = require("date-fns");
9
8
  /**
10
9
  * Convert a (number | string | Date) into a Date object.
11
10
  * As the user would be providing the input we don't want to change the timezone typically.
@@ -33,14 +32,14 @@ const getDate = (props) => {
33
32
  const day = Number(dateString.substring(6, 8));
34
33
  date = new Date();
35
34
  // Reset the date to the 1st initially at 1am
36
- date.setDate(1);
37
- date.setHours(1, 0, 0, 0);
35
+ date.setUTCDate(1);
36
+ date.setUTCHours(1, 0, 0, 0);
38
37
  date.setFullYear(year);
39
- date.setMonth(month);
40
- date.setDate(day);
41
- date.setHours(0, 0, 0, 0);
38
+ date.setUTCMonth(month);
39
+ date.setUTCDate(day);
40
+ date.setUTCHours(0, 0, 0, 0);
42
41
  // Resolve timezone offset
43
- date = (0, date_fns_1.addMinutes)(date, date.getTimezoneOffset() * -1);
42
+ //date = addMinutes(date, date.getTimezoneOffset() * -1);
44
43
  }
45
44
  // 2022-04-12
46
45
  else if (regexes.ymdDash.test(dateString)) {
@@ -51,17 +50,17 @@ const getDate = (props) => {
51
50
  //console.log('default - date', date);
52
51
  // Reset the date
53
52
  date.setFullYear(year);
54
- date.setHours(1, 0, 0, 0);
55
- date.setMonth(0);
56
- date.setDate(1);
53
+ date.setUTCHours(1, 0, 0, 0);
54
+ date.setUTCMonth(0);
55
+ date.setUTCDate(1);
57
56
  //console.log('reset - date', date);
58
57
  // Finalise date
59
- date.setMonth(month);
60
- date.setDate(day);
61
- date.setHours(0, 0, 0, 0);
58
+ date.setUTCMonth(month);
59
+ date.setUTCDate(day);
60
+ date.setUTCHours(0, 0, 0, 0);
62
61
  //console.log('finalise - date', date);
63
62
  // Resolve timezone offset
64
- date = (0, date_fns_1.addMinutes)(date, date.getTimezoneOffset() * -1);
63
+ //date = addMinutes(date, date.getTimezoneOffset() * -1);
65
64
  //console.log('timezone - date', date);
66
65
  }
67
66
  // 2022-04-12 01:01:01
@@ -74,14 +73,14 @@ const getDate = (props) => {
74
73
  const seconds = Number(dateString.substring(17, 19));
75
74
  date = new Date();
76
75
  // Reset the date to the 1st initially at 1am
77
- date.setDate(1);
78
- date.setHours(1, 0, 0, 0);
76
+ date.setUTCDate(1);
77
+ date.setUTCHours(1, 0, 0, 0);
79
78
  date.setFullYear(year);
80
- date.setMonth(month);
81
- date.setDate(day);
82
- date.setHours(hours, minutes, seconds);
79
+ date.setUTCMonth(month);
80
+ date.setUTCDate(day);
81
+ date.setUTCHours(hours, minutes, seconds);
83
82
  // Resolve timezone offset
84
- date = (0, date_fns_1.addMinutes)(date, date.getTimezoneOffset() * -1);
83
+ //date = addMinutes(date, date.getTimezoneOffset() * -1);
85
84
  }
86
85
  // 20220412010101
87
86
  else if (regexes.ymdHisNumber.test(dateString)) {
@@ -93,14 +92,14 @@ const getDate = (props) => {
93
92
  const seconds = Number(dateString.substring(12, 14));
94
93
  date = new Date();
95
94
  // Reset the date to the 1st initially at 1am
96
- date.setDate(1);
97
- date.setHours(1, 0, 0, 0);
95
+ date.setUTCDate(1);
96
+ date.setUTCHours(1, 0, 0, 0);
98
97
  date.setFullYear(year);
99
- date.setMonth(month);
100
- date.setDate(day);
101
- date.setHours(hours, minutes, seconds);
98
+ date.setUTCMonth(month);
99
+ date.setUTCDate(day);
100
+ date.setUTCHours(hours, minutes, seconds);
102
101
  // Resolve timezone offset
103
- date = (0, date_fns_1.addMinutes)(date, date.getTimezoneOffset() * -1);
102
+ // date = addMinutes(date, date.getTimezoneOffset() * -1);
104
103
  }
105
104
  // Unsure date format, try anything
106
105
  else {
@@ -6,12 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const getMidnight = (props) => {
7
7
  let dateInstance = props.input;
8
8
  if (true === props?.setMidnight) {
9
- if (0 === dateInstance.getTimezoneOffset()) {
10
- dateInstance.setHours(0, 0, 0, 0);
9
+ dateInstance.setUTCHours(0, 0, 0, 0);
10
+ /**
11
+ if (0 === dateInstance.getTimezoneOffset())
12
+ {
13
+ dateInstance.setUTCHours(0, 0, 0, 0);
11
14
  }
12
- else {
13
- dateInstance.setHours(1, 0, 0, 0);
15
+ else
16
+ {
17
+ dateInstance.setUTCHours(1, 0, 0, 0);
14
18
  }
19
+ */
15
20
  }
16
21
  return dateInstance;
17
22
  };
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.timeZoneLondon = void 0;
4
- const date_fns_tz_1 = require("date-fns-tz");
5
- const date_fns_1 = require("date-fns");
6
4
  exports.timeZoneLondon = 'Europe/London';
7
5
  /**
8
6
  * Convert an input into a given timezone.
@@ -11,28 +9,47 @@ exports.timeZoneLondon = 'Europe/London';
11
9
  */
12
10
  const getTimeZoned = (props) => {
13
11
  let dateInstance = props.input;
14
- if (props?.input && 'string' === typeof props.setTimeZone) {
12
+ /**
13
+
14
+ if (props?.input && 'string' === typeof props.setTimeZone)
15
+ {
15
16
  // Cannot convert YYYY-MM-DD into new Date as Safari doesn't support this
16
- const dateString = (0, date_fns_tz_1.formatInTimeZone)(dateInstance, props?.setTimeZone, 'yyyy-MM-dd HH:mm:ss');
17
+ const dateString = formatInTimeZone(
18
+ dateInstance,
19
+ props?.setTimeZone,
20
+ 'yyyy-MM-dd HH:mm:ss'
21
+ );
22
+
17
23
  const year = Number(dateString.substring(0, 4));
18
24
  const month = Number(dateString.substring(5, 7)) - 1;
19
25
  const day = Number(dateString.substring(8, 10));
26
+
20
27
  const hours = Number(dateString.substring(11, 13));
21
28
  const minutes = Number(dateString.substring(14, 16));
22
29
  const seconds = Number(dateString.substring(17, 19));
30
+
23
31
  dateInstance = new Date();
32
+
24
33
  // Reset the date to the 1st initially at 1am
25
- dateInstance.setDate(1);
26
- dateInstance.setHours(1, 0, 0, 0);
34
+ dateInstance.setUTCDate(1);
35
+ dateInstance.setUTCHours(1, 0, 0, 0);
36
+
27
37
  dateInstance.setFullYear(year);
28
- dateInstance.setMonth(month);
29
- dateInstance.setDate(day);
30
- dateInstance.setHours(hours, minutes, seconds);
38
+ dateInstance.setUTCMonth(month);
39
+ dateInstance.setUTCDate(day);
40
+ dateInstance.setUTCHours(hours, minutes, seconds);
41
+
31
42
  // console.log('dateInstance', dateInstance);
32
43
  // console.log('dateInstance.getTimezoneOffset()', dateInstance.getTimezoneOffset());
44
+
33
45
  // Fixes the timezone offset due to daylight savings
34
- dateInstance = (0, date_fns_1.addMinutes)(dateInstance, dateInstance.getTimezoneOffset() * -1);
46
+ dateInstance = addMinutes(
47
+ dateInstance,
48
+ dateInstance.getTimezoneOffset() * -1
49
+ );
35
50
  }
51
+
52
+ */
36
53
  return dateInstance;
37
54
  };
38
55
  exports.default = getTimeZoned;
@@ -1,9 +1,9 @@
1
- import { GetMidnight } from './getMidnight';
2
- import { GetTimeZoned } from './getTimeZoned';
1
+ import { GetMidnight } from "./getMidnight";
2
+ import { GetTimeZoned } from "./getTimeZoned";
3
3
  type GetToday = GetTimeZoned & GetMidnight;
4
4
  /**
5
5
  * Shortcut to get today's date.
6
6
  * Creating a date from scratch (no user input), thus needs to be London time.
7
7
  */
8
- declare const getToday: ({ setMidnight, setTimeZone }?: GetToday) => Date;
8
+ declare const getToday: (props?: GetToday) => Date;
9
9
  export default getToday;
package/date/getToday.js CHANGED
@@ -1,46 +1,23 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  const getMidnight_1 = __importDefault(require("./getMidnight"));
30
- const getTimeZoned_1 = __importStar(require("./getTimeZoned"));
7
+ const getTimeZoned_1 = __importDefault(require("./getTimeZoned"));
31
8
  /**
32
9
  * Shortcut to get today's date.
33
10
  * Creating a date from scratch (no user input), thus needs to be London time.
34
11
  */
35
- const getToday = ({ setMidnight = true, setTimeZone = getTimeZoned_1.timeZoneLondon } = { setMidnight: true, setTimeZone: getTimeZoned_1.timeZoneLondon }) => {
12
+ const getToday = (props = {}) => {
36
13
  let today = new Date();
37
- today = (0, getTimeZoned_1.default)({
14
+ today = (0, getMidnight_1.default)({
38
15
  input: today,
39
- setTimeZone
16
+ setMidnight: undefined === props?.setMidnight ? true : props?.setMidnight,
40
17
  });
41
- today = (0, getMidnight_1.default)({
18
+ today = (0, getTimeZoned_1.default)({
42
19
  input: today,
43
- setMidnight
20
+ setTimeZone: undefined === props?.setTimeZone ? undefined : props?.setTimeZone,
44
21
  });
45
22
  return today;
46
23
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@8ms/helpers",
3
3
  "license": "UNLICENSED",
4
- "version": "1.15.0",
4
+ "version": "1.16.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/8millionstories-organisation/8ms-helpers-ts.git"