@8ms/helpers 1.16.0 → 1.21.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/aws/ses/SimpleEmail.d.ts +1 -1
- package/aws/ses/SimpleEmail.js +17 -24
- package/date/format.d.ts +2 -5
- package/date/format.js +1 -0
- package/date/getDate.d.ts +6 -4
- package/date/getDate.js +59 -46
- package/date/getDatesBetween.d.ts +3 -2
- package/date/getDatesBetween.js +15 -8
- package/date/getFinancialYear.d.ts +1 -1
- package/date/getFinancialYear.js +11 -5
- package/date/getFinancialYearWeeks.d.ts +2 -2
- package/date/getFinancialYearWeeks.js +8 -4
- package/date/getLastWeek.d.ts +3 -3
- package/date/getLastWeek.js +6 -2
- package/date/getMax.d.ts +4 -3
- package/date/getMax.js +2 -0
- package/date/getMidnight.js +0 -10
- package/date/getMin.d.ts +1 -0
- package/date/getMin.js +2 -0
- package/date/getMonday.d.ts +2 -1
- package/date/getMonday.js +6 -6
- package/date/getNumber.d.ts +3 -7
- package/date/getNumber.js +6 -5
- package/date/getSunday.d.ts +5 -4
- package/date/getSunday.js +12 -5
- package/date/getThisWeek.d.ts +3 -3
- package/date/getThisWeek.js +8 -2
- package/date/getTodayYmd.js +2 -1
- package/date/getTodayYmdhis.js +1 -0
- package/date/getTwoWeeksAgo.d.ts +3 -3
- package/date/getTwoWeeksAgo.js +8 -2
- package/date/getWeeksAgo.d.ts +2 -1
- package/date/getWeeksAgo.js +6 -2
- package/package.json +1 -1
package/aws/ses/SimpleEmail.d.ts
CHANGED
package/aws/ses/SimpleEmail.js
CHANGED
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
7
7
|
const BaseClass_1 = __importDefault(require("../../class/BaseClass"));
|
|
8
|
-
const isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
9
8
|
/**
|
|
10
9
|
* Class to build and send an AWS SES email.
|
|
11
10
|
*/
|
|
@@ -36,41 +35,41 @@ class SimpleEmail extends BaseClass_1.default {
|
|
|
36
35
|
return this;
|
|
37
36
|
}
|
|
38
37
|
setFrom({ from }) {
|
|
39
|
-
return this._setValue({ input: from, fields:
|
|
38
|
+
return this._setValue({ input: from, fields: "from" });
|
|
40
39
|
}
|
|
41
40
|
setHtml({ html }) {
|
|
42
|
-
return this._setValue({ input: html, fields:
|
|
41
|
+
return this._setValue({ input: html, fields: "html" });
|
|
43
42
|
}
|
|
44
43
|
setSubject({ subject }) {
|
|
45
|
-
return this._setValue({ input: subject, fields:
|
|
44
|
+
return this._setValue({ input: subject, fields: "subject" });
|
|
46
45
|
}
|
|
47
46
|
pushBcc({ recipient }) {
|
|
48
|
-
return this._push({ input: recipient, fields:
|
|
47
|
+
return this._push({ input: recipient, fields: "bcc" });
|
|
49
48
|
}
|
|
50
49
|
pushCc({ recipient }) {
|
|
51
|
-
return this._push({ input: recipient, fields:
|
|
50
|
+
return this._push({ input: recipient, fields: "cc" });
|
|
52
51
|
}
|
|
53
52
|
pushTo({ recipient }) {
|
|
54
|
-
return this._push({ input: recipient, fields:
|
|
53
|
+
return this._push({ input: recipient, fields: "to" });
|
|
55
54
|
}
|
|
56
55
|
setBcc({ recipient }) {
|
|
57
|
-
return this._setArray({ input: recipient, fields:
|
|
56
|
+
return this._setArray({ input: recipient, fields: "bcc" });
|
|
58
57
|
}
|
|
59
58
|
setCc({ recipient }) {
|
|
60
|
-
return this._setArray({ input: recipient, fields:
|
|
59
|
+
return this._setArray({ input: recipient, fields: "cc" });
|
|
61
60
|
}
|
|
62
61
|
setTo({ recipient }) {
|
|
63
|
-
return this._setArray({ input: recipient, fields:
|
|
62
|
+
return this._setArray({ input: recipient, fields: "to" });
|
|
64
63
|
}
|
|
65
64
|
async send() {
|
|
66
|
-
const { SendEmailCommand } = require(
|
|
65
|
+
const { SendEmailCommand } = require("@aws-sdk/client-ses");
|
|
67
66
|
let response;
|
|
68
67
|
// https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/ses-examples-sending-email.html
|
|
69
68
|
const params = {
|
|
70
69
|
Destination: {
|
|
71
|
-
BccAddresses: this._filterRecipients({ field:
|
|
72
|
-
CcAddresses: this._filterRecipients({ field:
|
|
73
|
-
ToAddresses: this._filterRecipients({ field:
|
|
70
|
+
BccAddresses: this._filterRecipients({ field: "bcc" }),
|
|
71
|
+
CcAddresses: this._filterRecipients({ field: "cc" }),
|
|
72
|
+
ToAddresses: this._filterRecipients({ field: "to" }),
|
|
74
73
|
},
|
|
75
74
|
Message: {
|
|
76
75
|
Body: {
|
|
@@ -90,15 +89,9 @@ class SimpleEmail extends BaseClass_1.default {
|
|
|
90
89
|
},
|
|
91
90
|
Source: this.from,
|
|
92
91
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
response = (0, isResponse200_1.default)({ apiResponse });
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
response = false;
|
|
100
|
-
}
|
|
101
|
-
return response;
|
|
92
|
+
const command = new SendEmailCommand(params);
|
|
93
|
+
const apiResponse = await global.awsSesClient.send(command);
|
|
94
|
+
return apiResponse;
|
|
102
95
|
}
|
|
103
96
|
_filterRecipients({ field }) {
|
|
104
97
|
// Remove all undefined and null values
|
|
@@ -107,7 +100,7 @@ class SimpleEmail extends BaseClass_1.default {
|
|
|
107
100
|
response = response.map(recipient => recipient.toLowerCase()
|
|
108
101
|
.trim());
|
|
109
102
|
// Remove all empty values
|
|
110
|
-
response = response.filter(recipient =>
|
|
103
|
+
response = response.filter(recipient => "" !== recipient);
|
|
111
104
|
// Return only unique values
|
|
112
105
|
response = (0, uniq_1.default)(response);
|
|
113
106
|
return response;
|
package/date/format.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { GetTimeZoned } from "./getTimeZoned";
|
|
4
|
-
type Format = GetTimeZoned & GetMidnight & {
|
|
1
|
+
import { GetDate } from "./getDate";
|
|
2
|
+
type Format = GetDate & {
|
|
5
3
|
dateFormat?: string;
|
|
6
|
-
input: DateType;
|
|
7
4
|
};
|
|
8
5
|
/**
|
|
9
6
|
* Convert a (number | string | Date) into a "yyyy-MM-dd" string or a specified format.
|
package/date/format.js
CHANGED
package/date/getDate.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { DateType } from
|
|
2
|
-
import { GetMidnight } from
|
|
3
|
-
import { GetTimeZoned } from
|
|
4
|
-
type GetDate = GetTimeZoned & GetMidnight & {
|
|
1
|
+
import { DateType } from "./date";
|
|
2
|
+
import { GetMidnight } from "./getMidnight";
|
|
3
|
+
import { GetTimeZoned } from "./getTimeZoned";
|
|
4
|
+
export type GetDate = GetTimeZoned & GetMidnight & {
|
|
5
5
|
input: DateType;
|
|
6
|
+
isUtc?: boolean;
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
9
|
* Convert a (number | string | Date) into a Date object.
|
|
9
10
|
* As the user would be providing the input we don't want to change the timezone typically.
|
|
11
|
+
* By default assumption is that the input is UTC, however it can be switched to timezoned time.
|
|
10
12
|
*/
|
|
11
13
|
declare const getDate: (props: GetDate) => Date;
|
|
12
14
|
export default getDate;
|
package/date/getDate.js
CHANGED
|
@@ -4,25 +4,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const getMidnight_1 = __importDefault(require("./getMidnight"));
|
|
7
|
-
const getTimeZoned_1 = __importDefault(require("./getTimeZoned"));
|
|
8
7
|
/**
|
|
9
8
|
* Convert a (number | string | Date) into a Date object.
|
|
10
9
|
* As the user would be providing the input we don't want to change the timezone typically.
|
|
10
|
+
* By default assumption is that the input is UTC, however it can be switched to timezoned time.
|
|
11
11
|
*/
|
|
12
12
|
const getDate = (props) => {
|
|
13
13
|
let date;
|
|
14
|
+
let isUtc = undefined === props?.isUtc ? true : props.isUtc;
|
|
14
15
|
// Already date instance - no change
|
|
15
16
|
if (props.input instanceof Date) {
|
|
16
17
|
date = new Date(props.input.valueOf());
|
|
17
18
|
}
|
|
18
|
-
else if (
|
|
19
|
+
else if ("string" === typeof props.input || "number" === typeof props.input) {
|
|
19
20
|
// Convert the input into string
|
|
20
21
|
const dateString = props.input.toString();
|
|
21
22
|
const regexes = {
|
|
22
|
-
ymdDash: new RegExp(
|
|
23
|
-
ymdNumber: new RegExp(
|
|
24
|
-
ymdHisDash: new RegExp(
|
|
25
|
-
ymdHisNumber: new RegExp(
|
|
23
|
+
ymdDash: new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}$"),
|
|
24
|
+
ymdNumber: new RegExp("^[0-9]{8}$"),
|
|
25
|
+
ymdHisDash: new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$"),
|
|
26
|
+
ymdHisNumber: new RegExp("^[0-9]{14}$"),
|
|
26
27
|
};
|
|
27
28
|
// console.log('regexes.ymdHisDash.test(dateString) ',regexes.ymdHisDash.test(dateString));
|
|
28
29
|
// 20220412
|
|
@@ -34,12 +35,18 @@ const getDate = (props) => {
|
|
|
34
35
|
// Reset the date to the 1st initially at 1am
|
|
35
36
|
date.setUTCDate(1);
|
|
36
37
|
date.setUTCHours(1, 0, 0, 0);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
if (isUtc) {
|
|
39
|
+
date.setUTCFullYear(year);
|
|
40
|
+
date.setUTCMonth(month);
|
|
41
|
+
date.setUTCDate(day);
|
|
42
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
date.setFullYear(year);
|
|
46
|
+
date.setMonth(month);
|
|
47
|
+
date.setDate(day);
|
|
48
|
+
date.setHours(0, 0, 0, 0);
|
|
49
|
+
}
|
|
43
50
|
}
|
|
44
51
|
// 2022-04-12
|
|
45
52
|
else if (regexes.ymdDash.test(dateString)) {
|
|
@@ -47,21 +54,22 @@ const getDate = (props) => {
|
|
|
47
54
|
const month = Number(dateString.substring(5, 7)) - 1;
|
|
48
55
|
const day = Number(dateString.substring(8, 10));
|
|
49
56
|
date = new Date();
|
|
50
|
-
//
|
|
51
|
-
// Reset the date
|
|
52
|
-
date.setFullYear(year);
|
|
53
|
-
date.setUTCHours(1, 0, 0, 0);
|
|
54
|
-
date.setUTCMonth(0);
|
|
57
|
+
// Reset the date to the 1st initially at 1am
|
|
55
58
|
date.setUTCDate(1);
|
|
56
|
-
|
|
59
|
+
date.setUTCHours(1, 0, 0, 0);
|
|
57
60
|
// Finalise date
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
if (isUtc) {
|
|
62
|
+
date.setUTCFullYear(year);
|
|
63
|
+
date.setUTCMonth(month);
|
|
64
|
+
date.setUTCDate(day);
|
|
65
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
date.setFullYear(year);
|
|
69
|
+
date.setMonth(month);
|
|
70
|
+
date.setDate(day);
|
|
71
|
+
date.setHours(0, 0, 0, 0);
|
|
72
|
+
}
|
|
65
73
|
}
|
|
66
74
|
// 2022-04-12 01:01:01
|
|
67
75
|
else if (regexes.ymdHisDash.test(dateString)) {
|
|
@@ -75,12 +83,19 @@ const getDate = (props) => {
|
|
|
75
83
|
// Reset the date to the 1st initially at 1am
|
|
76
84
|
date.setUTCDate(1);
|
|
77
85
|
date.setUTCHours(1, 0, 0, 0);
|
|
78
|
-
date
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
86
|
+
// Finalise date
|
|
87
|
+
if (isUtc) {
|
|
88
|
+
date.setUTCFullYear(year);
|
|
89
|
+
date.setUTCMonth(month);
|
|
90
|
+
date.setUTCDate(day);
|
|
91
|
+
date.setUTCHours(hours, minutes, seconds);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
date.setFullYear(year);
|
|
95
|
+
date.setMonth(month);
|
|
96
|
+
date.setDate(day);
|
|
97
|
+
date.setHours(hours, minutes, seconds);
|
|
98
|
+
}
|
|
84
99
|
}
|
|
85
100
|
// 20220412010101
|
|
86
101
|
else if (regexes.ymdHisNumber.test(dateString)) {
|
|
@@ -94,32 +109,30 @@ const getDate = (props) => {
|
|
|
94
109
|
// Reset the date to the 1st initially at 1am
|
|
95
110
|
date.setUTCDate(1);
|
|
96
111
|
date.setUTCHours(1, 0, 0, 0);
|
|
97
|
-
date
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
112
|
+
// Finalise date
|
|
113
|
+
if (isUtc) {
|
|
114
|
+
date.setUTCFullYear(year);
|
|
115
|
+
date.setUTCMonth(month);
|
|
116
|
+
date.setUTCDate(day);
|
|
117
|
+
date.setUTCHours(hours, minutes, seconds);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
date.setFullYear(year);
|
|
121
|
+
date.setMonth(month);
|
|
122
|
+
date.setDate(day);
|
|
123
|
+
date.setHours(hours, minutes, seconds);
|
|
124
|
+
}
|
|
103
125
|
}
|
|
104
126
|
// Unsure date format, try anything
|
|
105
127
|
else {
|
|
106
128
|
date = new Date(dateString);
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
|
-
// console.log('date - before midnight', date);
|
|
110
|
-
// console.log('date', date.getTimezoneOffset());
|
|
111
131
|
// Reset to midnight
|
|
112
132
|
date = (0, getMidnight_1.default)({
|
|
113
133
|
input: date,
|
|
114
134
|
setMidnight: props?.setMidnight,
|
|
115
135
|
});
|
|
116
|
-
// console.log('date - after midnight', date);
|
|
117
|
-
// console.log(' props?.setTimeZone', props?.setTimeZone);
|
|
118
|
-
// Convert to timezone
|
|
119
|
-
date = (0, getTimeZoned_1.default)({
|
|
120
|
-
input: date,
|
|
121
|
-
setTimeZone: props?.setTimeZone,
|
|
122
|
-
});
|
|
123
136
|
return date;
|
|
124
137
|
};
|
|
125
138
|
exports.default = getDate;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { DateType } from
|
|
1
|
+
import { DateType } from "./date";
|
|
2
2
|
type GetDatesBetween = {
|
|
3
3
|
end: DateType;
|
|
4
4
|
start: DateType;
|
|
5
|
+
isUtc?: boolean;
|
|
5
6
|
};
|
|
6
7
|
/**
|
|
7
8
|
* Similar to date-fns' eachDayOfInterval, however the timezone messes this function up.
|
|
8
9
|
* https://date-fns.org/v2.28.0/docs/eachDayOfInterval
|
|
9
10
|
* https://www.gov.uk/when-do-the-clocks-change
|
|
10
11
|
*/
|
|
11
|
-
declare const getDatesBetween: (
|
|
12
|
+
declare const getDatesBetween: (props: GetDatesBetween) => Date[];
|
|
12
13
|
export default getDatesBetween;
|
package/date/getDatesBetween.js
CHANGED
|
@@ -12,23 +12,30 @@ const date_fns_2 = require("date-fns");
|
|
|
12
12
|
* https://date-fns.org/v2.28.0/docs/eachDayOfInterval
|
|
13
13
|
* https://www.gov.uk/when-do-the-clocks-change
|
|
14
14
|
*/
|
|
15
|
-
const getDatesBetween = (
|
|
15
|
+
const getDatesBetween = (props) => {
|
|
16
16
|
let response = [];
|
|
17
|
-
let endDate = (0, getDate_1.default)({
|
|
17
|
+
let endDate = (0, getDate_1.default)({
|
|
18
|
+
input: props.end,
|
|
19
|
+
isUtc: props.isUtc,
|
|
20
|
+
});
|
|
18
21
|
// Increase the end date by 2 hours so it can handle the change in hours
|
|
19
22
|
endDate = (0, date_fns_2.addHours)(endDate, 2);
|
|
20
23
|
// Use a string to ensure there's no changes with the timezone
|
|
21
|
-
let startString = (0, format_1.default)({
|
|
24
|
+
let startString = (0, format_1.default)({
|
|
25
|
+
input: props.start,
|
|
26
|
+
isUtc: props.isUtc,
|
|
27
|
+
});
|
|
22
28
|
// Create a pointer Date instance
|
|
23
|
-
let pointer = (0, getDate_1.default)({
|
|
29
|
+
let pointer = (0, getDate_1.default)({
|
|
30
|
+
input: startString,
|
|
31
|
+
isUtc: props.isUtc,
|
|
32
|
+
});
|
|
24
33
|
// While we before the end
|
|
25
34
|
while (pointer <= endDate) {
|
|
26
35
|
// We need to create a new date entry so its always set to 00:00:00
|
|
27
36
|
const entry = (0, getDate_1.default)({
|
|
28
|
-
input:
|
|
29
|
-
|
|
30
|
-
dateFormat: 'yyyy-MM-dd'
|
|
31
|
-
}),
|
|
37
|
+
input: pointer,
|
|
38
|
+
isUtc: props.isUtc,
|
|
32
39
|
setMidnight: true,
|
|
33
40
|
});
|
|
34
41
|
// Add this new entry to our response
|
|
@@ -5,5 +5,5 @@ type GetFinancialYearType = {
|
|
|
5
5
|
/**
|
|
6
6
|
* Get the current financial year.
|
|
7
7
|
*/
|
|
8
|
-
declare const getFinancialYear: (
|
|
8
|
+
declare const getFinancialYear: (props?: GetFinancialYearType) => FinancialYear;
|
|
9
9
|
export default getFinancialYear;
|
package/date/getFinancialYear.js
CHANGED
|
@@ -12,10 +12,10 @@ const getToday_1 = __importDefault(require("./getToday"));
|
|
|
12
12
|
/**
|
|
13
13
|
* Get the current financial year.
|
|
14
14
|
*/
|
|
15
|
-
const getFinancialYear = (
|
|
15
|
+
const getFinancialYear = (props = {}) => {
|
|
16
16
|
// Either use the current year or a specified year
|
|
17
|
-
let financialYear = year;
|
|
18
|
-
if (undefined === year) {
|
|
17
|
+
let financialYear = props.year;
|
|
18
|
+
if (undefined === props.year) {
|
|
19
19
|
// As this isn't provided by the suer, we want to ensure its London timezone
|
|
20
20
|
const today = (0, getToday_1.default)();
|
|
21
21
|
// If today is before 1st of April, then use last year
|
|
@@ -29,10 +29,16 @@ const getFinancialYear = ({ year } = { year: undefined }) => {
|
|
|
29
29
|
}
|
|
30
30
|
// The year-end needs to be 31st March next year
|
|
31
31
|
// We are specifying the date, so don't change the timezone
|
|
32
|
-
let yearEnd = (0, getDate_1.default)({
|
|
32
|
+
let yearEnd = (0, getDate_1.default)({
|
|
33
|
+
input: `${financialYear + 1}-03-31`,
|
|
34
|
+
isUtc: true,
|
|
35
|
+
});
|
|
33
36
|
// The year start needs to be 1st April this year
|
|
34
37
|
// We are specifying the date, so don't change the timezone
|
|
35
|
-
let yearStart = (0, getDate_1.default)({
|
|
38
|
+
let yearStart = (0, getDate_1.default)({
|
|
39
|
+
input: `${financialYear}-04-01`,
|
|
40
|
+
isUtc: true,
|
|
41
|
+
});
|
|
36
42
|
// Get the previous Monday if the 1st of April isn't a Monday
|
|
37
43
|
if (!(0, date_fns_1.isMonday)(yearStart)) {
|
|
38
44
|
yearStart = (0, date_fns_4.previousMonday)(yearStart);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FinancialYearWeekType } from
|
|
1
|
+
import { FinancialYearWeekType } from "./financialYearWeek";
|
|
2
2
|
type GetFinancialYearWeeks = {
|
|
3
3
|
year?: number;
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
6
6
|
* Get the current financial year.
|
|
7
7
|
*/
|
|
8
|
-
declare const getFinancialYearWeeks: (
|
|
8
|
+
declare const getFinancialYearWeeks: (props?: GetFinancialYearWeeks) => FinancialYearWeekType[];
|
|
9
9
|
export default getFinancialYearWeeks;
|
|
@@ -10,9 +10,13 @@ const getTimeZoned_1 = __importDefault(require("./getTimeZoned"));
|
|
|
10
10
|
/**
|
|
11
11
|
* Get the current financial year.
|
|
12
12
|
*/
|
|
13
|
-
const getFinancialYearWeeks = (
|
|
14
|
-
const financialYear = (0, getFinancialYear_1.default)({
|
|
15
|
-
|
|
13
|
+
const getFinancialYearWeeks = (props = {}) => {
|
|
14
|
+
const financialYear = (0, getFinancialYear_1.default)({
|
|
15
|
+
year: props.year
|
|
16
|
+
});
|
|
17
|
+
const weeks = (0, date_fns_2.eachWeekOfInterval)(financialYear, {
|
|
18
|
+
weekStartsOn: 1
|
|
19
|
+
});
|
|
16
20
|
let response = weeks.map((week, index) => {
|
|
17
21
|
let weekStart = new Date(week.getTime());
|
|
18
22
|
weekStart = (0, getTimeZoned_1.default)({ input: weekStart });
|
|
@@ -22,7 +26,7 @@ const getFinancialYearWeeks = ({ year } = { year: undefined }) => {
|
|
|
22
26
|
start: weekStart,
|
|
23
27
|
end: weekEnd,
|
|
24
28
|
financialWeek: (index + 1),
|
|
25
|
-
financialYear: year,
|
|
29
|
+
financialYear: props.year,
|
|
26
30
|
};
|
|
27
31
|
});
|
|
28
32
|
return response;
|
package/date/getLastWeek.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { GetMidnight } from
|
|
2
|
-
import { GetTimeZoned } from
|
|
3
|
-
import { Timeframe } from
|
|
1
|
+
import { GetMidnight } from "./getMidnight";
|
|
2
|
+
import { GetTimeZoned } from "./getTimeZoned";
|
|
3
|
+
import { Timeframe } from "./timeframe";
|
|
4
4
|
type GetLastWeek = GetTimeZoned & GetMidnight;
|
|
5
5
|
/**
|
|
6
6
|
* Return an object of start/end predefined date of Last Week.
|
package/date/getLastWeek.js
CHANGED
|
@@ -23,8 +23,12 @@ const getLastWeek = ({ setMidnight = true, setTimeZone = getTimeZoned_1.timeZone
|
|
|
23
23
|
setTimeZone,
|
|
24
24
|
});
|
|
25
25
|
return {
|
|
26
|
-
end: (0, getNumber_1.default)({
|
|
27
|
-
|
|
26
|
+
end: (0, getNumber_1.default)({
|
|
27
|
+
input: sunday
|
|
28
|
+
}),
|
|
29
|
+
start: (0, getNumber_1.default)({
|
|
30
|
+
input: monday
|
|
31
|
+
}),
|
|
28
32
|
};
|
|
29
33
|
};
|
|
30
34
|
exports.default = getLastWeek;
|
package/date/getMax.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DateType } from
|
|
2
|
-
import { GetMidnight } from
|
|
3
|
-
import { GetTimeZoned } from
|
|
1
|
+
import { DateType } from "./date";
|
|
2
|
+
import { GetMidnight } from "./getMidnight";
|
|
3
|
+
import { GetTimeZoned } from "./getTimeZoned";
|
|
4
4
|
type GetMax = GetTimeZoned & GetMidnight & {
|
|
5
5
|
input: DateType;
|
|
6
|
+
isUtc: boolean;
|
|
6
7
|
max: DateType;
|
|
7
8
|
};
|
|
8
9
|
/**
|
package/date/getMax.js
CHANGED
|
@@ -11,10 +11,12 @@ const getDate_1 = __importDefault(require("./getDate"));
|
|
|
11
11
|
const getMax = (props) => {
|
|
12
12
|
const parsedMax = (0, getDate_1.default)({
|
|
13
13
|
input: props.max,
|
|
14
|
+
isUtc: props.isUtc,
|
|
14
15
|
setMidnight: props?.setMidnight || true,
|
|
15
16
|
});
|
|
16
17
|
const parsedInput = (0, getDate_1.default)({
|
|
17
18
|
input: props.input,
|
|
19
|
+
isUtc: props.isUtc,
|
|
18
20
|
setMidnight: props?.setMidnight || true,
|
|
19
21
|
});
|
|
20
22
|
return (0, date_fns_1.isAfter)(parsedInput, parsedMax) ? parsedMax : parsedInput;
|
package/date/getMidnight.js
CHANGED
|
@@ -7,16 +7,6 @@ const getMidnight = (props) => {
|
|
|
7
7
|
let dateInstance = props.input;
|
|
8
8
|
if (true === props?.setMidnight) {
|
|
9
9
|
dateInstance.setUTCHours(0, 0, 0, 0);
|
|
10
|
-
/**
|
|
11
|
-
if (0 === dateInstance.getTimezoneOffset())
|
|
12
|
-
{
|
|
13
|
-
dateInstance.setUTCHours(0, 0, 0, 0);
|
|
14
|
-
}
|
|
15
|
-
else
|
|
16
|
-
{
|
|
17
|
-
dateInstance.setUTCHours(1, 0, 0, 0);
|
|
18
|
-
}
|
|
19
|
-
*/
|
|
20
10
|
}
|
|
21
11
|
return dateInstance;
|
|
22
12
|
};
|
package/date/getMin.d.ts
CHANGED
package/date/getMin.js
CHANGED
|
@@ -11,10 +11,12 @@ const getDate_1 = __importDefault(require("./getDate"));
|
|
|
11
11
|
const getMin = (props) => {
|
|
12
12
|
const parsedMin = (0, getDate_1.default)({
|
|
13
13
|
input: props.min,
|
|
14
|
+
isUtc: props.isUtc,
|
|
14
15
|
setMidnight: props?.setMidnight || true,
|
|
15
16
|
});
|
|
16
17
|
const parsedInput = (0, getDate_1.default)({
|
|
17
18
|
input: props.input,
|
|
19
|
+
isUtc: props.isUtc,
|
|
18
20
|
setMidnight: props?.setMidnight || true,
|
|
19
21
|
});
|
|
20
22
|
return (0, date_fns_1.isBefore)(parsedInput, parsedMin) ? parsedMin : parsedInput;
|
package/date/getMonday.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { GetMidnight } from './getMidnight';
|
|
|
3
3
|
import { GetTimeZoned } from './getTimeZoned';
|
|
4
4
|
type GetMonday = GetTimeZoned & GetMidnight & {
|
|
5
5
|
input?: DateType;
|
|
6
|
+
isUtc?: boolean;
|
|
6
7
|
weeksAgo: number;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
@@ -10,5 +11,5 @@ type GetMonday = GetTimeZoned & GetMidnight & {
|
|
|
10
11
|
* 0 weeksAgo - Tuesday (10th), return Monday (8th)
|
|
11
12
|
* 1 weeksAgo - Tuesday (10th), return Monday (1st)
|
|
12
13
|
*/
|
|
13
|
-
declare const getMonday: (
|
|
14
|
+
declare const getMonday: (props: GetMonday) => Date;
|
|
14
15
|
export default getMonday;
|
package/date/getMonday.js
CHANGED
|
@@ -14,13 +14,13 @@ const getToday_1 = __importDefault(require("./getToday"));
|
|
|
14
14
|
* 0 weeksAgo - Tuesday (10th), return Monday (8th)
|
|
15
15
|
* 1 weeksAgo - Tuesday (10th), return Monday (1st)
|
|
16
16
|
*/
|
|
17
|
-
const getMonday = (
|
|
17
|
+
const getMonday = (props) => {
|
|
18
18
|
let dateInstance;
|
|
19
|
-
if (input) {
|
|
19
|
+
if (props?.input) {
|
|
20
20
|
dateInstance = (0, getDate_1.default)({
|
|
21
|
-
input,
|
|
21
|
+
input: props.input,
|
|
22
|
+
isUtc: props.isUtc,
|
|
22
23
|
setMidnight: false,
|
|
23
|
-
setTimeZone
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
@@ -37,11 +37,11 @@ const getMonday = ({ weeksAgo, input, setMidnight = true, setTimeZone = false })
|
|
|
37
37
|
dateInstance = (0, date_fns_3.subDays)(dateInstance, isoDay - 1);
|
|
38
38
|
}
|
|
39
39
|
// Move it back a given number of weeks
|
|
40
|
-
dateInstance = (0, date_fns_3.subDays)(dateInstance, 7 * weeksAgo);
|
|
40
|
+
dateInstance = (0, date_fns_3.subDays)(dateInstance, 7 * props.weeksAgo);
|
|
41
41
|
// console.log('dateInstance', dateInstance);
|
|
42
42
|
dateInstance = (0, getMidnight_1.default)({
|
|
43
43
|
input: dateInstance,
|
|
44
|
-
setMidnight
|
|
44
|
+
setMidnight: props.setMidnight,
|
|
45
45
|
});
|
|
46
46
|
return dateInstance;
|
|
47
47
|
};
|
package/date/getNumber.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { GetTimeZoned } from './getTimeZoned';
|
|
4
|
-
type GetNumber = GetTimeZoned & GetMidnight & {
|
|
5
|
-
input: DateType;
|
|
6
|
-
};
|
|
1
|
+
import { GetDate } from "./getDate";
|
|
2
|
+
type GetNumber = GetDate;
|
|
7
3
|
/**
|
|
8
4
|
* Convert a (number | string | Date) into a YYYYMMDD number.
|
|
9
5
|
*/
|
|
10
|
-
declare const getNumber: (
|
|
6
|
+
declare const getNumber: (props: GetNumber) => number;
|
|
11
7
|
export default getNumber;
|
package/date/getNumber.js
CHANGED
|
@@ -8,12 +8,13 @@ const getDate_1 = __importDefault(require("./getDate"));
|
|
|
8
8
|
/**
|
|
9
9
|
* Convert a (number | string | Date) into a YYYYMMDD number.
|
|
10
10
|
*/
|
|
11
|
-
const getNumber = (
|
|
11
|
+
const getNumber = (props) => {
|
|
12
12
|
let date = (0, getDate_1.default)({
|
|
13
|
-
input,
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
input: props.input,
|
|
14
|
+
isUtc: props.isUtc,
|
|
15
|
+
setMidnight: props.setMidnight,
|
|
16
|
+
setTimeZone: props.setTimeZone,
|
|
16
17
|
});
|
|
17
|
-
return Number((0, date_fns_1.format)(date,
|
|
18
|
+
return Number((0, date_fns_1.format)(date, "yyyyMMdd"));
|
|
18
19
|
};
|
|
19
20
|
exports.default = getNumber;
|
package/date/getSunday.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DateType } from
|
|
2
|
-
import { GetMidnight } from
|
|
3
|
-
import { GetTimeZoned } from
|
|
1
|
+
import { DateType } from "./date";
|
|
2
|
+
import { GetMidnight } from "./getMidnight";
|
|
3
|
+
import { GetTimeZoned } from "./getTimeZoned";
|
|
4
4
|
type GetSunday = GetTimeZoned & GetMidnight & {
|
|
5
5
|
input?: DateType;
|
|
6
|
+
isUtc?: boolean;
|
|
6
7
|
weeksAgo: number;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
@@ -10,5 +11,5 @@ type GetSunday = GetTimeZoned & GetMidnight & {
|
|
|
10
11
|
* 0 weeksAgo - Tuesday (17th), return Sunday (14th)
|
|
11
12
|
* 1 weeksAgo - Tuesday (17th), return Monday (7th)
|
|
12
13
|
*/
|
|
13
|
-
declare const getSunday: (
|
|
14
|
+
declare const getSunday: (props: GetSunday) => Date;
|
|
14
15
|
export default getSunday;
|
package/date/getSunday.js
CHANGED
|
@@ -13,14 +13,21 @@ const getToday_1 = __importDefault(require("./getToday"));
|
|
|
13
13
|
* 0 weeksAgo - Tuesday (17th), return Sunday (14th)
|
|
14
14
|
* 1 weeksAgo - Tuesday (17th), return Monday (7th)
|
|
15
15
|
*/
|
|
16
|
-
const getSunday = (
|
|
16
|
+
const getSunday = (props) => {
|
|
17
17
|
let dateInstance;
|
|
18
|
-
if (input) {
|
|
19
|
-
dateInstance = (0, getDate_1.default)({
|
|
18
|
+
if (props?.input) {
|
|
19
|
+
dateInstance = (0, getDate_1.default)({
|
|
20
|
+
input: props.input,
|
|
21
|
+
isUtc: props.isUtc,
|
|
22
|
+
setMidnight: props.setMidnight,
|
|
23
|
+
setTimeZone: props.setTimeZone,
|
|
24
|
+
});
|
|
20
25
|
}
|
|
21
26
|
else {
|
|
22
27
|
// As we are getting today's date we don't want to convert this timezone
|
|
23
|
-
dateInstance = (0, getToday_1.default)({
|
|
28
|
+
dateInstance = (0, getToday_1.default)({
|
|
29
|
+
setTimeZone: props.setTimeZone,
|
|
30
|
+
});
|
|
24
31
|
}
|
|
25
32
|
if (!(0, date_fns_2.isSunday)(dateInstance)) {
|
|
26
33
|
// Get the ISO Day of week (Monday - 1 to Sunday - 7)
|
|
@@ -29,7 +36,7 @@ const getSunday = ({ weeksAgo, input, setMidnight = true, setTimeZone = false })
|
|
|
29
36
|
dateInstance = (0, date_fns_3.subDays)(dateInstance, isoDay);
|
|
30
37
|
}
|
|
31
38
|
// Move it back a given number of weeks
|
|
32
|
-
dateInstance = (0, date_fns_3.subDays)(dateInstance, 7 * weeksAgo);
|
|
39
|
+
dateInstance = (0, date_fns_3.subDays)(dateInstance, 7 * props.weeksAgo);
|
|
33
40
|
return dateInstance;
|
|
34
41
|
};
|
|
35
42
|
exports.default = getSunday;
|
package/date/getThisWeek.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { GetMidnight } from
|
|
2
|
-
import { GetTimeZoned } from
|
|
3
|
-
import { Timeframe } from
|
|
1
|
+
import { GetMidnight } from "./getMidnight";
|
|
2
|
+
import { GetTimeZoned } from "./getTimeZoned";
|
|
3
|
+
import { Timeframe } from "./timeframe";
|
|
4
4
|
type GetThisWeek = GetTimeZoned & GetMidnight;
|
|
5
5
|
/**
|
|
6
6
|
* Return an object of start/end predefined date of This Week.
|
package/date/getThisWeek.js
CHANGED
|
@@ -23,8 +23,14 @@ const getThisWeek = ({ setMidnight = true, setTimeZone = getTimeZoned_1.timeZone
|
|
|
23
23
|
setTimeZone,
|
|
24
24
|
});
|
|
25
25
|
return {
|
|
26
|
-
end: (0, getNumber_1.default)({
|
|
27
|
-
|
|
26
|
+
end: (0, getNumber_1.default)({
|
|
27
|
+
input: sunday,
|
|
28
|
+
isUtc: true,
|
|
29
|
+
}),
|
|
30
|
+
start: (0, getNumber_1.default)({
|
|
31
|
+
input: monday,
|
|
32
|
+
isUtc: true,
|
|
33
|
+
}),
|
|
28
34
|
};
|
|
29
35
|
};
|
|
30
36
|
exports.default = getThisWeek;
|
package/date/getTodayYmd.js
CHANGED
|
@@ -12,7 +12,8 @@ const getTodayYmd = () => {
|
|
|
12
12
|
const today = (0, getToday_1.default)({ setMidnight: false });
|
|
13
13
|
const todayYmd = (0, format_1.default)({
|
|
14
14
|
input: today,
|
|
15
|
-
|
|
15
|
+
isUtc: true,
|
|
16
|
+
dateFormat: "yyyy-MM-dd",
|
|
16
17
|
setMidnight: false,
|
|
17
18
|
});
|
|
18
19
|
return todayYmd;
|
package/date/getTodayYmdhis.js
CHANGED
package/date/getTwoWeeksAgo.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { GetMidnight } from
|
|
2
|
-
import { GetTimeZoned } from
|
|
3
|
-
import { Timeframe } from
|
|
1
|
+
import { GetMidnight } from "./getMidnight";
|
|
2
|
+
import { GetTimeZoned } from "./getTimeZoned";
|
|
3
|
+
import { Timeframe } from "./timeframe";
|
|
4
4
|
type GetTwoWeeksAgo = GetTimeZoned & GetMidnight;
|
|
5
5
|
/**
|
|
6
6
|
* Return an object of start/end predefined date of Two Weeks Ago.
|
package/date/getTwoWeeksAgo.js
CHANGED
|
@@ -23,8 +23,14 @@ const getTwoWeeksAgo = ({ setMidnight = true, setTimeZone = getTimeZoned_1.timeZ
|
|
|
23
23
|
setTimeZone,
|
|
24
24
|
});
|
|
25
25
|
return {
|
|
26
|
-
end: (0, getNumber_1.default)({
|
|
27
|
-
|
|
26
|
+
end: (0, getNumber_1.default)({
|
|
27
|
+
input: sunday,
|
|
28
|
+
isUtc: true,
|
|
29
|
+
}),
|
|
30
|
+
start: (0, getNumber_1.default)({
|
|
31
|
+
input: monday,
|
|
32
|
+
isUtc: true,
|
|
33
|
+
}),
|
|
28
34
|
};
|
|
29
35
|
};
|
|
30
36
|
exports.default = getTwoWeeksAgo;
|
package/date/getWeeksAgo.d.ts
CHANGED
|
@@ -2,11 +2,12 @@ import { DateType } from './date';
|
|
|
2
2
|
import { GetTimeZoned } from './getTimeZoned';
|
|
3
3
|
type GetWeeksAgo = GetTimeZoned & {
|
|
4
4
|
input: DateType;
|
|
5
|
+
isUtc: boolean;
|
|
5
6
|
weeksAgo: number;
|
|
6
7
|
setMidnight?: boolean;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
9
10
|
* From a given input, move the date back X weeksAgo
|
|
10
11
|
*/
|
|
11
|
-
declare const getWeeksAgo: ({ input, weeksAgo, setMidnight, setTimeZone }: GetWeeksAgo) => number;
|
|
12
|
+
declare const getWeeksAgo: ({ input, isUtc, weeksAgo, setMidnight, setTimeZone }: GetWeeksAgo) => number;
|
|
12
13
|
export default getWeeksAgo;
|
package/date/getWeeksAgo.js
CHANGED
|
@@ -9,13 +9,17 @@ const getNumber_1 = __importDefault(require("./getNumber"));
|
|
|
9
9
|
/**
|
|
10
10
|
* From a given input, move the date back X weeksAgo
|
|
11
11
|
*/
|
|
12
|
-
const getWeeksAgo = ({ input, weeksAgo = 0, setMidnight = true, setTimeZone = false }) => {
|
|
12
|
+
const getWeeksAgo = ({ input, isUtc, weeksAgo = 0, setMidnight = true, setTimeZone = false }) => {
|
|
13
13
|
let dateInstance = (0, getDate_1.default)({
|
|
14
14
|
input,
|
|
15
|
+
isUtc,
|
|
15
16
|
setMidnight,
|
|
16
17
|
setTimeZone
|
|
17
18
|
});
|
|
18
19
|
dateInstance = (0, date_fns_1.sub)(dateInstance, { weeks: weeksAgo });
|
|
19
|
-
return (0, getNumber_1.default)({
|
|
20
|
+
return (0, getNumber_1.default)({
|
|
21
|
+
input: dateInstance,
|
|
22
|
+
isUtc,
|
|
23
|
+
});
|
|
20
24
|
};
|
|
21
25
|
exports.default = getWeeksAgo;
|