@8ms/helpers 1.1.22 → 1.1.25

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.
@@ -3,7 +3,9 @@ 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"));
6
7
  var parse_1 = __importDefault(require("date-fns/parse"));
8
+ var subHours_1 = __importDefault(require("date-fns/subHours"));
7
9
  /**
8
10
  * Convert a (number | string | Date) into a Date object.
9
11
  */
@@ -23,9 +25,9 @@ var getDate = function (_a) {
23
25
  var day = Number(dateString.substring(6, 8));
24
26
  if (year > 999 && month < 13 && day < 32) {
25
27
  date = new Date();
26
- date.setUTCFullYear(year);
27
- date.setUTCMonth(month - 1);
28
- date.setUTCDate(day);
28
+ date.setFullYear(year);
29
+ date.setMonth(month - 1);
30
+ date.setDate(day);
29
31
  }
30
32
  }
31
33
  // 2022-04-12
@@ -46,6 +48,13 @@ var getDate = function (_a) {
46
48
  if (setMidnight) {
47
49
  date.setHours(0, 0, 0, 0);
48
50
  }
51
+ // Accommodate for DST
52
+ if (date.getTimezoneOffset() < 0) {
53
+ date = (0, addHours_1.default)(date, 1);
54
+ }
55
+ else if (date.getTimezoneOffset() > 0) {
56
+ date = (0, subHours_1.default)(date, 1);
57
+ }
49
58
  return date;
50
59
  };
51
60
  exports.default = getDate;
@@ -18,20 +18,20 @@ var getFinancialYear = function (_a) {
18
18
  if (undefined === year) {
19
19
  var today = (0, getToday_1.default)();
20
20
  // If today is before 1st of April, then use last year
21
- if (today < new Date(today.getUTCFullYear(), 3, 1)) {
22
- financialYear = today.getUTCFullYear() - 1;
21
+ if (today < new Date(today.getFullYear(), 3, 1)) {
22
+ financialYear = today.getFullYear() - 1;
23
23
  }
24
24
  // On or after 1st of April, use this year
25
25
  else {
26
- financialYear = today.getUTCFullYear();
26
+ financialYear = today.getFullYear();
27
27
  }
28
28
  }
29
29
  // The year-end needs to be 31st March next year
30
30
  var yearEnd = new Date("".concat(financialYear + 1, "-03-31"));
31
- yearEnd.setUTCHours(0, 0, 0, 0);
31
+ yearEnd.setHours(0, 0, 0, 0);
32
32
  // The year start needs to be 1st April this year
33
33
  var yearStart = new Date("".concat(financialYear, "-04-01"));
34
- yearStart.setUTCHours(0, 0, 0, 0);
34
+ yearStart.setHours(0, 0, 0, 0);
35
35
  // Get the previous Monday if the 1st of April isn't a Monday
36
36
  if (!(0, isMonday_1.default)(yearStart)) {
37
37
  yearStart = (0, previousMonday_1.default)(yearStart);
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var addDays_1 = __importDefault(require("date-fns/addDays"));
7
7
  var eachWeekOfInterval_1 = __importDefault(require("date-fns/eachWeekOfInterval"));
8
8
  var getFinancialYear_1 = __importDefault(require("./getFinancialYear"));
9
+ var index_1 = require("./index");
9
10
  /**
10
11
  * Get the current financial year.
11
12
  */
@@ -13,10 +14,11 @@ var getFinancialYearWeeks = function (_a) {
13
14
  var year = _a.year;
14
15
  var weeks = (0, eachWeekOfInterval_1.default)((0, getFinancialYear_1.default)({ year: year }), { weekStartsOn: 1 });
15
16
  var response = weeks.map(function (week, index) {
16
- var weekEnd = new Date(week.getTime());
17
+ var weekStart = new Date(week.getTime());
18
+ var weekEnd = (0, addDays_1.default)(weekStart, 6);
17
19
  return {
18
- start: week,
19
- end: (0, addDays_1.default)(weekEnd, 6),
20
+ start: (0, index_1.getTimezoneFixed)({ input: weekStart }),
21
+ end: (0, index_1.getTimezoneFixed)({ input: weekEnd }),
20
22
  financialWeek: (index + 1),
21
23
  financialYear: year,
22
24
  };
@@ -8,6 +8,7 @@ var isMonday_1 = __importDefault(require("date-fns/isMonday"));
8
8
  var subDays_1 = __importDefault(require("date-fns/subDays"));
9
9
  var getDate_1 = __importDefault(require("./getDate"));
10
10
  var getToday_1 = __importDefault(require("./getToday"));
11
+ var index_1 = require("./index");
11
12
  /**
12
13
  * Retrieve the closest last Monday relative to the input or today.
13
14
  * 0 weeksAgo - Tuesday (10th), return Monday (8th)
@@ -24,6 +25,6 @@ var getMonday = function (_a) {
24
25
  }
25
26
  // Move it back a given number of weeks
26
27
  date = (0, subDays_1.default)(date, 7 * weeksAgo);
27
- return date;
28
+ return (0, index_1.getTimezoneFixed)({ input: date });
28
29
  };
29
30
  exports.default = getMonday;
@@ -8,6 +8,7 @@ var isSunday_1 = __importDefault(require("date-fns/isSunday"));
8
8
  var subDays_1 = __importDefault(require("date-fns/subDays"));
9
9
  var getDate_1 = __importDefault(require("./getDate"));
10
10
  var getToday_1 = __importDefault(require("./getToday"));
11
+ var index_1 = require("./index");
11
12
  /**
12
13
  * Retrieve the closest last Sunday relative to the input or today.
13
14
  * 0 weeksAgo - Tuesday (17th), return Sunday (14th)
@@ -24,6 +25,6 @@ var getSunday = function (_a) {
24
25
  }
25
26
  // Move it back a given number of weeks
26
27
  date = (0, subDays_1.default)(date, 7 * weeksAgo);
27
- return date;
28
+ return (0, index_1.getTimezoneFixed)({ input: date });
28
29
  };
29
30
  exports.default = getSunday;
@@ -0,0 +1,5 @@
1
+ import { DateType } from './date';
2
+ declare const getTimezoneFixed: ({ input }: {
3
+ input: DateType;
4
+ }) => Date;
5
+ export default getTimezoneFixed;
@@ -0,0 +1,21 @@
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 addHours_1 = __importDefault(require("date-fns/addHours"));
7
+ var subHours_1 = __importDefault(require("date-fns/subHours"));
8
+ var index_1 = require("./index");
9
+ var getTimezoneFixed = function (_a) {
10
+ var input = _a.input;
11
+ var inputDate = (0, index_1.getDate)({ input: input });
12
+ // Accommodate for DST
13
+ if (inputDate.getTimezoneOffset() < 0) {
14
+ inputDate = (0, addHours_1.default)(inputDate, 1);
15
+ }
16
+ else if (inputDate.getTimezoneOffset() > 0) {
17
+ inputDate = (0, subHours_1.default)(inputDate, 1);
18
+ }
19
+ return inputDate;
20
+ };
21
+ exports.default = getTimezoneFixed;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ var index_1 = require("./index");
3
4
  /**
4
5
  * Shortcut to get today's date.
5
6
  */
6
7
  var getToday = function () {
7
8
  var today = new Date();
8
- today.setUTCHours(0, 0, 0, 0);
9
- return today;
9
+ today.setHours(0, 0, 0, 0);
10
+ return (0, index_1.getTimezoneFixed)({ input: today });
10
11
  };
11
12
  exports.default = getToday;
@@ -3,6 +3,7 @@ import { DurationType } from './duration';
3
3
  import { durationComparisons } from './durationComparisons';
4
4
  import { durations } from './durations';
5
5
  import { FinancialYearType } from './financialYear';
6
+ import getTimezoneFixed from './getTimezoneFixed';
6
7
  import { FinancialYearWeekType } from './financialYearWeek';
7
8
  import format from './format';
8
9
  import getDate from './getDate';
@@ -32,4 +33,4 @@ import { predefinedTimeframes, PredefinedTimeframesType } from './predefinedTime
32
33
  import { TimeframeType } from './timeframe';
33
34
  import { timeframes } from './timeframes';
34
35
  export type { DateType, DurationType, FinancialYearType, FinancialYearWeekType, PredefinedTimeframesType, TimeframeType, };
35
- export { durations, durationComparisons, predefinedTimeframes, timeframes, format, getDate, getDurationHours, getDurationMinutes, getExcelDate, getFinancialYear, getFinancialYearToDate, getFinancialYearWeeks, getLastWeek, getMax, getMin, getMonday, getNumber, getPredefinedTimeframe, getSunday, getThisWeek, getToday, getTwoWeeksAgo, getWeeksAgo, getYesterday, isDateValid, isLastWeek, isThisWeek, parseExcelDate, };
36
+ export { durations, durationComparisons, predefinedTimeframes, timeframes, format, getDate, getDurationHours, getDurationMinutes, getExcelDate, getFinancialYear, getFinancialYearToDate, getFinancialYearWeeks, getLastWeek, getMax, getMin, getMonday, getNumber, getPredefinedTimeframe, getSunday, getThisWeek, getTimezoneFixed, getToday, getTwoWeeksAgo, getWeeksAgo, getYesterday, isDateValid, isLastWeek, isThisWeek, parseExcelDate, };
@@ -3,11 +3,13 @@ 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.getThisWeek = exports.getSunday = exports.getPredefinedTimeframe = exports.getNumber = exports.getMonday = exports.getMin = exports.getMax = exports.getLastWeek = exports.getFinancialYearWeeks = exports.getFinancialYearToDate = exports.getFinancialYear = exports.getExcelDate = 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.getTimezoneFixed = exports.getThisWeek = exports.getSunday = exports.getPredefinedTimeframe = exports.getNumber = exports.getMonday = exports.getMin = exports.getMax = exports.getLastWeek = exports.getFinancialYearWeeks = exports.getFinancialYearToDate = exports.getFinancialYear = exports.getExcelDate = exports.getDurationMinutes = exports.getDurationHours = 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");
10
10
  Object.defineProperty(exports, "durations", { enumerable: true, get: function () { return durations_1.durations; } });
11
+ var getTimezoneFixed_1 = __importDefault(require("./getTimezoneFixed"));
12
+ exports.getTimezoneFixed = getTimezoneFixed_1.default;
11
13
  var format_1 = __importDefault(require("./format"));
12
14
  exports.format = format_1.default;
13
15
  var getDate_1 = __importDefault(require("./getDate"));
package/package.json CHANGED
@@ -1,8 +1,6 @@
1
1
  {
2
2
  "name": "@8ms/helpers",
3
- "sideEffects": false,
4
- "type": "module",
5
- "version": "1.1.22",
3
+ "version": "1.1.25",
6
4
  "repository": {
7
5
  "type": "git",
8
6
  "url": "git+https://github.com/8millionstories-organisation/8ms-helpers-ts.git"