@8ms/helpers 1.1.28 → 1.1.31

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.
Files changed (42) hide show
  1. package/dist/date/format.d.ts +7 -4
  2. package/dist/date/format.js +3 -2
  3. package/dist/date/getDate.d.ts +2 -1
  4. package/dist/date/getDate.js +8 -12
  5. package/dist/date/getExcelDate.d.ts +1 -0
  6. package/dist/date/getExcelDate.js +1 -0
  7. package/dist/date/getFinancialYear.d.ts +6 -3
  8. package/dist/date/getFinancialYear.js +5 -6
  9. package/dist/date/getFinancialYearToDate.d.ts +5 -1
  10. package/dist/date/getFinancialYearToDate.js +7 -4
  11. package/dist/date/getFinancialYearWeeks.d.ts +6 -3
  12. package/dist/date/getFinancialYearWeeks.js +9 -5
  13. package/dist/date/getLastWeek.d.ts +5 -1
  14. package/dist/date/getLastWeek.js +7 -4
  15. package/dist/date/getLondonTime.d.ts +12 -0
  16. package/dist/date/getLondonTime.js +14 -0
  17. package/dist/date/getMax.d.ts +7 -4
  18. package/dist/date/getMax.js +3 -3
  19. package/dist/date/getMin.d.ts +7 -4
  20. package/dist/date/getMin.js +3 -3
  21. package/dist/date/getMonday.d.ts +7 -4
  22. package/dist/date/getMonday.js +3 -4
  23. package/dist/date/getNumber.d.ts +6 -3
  24. package/dist/date/getNumber.js +2 -2
  25. package/dist/date/getSunday.d.ts +7 -4
  26. package/dist/date/getSunday.js +3 -4
  27. package/dist/date/getThisWeek.d.ts +5 -1
  28. package/dist/date/getThisWeek.js +19 -4
  29. package/dist/date/getToday.d.ts +5 -1
  30. package/dist/date/getToday.js +13 -4
  31. package/dist/date/getTwoWeeksAgo.d.ts +5 -1
  32. package/dist/date/getTwoWeeksAgo.js +19 -4
  33. package/dist/date/getWeeksAgo.d.ts +7 -4
  34. package/dist/date/getWeeksAgo.js +3 -2
  35. package/dist/date/getYesterday.d.ts +5 -1
  36. package/dist/date/getYesterday.js +4 -1
  37. package/dist/date/index.d.ts +1 -2
  38. package/dist/date/index.js +1 -3
  39. package/dist/environment/isAws.js +1 -1
  40. package/package.json +11 -11
  41. package/dist/date/getTimezoneFixed.d.ts +0 -5
  42. package/dist/date/getTimezoneFixed.js +0 -21
@@ -1,9 +1,12 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type FormatType = GetLondonTimeType & {
4
+ dateFormat?: string;
5
+ input: DateType;
6
+ setMidnight?: boolean;
7
+ };
2
8
  /**
3
9
  * Convert a (number | string | Date) into a "yyyy-MM-dd" string or a specified format.
4
10
  */
5
- declare const format: ({ input, dateFormat }: {
6
- input: DateType;
7
- dateFormat?: string;
8
- }) => string;
11
+ declare const format: ({ input, dateFormat, setLondonTime, setMidnight }: FormatType) => string;
9
12
  export default format;
@@ -9,7 +9,8 @@ var getDate_1 = __importDefault(require("./getDate"));
9
9
  * Convert a (number | string | Date) into a "yyyy-MM-dd" string or a specified format.
10
10
  */
11
11
  var format = function (_a) {
12
- var input = _a.input, dateFormat = _a.dateFormat;
13
- return (0, format_1.default)((0, getDate_1.default)({ input: input }), dateFormat || 'yyyy-MM-dd');
12
+ var input = _a.input, dateFormat = _a.dateFormat, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
13
+ var dateInstance = (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight });
14
+ return (0, format_1.default)(dateInstance, dateFormat || 'yyyy-MM-dd');
14
15
  };
15
16
  exports.default = format;
@@ -1,10 +1,11 @@
1
1
  import { DateType } from './date';
2
2
  declare type GetDateType = {
3
3
  input: DateType;
4
+ setLondonTime?: boolean;
4
5
  setMidnight?: boolean;
5
6
  };
6
7
  /**
7
8
  * Convert a (number | string | Date) into a Date object.
8
9
  */
9
- declare const getDate: ({ input, setMidnight }: GetDateType) => Date;
10
+ declare const getDate: ({ input, setLondonTime, setMidnight }: GetDateType) => Date;
10
11
  export default getDate;
@@ -3,14 +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
- 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"));
7
+ var getLondonTime_1 = __importDefault(require("./getLondonTime"));
9
8
  /**
10
9
  * Convert a (number | string | Date) into a Date object.
11
10
  */
12
11
  var getDate = function (_a) {
13
- var input = _a.input, _b = _a.setMidnight, setMidnight = _b === void 0 ? true : _b;
12
+ var input = _a.input, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
14
13
  var date;
15
14
  if (input instanceof Date) {
16
15
  date = new Date(input.valueOf());
@@ -32,7 +31,7 @@ var getDate = function (_a) {
32
31
  }
33
32
  // 2022-04-12
34
33
  else if (10 === dateString.length) {
35
- var dateTimeString = dateString + ' 00:00:00s';
34
+ var dateTimeString = dateString + ' 00:00:00';
36
35
  date = (0, parse_1.default)(dateTimeString, 'yyyy-MM-dd HH:mm:ss', new Date());
37
36
  }
38
37
  // 2022-04-12 01:01:01
@@ -44,17 +43,14 @@ var getDate = function (_a) {
44
43
  date = new Date(dateString);
45
44
  }
46
45
  }
47
- // Reset to UTC hours
46
+ // Convert to London time
47
+ if (setLondonTime) {
48
+ date = (0, getLondonTime_1.default)({ input: date });
49
+ }
50
+ // Reset to midnight
48
51
  if (setMidnight) {
49
52
  date.setHours(0, 0, 0, 0);
50
53
  }
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
- }
58
54
  return date;
59
55
  };
60
56
  exports.default = getDate;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Convert an excel date "e.g. 44216" into a JavaScript date object.
3
3
  * https://stackoverflow.com/questions/16229494/converting-excel-date-serial-number-to-date-using-javascript
4
+ * @deprecated in favour of parseExcelDate
4
5
  */
5
6
  declare const getExcelDate: ({ input }: {
6
7
  input: number;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /**
4
4
  * Convert an excel date "e.g. 44216" into a JavaScript date object.
5
5
  * https://stackoverflow.com/questions/16229494/converting-excel-date-serial-number-to-date-using-javascript
6
+ * @deprecated in favour of parseExcelDate
6
7
  */
7
8
  var getExcelDate = function (_a) {
8
9
  var input = _a.input;
@@ -1,8 +1,11 @@
1
1
  import { FinancialYearType } from './financialYear';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetFinancialYearType = GetLondonTimeType & {
4
+ year?: number;
5
+ setMidnight?: boolean;
6
+ };
2
7
  /**
3
8
  * Get the current financial year.
4
9
  */
5
- declare const getFinancialYear: ({ year }?: {
6
- year?: number;
7
- }) => FinancialYearType;
10
+ declare const getFinancialYear: ({ year, setLondonTime, setMidnight }?: GetFinancialYearType) => FinancialYearType;
8
11
  export default getFinancialYear;
@@ -7,16 +7,17 @@ var isMonday_1 = __importDefault(require("date-fns/isMonday"));
7
7
  var isSunday_1 = __importDefault(require("date-fns/isSunday"));
8
8
  var nextSunday_1 = __importDefault(require("date-fns/nextSunday"));
9
9
  var previousMonday_1 = __importDefault(require("date-fns/previousMonday"));
10
+ var getDate_1 = __importDefault(require("./getDate"));
10
11
  var getToday_1 = __importDefault(require("./getToday"));
11
12
  /**
12
13
  * Get the current financial year.
13
14
  */
14
15
  var getFinancialYear = function (_a) {
15
- var _b = _a === void 0 ? {} : _a, _c = _b.year, year = _c === void 0 ? undefined : _c;
16
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.year, year = _c === void 0 ? undefined : _c, _d = _b.setLondonTime, setLondonTime = _d === void 0 ? true : _d, _e = _b.setMidnight, setMidnight = _e === void 0 ? true : _e;
16
17
  // Either use the current year or a specified year
17
18
  var financialYear = year;
18
19
  if (undefined === year) {
19
- var today = (0, getToday_1.default)();
20
+ var today = (0, getToday_1.default)({ setLondonTime: setLondonTime, setMidnight: setMidnight });
20
21
  // If today is before 1st of April, then use last year
21
22
  if (today < new Date(today.getFullYear(), 3, 1)) {
22
23
  financialYear = today.getFullYear() - 1;
@@ -27,11 +28,9 @@ var getFinancialYear = function (_a) {
27
28
  }
28
29
  }
29
30
  // The year-end needs to be 31st March next year
30
- var yearEnd = new Date("".concat(financialYear + 1, "-03-31"));
31
- yearEnd.setHours(0, 0, 0, 0);
31
+ var yearEnd = (0, getDate_1.default)({ input: "".concat(financialYear + 1, "-03-31"), setLondonTime: setLondonTime, setMidnight: setMidnight });
32
32
  // The year start needs to be 1st April this year
33
- var yearStart = new Date("".concat(financialYear, "-04-01"));
34
- yearStart.setHours(0, 0, 0, 0);
33
+ var yearStart = (0, getDate_1.default)({ input: "".concat(financialYear, "-04-01"), setLondonTime: setLondonTime, setMidnight: setMidnight });
35
34
  // Get the previous Monday if the 1st of April isn't a Monday
36
35
  if (!(0, isMonday_1.default)(yearStart)) {
37
36
  yearStart = (0, previousMonday_1.default)(yearStart);
@@ -1,6 +1,10 @@
1
1
  import { FinancialYearType } from './financialYear';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type getFinancialYearToDateType = GetLondonTimeType & {
4
+ setMidnight?: boolean;
5
+ };
2
6
  /**
3
7
  * Return the current financial year up to today.
4
8
  */
5
- declare const getFinancialYearToDate: () => FinancialYearType;
9
+ declare const getFinancialYearToDate: ({ setLondonTime, setMidnight }?: getFinancialYearToDateType) => FinancialYearType;
6
10
  export default getFinancialYearToDate;
@@ -8,8 +8,11 @@ var getToday_1 = __importDefault(require("./getToday"));
8
8
  /**
9
9
  * Return the current financial year up to today.
10
10
  */
11
- var getFinancialYearToDate = function () { return ({
12
- end: (0, getToday_1.default)(),
13
- start: (0, getFinancialYear_1.default)({ year: undefined }).start,
14
- }); };
11
+ var getFinancialYearToDate = function (_a) {
12
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _b.setMidnight, setMidnight = _d === void 0 ? true : _d;
13
+ return ({
14
+ end: (0, getToday_1.default)(),
15
+ start: (0, getFinancialYear_1.default)({ year: undefined, setLondonTime: setLondonTime, setMidnight: setMidnight }).start,
16
+ });
17
+ };
15
18
  exports.default = getFinancialYearToDate;
@@ -1,8 +1,11 @@
1
1
  import { FinancialYearWeekType } from './financialYearWeek';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type getFinancialYearWeeksType = GetLondonTimeType & {
4
+ year: number;
5
+ setMidnight?: boolean;
6
+ };
2
7
  /**
3
8
  * Get the current financial year.
4
9
  */
5
- declare const getFinancialYearWeeks: ({ year }: {
6
- year: number;
7
- }) => FinancialYearWeekType[];
10
+ declare const getFinancialYearWeeks: ({ year, setLondonTime, setMidnight }: getFinancialYearWeeksType) => FinancialYearWeekType[];
8
11
  export default getFinancialYearWeeks;
@@ -6,19 +6,23 @@ 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
+ var getLondonTime_1 = __importDefault(require("./getLondonTime"));
10
10
  /**
11
11
  * Get the current financial year.
12
12
  */
13
13
  var getFinancialYearWeeks = function (_a) {
14
- var year = _a.year;
15
- var weeks = (0, eachWeekOfInterval_1.default)((0, getFinancialYear_1.default)({ year: year }), { weekStartsOn: 1 });
14
+ var year = _a.year, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
15
+ var financialYear = (0, getFinancialYear_1.default)({ year: year, setLondonTime: setLondonTime, setMidnight: setMidnight });
16
+ var weeks = (0, eachWeekOfInterval_1.default)(financialYear, { weekStartsOn: 1 });
16
17
  var response = weeks.map(function (week, index) {
17
18
  var weekStart = new Date(week.getTime());
19
+ if (setLondonTime) {
20
+ weekStart = (0, getLondonTime_1.default)({ input: weekStart });
21
+ }
18
22
  var weekEnd = (0, addDays_1.default)(weekStart, 6);
19
23
  return {
20
- start: (0, index_1.getTimezoneFixed)({ input: weekStart }),
21
- end: (0, index_1.getTimezoneFixed)({ input: weekEnd }),
24
+ start: weekStart,
25
+ end: weekEnd,
22
26
  financialWeek: (index + 1),
23
27
  financialYear: year,
24
28
  };
@@ -1,6 +1,10 @@
1
+ import { GetLondonTimeType } from './getLondonTime';
1
2
  import { TimeframeType } from './timeframe';
3
+ declare type GetLastWeekType = GetLondonTimeType & {
4
+ setMidnight?: boolean;
5
+ };
2
6
  /**
3
7
  * Return an object of start/end predefined date of Last Week.
4
8
  */
5
- declare const getLastWeek: () => TimeframeType;
9
+ declare const getLastWeek: ({ setLondonTime, setMidnight }?: GetLastWeekType) => TimeframeType;
6
10
  export default getLastWeek;
@@ -9,8 +9,11 @@ var getSunday_1 = __importDefault(require("./getSunday"));
9
9
  /**
10
10
  * Return an object of start/end predefined date of Last Week.
11
11
  */
12
- var getLastWeek = function () { return ({
13
- end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: 0 }) }),
14
- start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 1 }) }),
15
- }); };
12
+ var getLastWeek = function (_a) {
13
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _b.setMidnight, setMidnight = _d === void 0 ? true : _d;
14
+ return ({
15
+ end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: 0, setLondonTime: setLondonTime, setMidnight: setMidnight }) }),
16
+ start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 1, setLondonTime: setLondonTime, setMidnight: setMidnight }) }),
17
+ });
18
+ };
16
19
  exports.default = getLastWeek;
@@ -0,0 +1,12 @@
1
+ export declare type GetLondonTimeType = {
2
+ setLondonTime?: boolean;
3
+ };
4
+ /**
5
+ * Working with time zones is a pain,
6
+ * Input a localised time zone, converts this into London's timezone as a string.
7
+ * Returns a new Date instance.
8
+ */
9
+ declare const getLondonTime: ({ input }: {
10
+ input: Date;
11
+ }) => Date;
12
+ export default getLondonTime;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var date_fns_tz_1 = require("date-fns-tz");
4
+ /**
5
+ * Working with time zones is a pain,
6
+ * Input a localised time zone, converts this into London's timezone as a string.
7
+ * Returns a new Date instance.
8
+ */
9
+ var getLondonTime = function (_a) {
10
+ var input = _a.input;
11
+ var londonString = (0, date_fns_tz_1.formatInTimeZone)(input, 'Europe/London', 'yyyy-MM-dd HH:mm:ss');
12
+ return new Date(londonString);
13
+ };
14
+ exports.default = getLondonTime;
@@ -1,9 +1,12 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetMaxType = GetLondonTimeType & {
4
+ input: DateType;
5
+ max: DateType;
6
+ setMidnight?: boolean;
7
+ };
2
8
  /**
3
9
  * If a given date is beyond the maximum, return the maximum.
4
10
  */
5
- declare const getMax: ({ input, max }: {
6
- input: DateType;
7
- max: DateType;
8
- }) => Date;
11
+ declare const getMax: ({ input, max, setLondonTime, setMidnight }: GetMaxType) => Date;
9
12
  export default getMax;
@@ -9,9 +9,9 @@ var getDate_1 = __importDefault(require("./getDate"));
9
9
  * If a given date is beyond the maximum, return the maximum.
10
10
  */
11
11
  var getMax = function (_a) {
12
- var input = _a.input, max = _a.max;
13
- var parsedMax = (0, getDate_1.default)({ input: max });
14
- var parsedInput = (0, getDate_1.default)({ input: input });
12
+ var input = _a.input, max = _a.max, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
13
+ var parsedMax = (0, getDate_1.default)({ input: max, setLondonTime: setLondonTime, setMidnight: setMidnight });
14
+ var parsedInput = (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight });
15
15
  return (0, isAfter_1.default)(parsedInput, parsedMax) ? parsedMax : parsedInput;
16
16
  };
17
17
  exports.default = getMax;
@@ -1,9 +1,12 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetMinType = GetLondonTimeType & {
4
+ input: DateType;
5
+ min: DateType;
6
+ setMidnight?: boolean;
7
+ };
2
8
  /**
3
9
  * If a given date is before the minimum, return the minimum.
4
10
  */
5
- declare const getMin: ({ input, min }: {
6
- input: DateType;
7
- min: DateType;
8
- }) => Date;
11
+ declare const getMin: ({ input, min, setLondonTime, setMidnight }: GetMinType) => Date;
9
12
  export default getMin;
@@ -9,9 +9,9 @@ var getDate_1 = __importDefault(require("./getDate"));
9
9
  * If a given date is before the minimum, return the minimum.
10
10
  */
11
11
  var getMin = function (_a) {
12
- var input = _a.input, min = _a.min;
13
- var parsedMin = (0, getDate_1.default)({ input: min });
14
- var parsedInput = (0, getDate_1.default)({ input: input });
12
+ var input = _a.input, min = _a.min, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
13
+ var parsedMin = (0, getDate_1.default)({ input: min, setLondonTime: setLondonTime, setMidnight: setMidnight });
14
+ var parsedInput = (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight });
15
15
  return (0, isBefore_1.default)(parsedInput, parsedMin) ? parsedMin : parsedInput;
16
16
  };
17
17
  exports.default = getMin;
@@ -1,11 +1,14 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetMondayType = GetLondonTimeType & {
4
+ input?: DateType;
5
+ weeksAgo: number;
6
+ setMidnight?: boolean;
7
+ };
2
8
  /**
3
9
  * Retrieve the closest last Monday relative to the input or today.
4
10
  * 0 weeksAgo - Tuesday (10th), return Monday (8th)
5
11
  * 1 weeksAgo - Tuesday (10th), return Monday (1st)
6
12
  */
7
- declare const getMonday: ({ weeksAgo, input }: {
8
- weeksAgo: number;
9
- input?: DateType;
10
- }) => Date;
13
+ declare const getMonday: ({ weeksAgo, input, setLondonTime, setMidnight }: GetMondayType) => Date;
11
14
  export default getMonday;
@@ -8,15 +8,14 @@ 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");
12
11
  /**
13
12
  * Retrieve the closest last Monday relative to the input or today.
14
13
  * 0 weeksAgo - Tuesday (10th), return Monday (8th)
15
14
  * 1 weeksAgo - Tuesday (10th), return Monday (1st)
16
15
  */
17
16
  var getMonday = function (_a) {
18
- var weeksAgo = _a.weeksAgo, input = _a.input;
19
- var date = input ? (0, getDate_1.default)({ input: input }) : (0, getToday_1.default)();
17
+ var weeksAgo = _a.weeksAgo, input = _a.input, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
18
+ var date = input ? (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight }) : (0, getToday_1.default)({ setLondonTime: setLondonTime, setMidnight: setMidnight });
20
19
  if (!(0, isMonday_1.default)(date)) {
21
20
  // Get the ISO Day of week (Monday - 1 to Sunday - 7)
22
21
  var isoDay = (0, getISODay_1.default)(date);
@@ -25,6 +24,6 @@ var getMonday = function (_a) {
25
24
  }
26
25
  // Move it back a given number of weeks
27
26
  date = (0, subDays_1.default)(date, 7 * weeksAgo);
28
- return (0, index_1.getTimezoneFixed)({ input: date });
27
+ return date;
29
28
  };
30
29
  exports.default = getMonday;
@@ -1,8 +1,11 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetNumberType = GetLondonTimeType & {
4
+ input: DateType;
5
+ setMidnight?: boolean;
6
+ };
2
7
  /**
3
8
  * Convert a (number | string | Date) into a YYYYMMDD number.
4
9
  */
5
- declare const getNumber: ({ input }: {
6
- input: DateType;
7
- }) => number;
10
+ declare const getNumber: ({ input, setLondonTime, setMidnight }: GetNumberType) => number;
8
11
  export default getNumber;
@@ -9,8 +9,8 @@ var getDate_1 = __importDefault(require("./getDate"));
9
9
  * Convert a (number | string | Date) into a YYYYMMDD number.
10
10
  */
11
11
  var getNumber = function (_a) {
12
- var input = _a.input;
13
- var date = (0, getDate_1.default)({ input: input });
12
+ var input = _a.input, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
13
+ var date = (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight });
14
14
  return Number((0, format_1.default)(date, 'yyyyMMdd'));
15
15
  };
16
16
  exports.default = getNumber;
@@ -1,11 +1,14 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetSundayType = GetLondonTimeType & {
4
+ input?: DateType;
5
+ weeksAgo: number;
6
+ setMidnight?: boolean;
7
+ };
2
8
  /**
3
9
  * Retrieve the closest last Sunday relative to the input or today.
4
10
  * 0 weeksAgo - Tuesday (17th), return Sunday (14th)
5
11
  * 1 weeksAgo - Tuesday (17th), return Monday (7th)
6
12
  */
7
- declare const getSunday: ({ weeksAgo, input }: {
8
- weeksAgo: number;
9
- input?: DateType;
10
- }) => Date;
13
+ declare const getSunday: ({ weeksAgo, input, setLondonTime, setMidnight }: GetSundayType) => Date;
11
14
  export default getSunday;
@@ -8,15 +8,14 @@ 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");
12
11
  /**
13
12
  * Retrieve the closest last Sunday relative to the input or today.
14
13
  * 0 weeksAgo - Tuesday (17th), return Sunday (14th)
15
14
  * 1 weeksAgo - Tuesday (17th), return Monday (7th)
16
15
  */
17
16
  var getSunday = function (_a) {
18
- var weeksAgo = _a.weeksAgo, input = _a.input;
19
- var date = input ? (0, getDate_1.default)({ input: input }) : (0, getToday_1.default)();
17
+ var weeksAgo = _a.weeksAgo, input = _a.input, _b = _a.setLondonTime, setLondonTime = _b === void 0 ? true : _b, _c = _a.setMidnight, setMidnight = _c === void 0 ? true : _c;
18
+ var date = input ? (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight }) : (0, getToday_1.default)({ setLondonTime: setLondonTime, setMidnight: setMidnight });
20
19
  if (!(0, isSunday_1.default)(date)) {
21
20
  // Get the ISO Day of week (Monday - 1 to Sunday - 7)
22
21
  var isoDay = (0, getISODay_1.default)(date);
@@ -25,6 +24,6 @@ var getSunday = function (_a) {
25
24
  }
26
25
  // Move it back a given number of weeks
27
26
  date = (0, subDays_1.default)(date, 7 * weeksAgo);
28
- return (0, index_1.getTimezoneFixed)({ input: date });
27
+ return date;
29
28
  };
30
29
  exports.default = getSunday;
@@ -1,6 +1,10 @@
1
+ import { GetLondonTimeType } from './getLondonTime';
1
2
  import { TimeframeType } from './timeframe';
3
+ declare type GetThisWeekType = GetLondonTimeType & {
4
+ setMidnight?: boolean;
5
+ };
2
6
  /**
3
7
  * Return an object of start/end predefined date of This Week.
4
8
  */
5
- declare const getThisWeek: () => TimeframeType;
9
+ declare const getThisWeek: ({ setLondonTime, setMidnight }?: GetThisWeekType) => TimeframeType;
6
10
  export default getThisWeek;
@@ -9,8 +9,23 @@ var getSunday_1 = __importDefault(require("./getSunday"));
9
9
  /**
10
10
  * Return an object of start/end predefined date of This Week.
11
11
  */
12
- var getThisWeek = function () { return ({
13
- end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: -1 }) }),
14
- start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 0 }) }),
15
- }); };
12
+ var getThisWeek = function (_a) {
13
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _b.setMidnight, setMidnight = _d === void 0 ? true : _d;
14
+ return ({
15
+ end: (0, getNumber_1.default)({
16
+ input: (0, getSunday_1.default)({
17
+ weeksAgo: -1,
18
+ setLondonTime: setLondonTime,
19
+ setMidnight: setMidnight,
20
+ }),
21
+ }),
22
+ start: (0, getNumber_1.default)({
23
+ input: (0, getMonday_1.default)({
24
+ weeksAgo: 0,
25
+ setLondonTime: setLondonTime,
26
+ setMidnight: setMidnight,
27
+ }),
28
+ }),
29
+ });
30
+ };
16
31
  exports.default = getThisWeek;
@@ -1,5 +1,9 @@
1
+ import { GetLondonTimeType } from './getLondonTime';
2
+ declare type GetTodayType = GetLondonTimeType & {
3
+ setMidnight?: boolean;
4
+ };
1
5
  /**
2
6
  * Shortcut to get today's date.
3
7
  */
4
- declare const getToday: () => Date;
8
+ declare const getToday: ({ setLondonTime, setMidnight }?: GetTodayType) => Date;
5
9
  export default getToday;
@@ -1,12 +1,21 @@
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
- var index_1 = require("./index");
6
+ var getLondonTime_1 = __importDefault(require("./getLondonTime"));
4
7
  /**
5
8
  * Shortcut to get today's date.
6
9
  */
7
- var getToday = function () {
10
+ var getToday = function (_a) {
11
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _b.setMidnight, setMidnight = _d === void 0 ? true : _d;
8
12
  var today = new Date();
9
- today.setHours(0, 0, 0, 0);
10
- return (0, index_1.getTimezoneFixed)({ input: today });
13
+ if (setLondonTime) {
14
+ today = (0, getLondonTime_1.default)({ input: today });
15
+ }
16
+ if (setMidnight) {
17
+ today.setHours(0, 0, 0, 0);
18
+ }
19
+ return today;
11
20
  };
12
21
  exports.default = getToday;
@@ -1,6 +1,10 @@
1
+ import { GetLondonTimeType } from './getLondonTime';
1
2
  import { TimeframeType } from './timeframe';
3
+ declare type GetTwoWeeksAgoType = GetLondonTimeType & {
4
+ setMidnight?: boolean;
5
+ };
2
6
  /**
3
7
  * Return an object of start/end predefined date of Two Weeks Ago.
4
8
  */
5
- declare const getTwoWeeksAgo: () => TimeframeType;
9
+ declare const getTwoWeeksAgo: ({ setLondonTime, setMidnight }?: GetTwoWeeksAgoType) => TimeframeType;
6
10
  export default getTwoWeeksAgo;
@@ -9,8 +9,23 @@ var getSunday_1 = __importDefault(require("./getSunday"));
9
9
  /**
10
10
  * Return an object of start/end predefined date of Two Weeks Ago.
11
11
  */
12
- var getTwoWeeksAgo = function () { return ({
13
- end: (0, getNumber_1.default)({ input: (0, getSunday_1.default)({ weeksAgo: 1 }) }),
14
- start: (0, getNumber_1.default)({ input: (0, getMonday_1.default)({ weeksAgo: 2 }) }),
15
- }); };
12
+ var getTwoWeeksAgo = function (_a) {
13
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _b.setMidnight, setMidnight = _d === void 0 ? true : _d;
14
+ return ({
15
+ end: (0, getNumber_1.default)({
16
+ input: (0, getSunday_1.default)({
17
+ weeksAgo: 1,
18
+ setLondonTime: setLondonTime,
19
+ setMidnight: setMidnight,
20
+ }),
21
+ }),
22
+ start: (0, getNumber_1.default)({
23
+ input: (0, getMonday_1.default)({
24
+ weeksAgo: 2,
25
+ setLondonTime: setLondonTime,
26
+ setMidnight: setMidnight,
27
+ }),
28
+ }),
29
+ });
30
+ };
16
31
  exports.default = getTwoWeeksAgo;
@@ -1,9 +1,12 @@
1
1
  import { DateType } from './date';
2
+ import { GetLondonTimeType } from './getLondonTime';
3
+ declare type GetWeeksAgoType = GetLondonTimeType & {
4
+ input: DateType;
5
+ weeksAgo: number;
6
+ setMidnight?: boolean;
7
+ };
2
8
  /**
3
9
  * From a given input, move the date back X weeksAgo
4
10
  */
5
- declare const getWeeksAgo: ({ input, weeksAgo }: {
6
- input: DateType;
7
- weeksAgo: number;
8
- }) => number;
11
+ declare const getWeeksAgo: ({ input, weeksAgo, setLondonTime, setMidnight }: GetWeeksAgoType) => number;
9
12
  export default getWeeksAgo;
@@ -10,8 +10,9 @@ var getNumber_1 = __importDefault(require("./getNumber"));
10
10
  * From a given input, move the date back X weeksAgo
11
11
  */
12
12
  var getWeeksAgo = function (_a) {
13
- var input = _a.input, _b = _a.weeksAgo, weeksAgo = _b === void 0 ? 0 : _b;
14
- var response = (0, sub_1.default)((0, getDate_1.default)({ input: input }), { weeks: weeksAgo });
13
+ var input = _a.input, _b = _a.weeksAgo, weeksAgo = _b === void 0 ? 0 : _b, _c = _a.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _a.setMidnight, setMidnight = _d === void 0 ? true : _d;
14
+ var dateInstance = (0, getDate_1.default)({ input: input, setLondonTime: setLondonTime, setMidnight: setMidnight });
15
+ var response = (0, sub_1.default)(dateInstance, { weeks: weeksAgo });
15
16
  return (0, getNumber_1.default)({ input: response });
16
17
  };
17
18
  exports.default = getWeeksAgo;
@@ -1,5 +1,9 @@
1
+ import { GetLondonTimeType } from './getLondonTime';
2
+ declare type GetYesterdayType = GetLondonTimeType & {
3
+ setMidnight?: boolean;
4
+ };
1
5
  /**
2
6
  * Shortcut to get yesterday's date.
3
7
  */
4
- declare const getYesterday: () => Date;
8
+ declare const getYesterday: ({ setLondonTime, setMidnight }?: GetYesterdayType) => Date;
5
9
  export default getYesterday;
@@ -8,5 +8,8 @@ var getToday_1 = __importDefault(require("./getToday"));
8
8
  /**
9
9
  * Shortcut to get yesterday's date.
10
10
  */
11
- var getYesterday = function () { return (0, subDays_1.default)((0, getToday_1.default)(), 1); };
11
+ var getYesterday = function (_a) {
12
+ var _b = _a === void 0 ? { setLondonTime: true, setMidnight: true } : _a, _c = _b.setLondonTime, setLondonTime = _c === void 0 ? true : _c, _d = _b.setMidnight, setMidnight = _d === void 0 ? true : _d;
13
+ return (0, subDays_1.default)((0, getToday_1.default)({ setLondonTime: setLondonTime, setMidnight: setMidnight }), 1);
14
+ };
12
15
  exports.default = getYesterday;
@@ -3,7 +3,6 @@ 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';
7
6
  import { FinancialYearWeekType } from './financialYearWeek';
8
7
  import format from './format';
9
8
  import getDate from './getDate';
@@ -33,4 +32,4 @@ import { predefinedTimeframes, PredefinedTimeframesType } from './predefinedTime
33
32
  import { TimeframeType } from './timeframe';
34
33
  import { timeframes } from './timeframes';
35
34
  export type { DateType, DurationType, FinancialYearType, FinancialYearWeekType, PredefinedTimeframesType, TimeframeType, };
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, };
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, };
@@ -3,13 +3,11 @@ 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.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;
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;
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;
13
11
  var format_1 = __importDefault(require("./format"));
14
12
  exports.format = format_1.default;
15
13
  var getDate_1 = __importDefault(require("./getDate"));
@@ -4,5 +4,5 @@ var platforms_1 = require("./platforms");
4
4
  /**
5
5
  * Check to see if we are working on AWS Lambda.
6
6
  */
7
- var isAws = function () { return platforms_1.platforms.AWS === process.env['EMS_ENVIRONMENT']; };
7
+ var isAws = function () { return platforms_1.platforms.AWS === process.env['EMS_PLATFORM']; };
8
8
  exports.default = isAws;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@8ms/helpers",
3
- "version": "1.1.28",
3
+ "version": "1.1.31",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/8millionstories-organisation/8ms-helpers-ts.git"
@@ -12,23 +12,23 @@
12
12
  "jest": "jest --watch"
13
13
  },
14
14
  "dependencies": {
15
- "axios": "0.27.1",
16
- "date-fns": "2.28.0",
17
- "lodash": "4.17.21"
15
+ "axios": "0.27.2",
16
+ "date-fns": "2.28.0",
17
+ "date-fns-tz": "1.3.4",
18
+ "lodash": "4.17.21"
18
19
  },
19
20
  "devDependencies": {
20
- "@babel/preset-env": "7.16.11",
21
+ "@babel/preset-env": "7.17.10",
21
22
  "@babel/preset-flow": "7.16.7",
22
23
  "@babel/preset-typescript": "7.16.7",
23
- "@types/jest": "27.4.1",
24
+ "@types/jest": "27.5.0",
24
25
  "@types/lodash": "4.14.182",
25
- "@types/node": "17.0.27",
26
- "babel-jest": "28.0.0",
26
+ "@types/node": "17.0.31",
27
+ "babel-jest": "28.0.3",
27
28
  "crypto-js": "4.1.1",
28
- "date-fns-tz": "1.3.3",
29
- "jest": "28.0.0",
29
+ "jest": "28.0.3",
30
30
  "ts-node": "10.7.0",
31
31
  "tslib": "2.4.0",
32
- "typescript": "4.6.3"
32
+ "typescript": "4.6.4"
33
33
  }
34
34
  }
@@ -1,5 +0,0 @@
1
- import { DateType } from './date';
2
- declare const getTimezoneFixed: ({ input }: {
3
- input: DateType;
4
- }) => Date;
5
- export default getTimezoneFixed;
@@ -1,21 +0,0 @@
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;