@8ms/helpers 1.1.37 → 1.1.40

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,16 +1,39 @@
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
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  var getMidnight_1 = __importDefault(require("./getMidnight"));
7
- var getTimeZoned_1 = __importDefault(require("./getTimeZoned"));
30
+ var getTimeZoned_1 = __importStar(require("./getTimeZoned"));
8
31
  /**
9
32
  * Convert a (number | string | Date) into a Date object.
10
33
  * As the user would be providing the input we don't want to change the timezone typically.
11
34
  */
12
35
  var getDate = function (_a) {
13
- var input = _a.input, _b = _a.setMidnight, setMidnight = _b === void 0 ? true : _b, _c = _a.setTimeZone, setTimeZone = _c === void 0 ? false : _c;
36
+ var input = _a.input, _b = _a.setMidnight, setMidnight = _b === void 0 ? true : _b, _c = _a.setTimeZone, setTimeZone = _c === void 0 ? getTimeZoned_1.timeZoneLondon : _c;
14
37
  var date;
15
38
  // Already date instance - no change
16
39
  if (input instanceof Date) {
@@ -28,9 +51,7 @@ var getDate = function (_a) {
28
51
  date.setFullYear(year);
29
52
  date.setMonth(month - 1);
30
53
  date.setDate(day);
31
- date.setHours(2);
32
- date.setMinutes(0);
33
- date.setSeconds(0);
54
+ date.setHours(1, 0, 0, 0);
34
55
  }
35
56
  // 2022-04-12
36
57
  else if (10 === dateString.length) {
@@ -41,9 +62,7 @@ var getDate = function (_a) {
41
62
  date.setFullYear(year);
42
63
  date.setMonth(month - 1);
43
64
  date.setDate(day);
44
- date.setHours(2);
45
- date.setMinutes(0);
46
- date.setSeconds(0);
65
+ date.setHours(1, 0, 0, 0);
47
66
  }
48
67
  // 2022-04-12 01:01:01
49
68
  else if (19 === dateString.length) {
@@ -57,19 +76,17 @@ var getDate = function (_a) {
57
76
  date.setFullYear(year);
58
77
  date.setMonth(month - 1);
59
78
  date.setDate(day);
60
- date.setHours(hours);
61
- date.setMinutes(minutes);
62
- date.setSeconds(seconds);
79
+ date.setHours(hours, minutes, seconds, 0);
63
80
  }
64
81
  // Unsure date format, try anything
65
82
  else {
66
83
  date = new Date(dateString);
67
84
  }
68
85
  }
69
- // Convert to London time
70
- date = (0, getTimeZoned_1.default)({ input: date, setTimeZone: setTimeZone });
71
86
  // Reset to midnight
72
87
  date = (0, getMidnight_1.default)({ input: date, setMidnight: setMidnight });
88
+ // Convert to London time
89
+ date = (0, getTimeZoned_1.default)({ input: date, setTimeZone: setTimeZone });
73
90
  return date;
74
91
  };
75
92
  exports.default = getDate;
@@ -0,0 +1,10 @@
1
+ import { DateType } from './date';
2
+ /**
3
+ * Similar to date-fns' eachDayOfInterval, however the timezone messes this function up.
4
+ * https://date-fns.org/v2.28.0/docs/eachDayOfInterval
5
+ */
6
+ declare const getDatesBetween: ({ end, start }: {
7
+ end: DateType;
8
+ start: DateType;
9
+ }) => Date[];
10
+ export default getDatesBetween;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var addDays_1 = __importDefault(require("date-fns/addDays"));
7
+ var format_1 = __importDefault(require("./format"));
8
+ var getDate_1 = __importDefault(require("./getDate"));
9
+ /**
10
+ * Similar to date-fns' eachDayOfInterval, however the timezone messes this function up.
11
+ * https://date-fns.org/v2.28.0/docs/eachDayOfInterval
12
+ */
13
+ var getDatesBetween = function (_a) {
14
+ var end = _a.end, start = _a.start;
15
+ var response = [];
16
+ var endDate = (0, getDate_1.default)({ input: end });
17
+ // Use a string to ensure there's no changes with the timezone
18
+ var startString = (0, format_1.default)({ input: start });
19
+ // Create a pointer Date instance
20
+ var pointer = (0, getDate_1.default)({ input: startString });
21
+ // While we before the end
22
+ while (pointer <= endDate) {
23
+ response.push(pointer);
24
+ pointer = (0, addDays_1.default)(pointer, 1);
25
+ }
26
+ return response;
27
+ };
28
+ exports.default = getDatesBetween;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.timeZoneLondon = void 0;
4
7
  var date_fns_tz_1 = require("date-fns-tz");
8
+ var addMinutes_1 = __importDefault(require("date-fns/addMinutes"));
5
9
  exports.timeZoneLondon = 'Europe/London';
6
10
  /**
7
11
  * Convert an input into a given timezone.
@@ -13,6 +17,8 @@ var getTimeZoned = function (_a) {
13
17
  var dateInstance = input;
14
18
  if (setTimeZone) {
15
19
  dateInstance = new Date((0, date_fns_tz_1.formatInTimeZone)(dateInstance, setTimeZone, 'yyyy-MM-dd HH:mm:ss'));
20
+ // Fixes the timezone offset due to daylight savings
21
+ dateInstance = (0, addMinutes_1.default)(dateInstance, dateInstance.getTimezoneOffset() * -1);
16
22
  }
17
23
  return dateInstance;
18
24
  };
@@ -12,6 +12,7 @@ import getFinancialYear from './getFinancialYear';
12
12
  import getFinancialYearToDate from './getFinancialYearToDate';
13
13
  import getFinancialYearToYesterday from './getFinancialYearToYesterday';
14
14
  import getFinancialYearWeeks from './getFinancialYearWeeks';
15
+ import getDatesBetween from './getDatesBetween';
15
16
  import getLastWeek from './getLastWeek';
16
17
  import getMax from './getMax';
17
18
  import getMin from './getMin';
@@ -33,4 +34,4 @@ import { predefinedTimeframes, PredefinedTimeframesType } from './predefinedTime
33
34
  import { TimeframeType } from './timeframe';
34
35
  import { timeframes } from './timeframes';
35
36
  export type { DateType, DurationType, FinancialYearType, FinancialYearWeekType, PredefinedTimeframesType, TimeframeType, };
36
- export { durations, durationComparisons, predefinedTimeframes, timeframes, format, getDate, getDurationHours, getDurationMinutes, getFinancialYear, getFinancialYearToDate, getFinancialYearToYesterday, getFinancialYearWeeks, getLastWeek, getMax, getMin, getMonday, getNumber, getPredefinedTimeframe, getSunday, getThisWeek, getTimeZoned, getToday, getTwoWeeksAgo, getWeeksAgo, getYesterday, isDateValid, isLastWeek, isThisWeek, parseExcelDate, };
37
+ export { durations, durationComparisons, predefinedTimeframes, timeframes, format, getDate, getDatesBetween, getDurationHours, getDurationMinutes, getFinancialYear, getFinancialYearToDate, getFinancialYearToYesterday, getFinancialYearWeeks, getLastWeek, getMax, getMin, getMonday, getNumber, getPredefinedTimeframe, getSunday, getThisWeek, getTimeZoned, getToday, getTwoWeeksAgo, getWeeksAgo, getYesterday, isDateValid, isLastWeek, isThisWeek, parseExcelDate, };
@@ -3,7 +3,7 @@ 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
- exports.parseExcelDate = exports.isThisWeek = exports.isLastWeek = exports.isDateValid = exports.getYesterday = exports.getWeeksAgo = exports.getTwoWeeksAgo = exports.getToday = exports.getTimeZoned = exports.getThisWeek = exports.getSunday = exports.getPredefinedTimeframe = exports.getNumber = exports.getMonday = exports.getMin = exports.getMax = exports.getLastWeek = exports.getFinancialYearWeeks = exports.getFinancialYearToYesterday = exports.getFinancialYearToDate = exports.getFinancialYear = exports.getDurationMinutes = exports.getDurationHours = exports.getDate = exports.format = exports.timeframes = exports.predefinedTimeframes = exports.durationComparisons = exports.durations = void 0;
6
+ exports.parseExcelDate = exports.isThisWeek = exports.isLastWeek = exports.isDateValid = exports.getYesterday = exports.getWeeksAgo = exports.getTwoWeeksAgo = exports.getToday = exports.getTimeZoned = exports.getThisWeek = exports.getSunday = exports.getPredefinedTimeframe = exports.getNumber = exports.getMonday = exports.getMin = exports.getMax = exports.getLastWeek = exports.getFinancialYearWeeks = exports.getFinancialYearToYesterday = exports.getFinancialYearToDate = exports.getFinancialYear = exports.getDurationMinutes = exports.getDurationHours = exports.getDatesBetween = exports.getDate = exports.format = exports.timeframes = exports.predefinedTimeframes = exports.durationComparisons = exports.durations = void 0;
7
7
  var durationComparisons_1 = require("./durationComparisons");
8
8
  Object.defineProperty(exports, "durationComparisons", { enumerable: true, get: function () { return durationComparisons_1.durationComparisons; } });
9
9
  var durations_1 = require("./durations");
@@ -24,6 +24,8 @@ var getFinancialYearToYesterday_1 = __importDefault(require("./getFinancialYearT
24
24
  exports.getFinancialYearToYesterday = getFinancialYearToYesterday_1.default;
25
25
  var getFinancialYearWeeks_1 = __importDefault(require("./getFinancialYearWeeks"));
26
26
  exports.getFinancialYearWeeks = getFinancialYearWeeks_1.default;
27
+ var getDatesBetween_1 = __importDefault(require("./getDatesBetween"));
28
+ exports.getDatesBetween = getDatesBetween_1.default;
27
29
  var getLastWeek_1 = __importDefault(require("./getLastWeek"));
28
30
  exports.getLastWeek = getLastWeek_1.default;
29
31
  var getMax_1 = __importDefault(require("./getMax"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@8ms/helpers",
3
- "version": "1.1.37",
3
+ "version": "1.1.40",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/8millionstories-organisation/8ms-helpers-ts.git"
@@ -18,18 +18,18 @@
18
18
  "lodash": "4.17.21"
19
19
  },
20
20
  "devDependencies": {
21
- "@babel/preset-env": "7.17.10",
22
- "@babel/preset-flow": "7.16.7",
23
- "@babel/preset-typescript": "7.16.7",
24
- "@types/jest": "27.5.0",
21
+ "@babel/preset-env": "7.18.2",
22
+ "@babel/preset-flow": "7.17.12",
23
+ "@babel/preset-typescript": "7.17.12",
24
+ "@types/jest": "27.5.1",
25
25
  "@types/lodash": "4.14.182",
26
- "@types/node": "17.0.32",
26
+ "@types/node": "17.0.35",
27
27
  "babel-jest": "28.1.0",
28
28
  "crypto-js": "4.1.1",
29
29
  "jest": "28.1.0",
30
- "timezone-mock": "^1.3.1",
31
- "ts-node": "10.7.0",
30
+ "timezone-mock": "1.3.2",
31
+ "ts-node": "10.8.0",
32
32
  "tslib": "2.4.0",
33
- "typescript": "4.6.4"
33
+ "typescript": "4.7.2"
34
34
  }
35
35
  }