@8ms/helpers 1.1.39 → 1.1.42
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/dist/date/format.js +5 -1
- package/dist/date/getDate.d.ts +1 -1
- package/dist/date/getDate.js +16 -9
- package/dist/date/getDatesBetween.d.ts +10 -0
- package/dist/date/getDatesBetween.js +28 -0
- package/dist/date/getTimeZoned.d.ts +1 -1
- package/dist/date/getTimeZoned.js +16 -1
- package/dist/date/index.d.ts +2 -1
- package/dist/date/index.js +3 -1
- package/package.json +9 -9
package/dist/date/format.js
CHANGED
|
@@ -11,7 +11,11 @@ var getDate_1 = __importDefault(require("./getDate"));
|
|
|
11
11
|
*/
|
|
12
12
|
var format = function (_a) {
|
|
13
13
|
var input = _a.input, dateFormat = _a.dateFormat, _b = _a.setMidnight, setMidnight = _b === void 0 ? true : _b, _c = _a.setTimeZone, setTimeZone = _c === void 0 ? false : _c;
|
|
14
|
-
var dateInstance = (0, getDate_1.default)({
|
|
14
|
+
var dateInstance = (0, getDate_1.default)({
|
|
15
|
+
input: input,
|
|
16
|
+
setMidnight: setMidnight,
|
|
17
|
+
setTimeZone: setTimeZone,
|
|
18
|
+
});
|
|
15
19
|
return (0, format_1.default)(dateInstance, dateFormat || 'yyyy-MM-dd');
|
|
16
20
|
};
|
|
17
21
|
exports.default = format;
|
package/dist/date/getDate.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ declare type GetDateType = GetTimeZonedType & GetMidnightType & {
|
|
|
8
8
|
* Convert a (number | string | Date) into a Date object.
|
|
9
9
|
* As the user would be providing the input we don't want to change the timezone typically.
|
|
10
10
|
*/
|
|
11
|
-
declare const getDate: ({ input, setMidnight, setTimeZone }: GetDateType) => Date;
|
|
11
|
+
declare const getDate: ({ input, setMidnight, setTimeZone, }: GetDateType) => Date;
|
|
12
12
|
export default getDate;
|
package/dist/date/getDate.js
CHANGED
|
@@ -45,38 +45,45 @@ var getDate = function (_a) {
|
|
|
45
45
|
// 20220412
|
|
46
46
|
if (8 === dateString.length) {
|
|
47
47
|
var year = Number(dateString.substring(0, 4));
|
|
48
|
-
var month = Number(dateString.substring(4, 6));
|
|
48
|
+
var month = Number(dateString.substring(4, 6)) - 1;
|
|
49
49
|
var day = Number(dateString.substring(6, 8));
|
|
50
50
|
date = new Date();
|
|
51
|
+
// Reset the date to the 1st initially at 1am
|
|
52
|
+
date.setDate(1);
|
|
53
|
+
date.setHours(1, 0, 0, 0);
|
|
51
54
|
date.setFullYear(year);
|
|
52
|
-
date.setMonth(month
|
|
55
|
+
date.setMonth(month);
|
|
53
56
|
date.setDate(day);
|
|
54
|
-
date.setHours(1, 0, 0, 0);
|
|
55
57
|
}
|
|
56
58
|
// 2022-04-12
|
|
57
59
|
else if (10 === dateString.length) {
|
|
58
60
|
var year = Number(dateString.substring(0, 4));
|
|
59
|
-
var month = Number(dateString.substring(5, 7));
|
|
61
|
+
var month = Number(dateString.substring(5, 7)) - 1;
|
|
60
62
|
var day = Number(dateString.substring(8, 10));
|
|
61
63
|
date = new Date();
|
|
64
|
+
// Reset the date to the 1st initially at 1am
|
|
65
|
+
date.setDate(1);
|
|
66
|
+
date.setHours(1, 0, 0, 0);
|
|
62
67
|
date.setFullYear(year);
|
|
63
|
-
date.setMonth(month
|
|
68
|
+
date.setMonth(month);
|
|
64
69
|
date.setDate(day);
|
|
65
|
-
date.setHours(1, 0, 0, 0);
|
|
66
70
|
}
|
|
67
71
|
// 2022-04-12 01:01:01
|
|
68
72
|
else if (19 === dateString.length) {
|
|
69
73
|
var year = Number(dateString.substring(0, 4));
|
|
70
|
-
var month = Number(dateString.substring(5, 7));
|
|
74
|
+
var month = Number(dateString.substring(5, 7)) - 1;
|
|
71
75
|
var day = Number(dateString.substring(8, 10));
|
|
72
76
|
var hours = Number(dateString.substring(11, 13));
|
|
73
77
|
var minutes = Number(dateString.substring(14, 16));
|
|
74
78
|
var seconds = Number(dateString.substring(17, 19));
|
|
75
79
|
date = new Date();
|
|
80
|
+
// Reset the date to the 1st initially at 1am
|
|
81
|
+
date.setDate(1);
|
|
82
|
+
date.setHours(1, 0, 0, 0);
|
|
76
83
|
date.setFullYear(year);
|
|
77
|
-
date.setMonth(month
|
|
84
|
+
date.setMonth(month);
|
|
78
85
|
date.setDate(day);
|
|
79
|
-
date.setHours(hours, minutes, seconds
|
|
86
|
+
date.setHours(hours, minutes, seconds);
|
|
80
87
|
}
|
|
81
88
|
// Unsure date format, try anything
|
|
82
89
|
else {
|
|
@@ -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;
|
|
@@ -7,7 +7,7 @@ export declare const timeZoneLondon = "Europe/London";
|
|
|
7
7
|
* We can't use getDate here as it becomes a circular issue.
|
|
8
8
|
* Returns a new Date instance.
|
|
9
9
|
*/
|
|
10
|
-
declare const getTimeZoned: ({ input, setTimeZone }: GetTimeZonedType & {
|
|
10
|
+
declare const getTimeZoned: ({ input, setTimeZone, }: GetTimeZonedType & {
|
|
11
11
|
input: Date;
|
|
12
12
|
}) => Date;
|
|
13
13
|
export default getTimeZoned;
|
|
@@ -16,7 +16,22 @@ var getTimeZoned = function (_a) {
|
|
|
16
16
|
var input = _a.input, _b = _a.setTimeZone, setTimeZone = _b === void 0 ? exports.timeZoneLondon : _b;
|
|
17
17
|
var dateInstance = input;
|
|
18
18
|
if (setTimeZone) {
|
|
19
|
-
|
|
19
|
+
// Cannot convert YYYY-MM-DD into new Date as Safari doesn't support this
|
|
20
|
+
var dateString = (0, date_fns_tz_1.formatInTimeZone)(dateInstance, setTimeZone, 'yyyy-MM-dd HH:mm:ss');
|
|
21
|
+
var year = Number(dateString.substring(0, 4));
|
|
22
|
+
var month = Number(dateString.substring(5, 7)) - 1;
|
|
23
|
+
var day = Number(dateString.substring(8, 10));
|
|
24
|
+
var hours = Number(dateString.substring(11, 13));
|
|
25
|
+
var minutes = Number(dateString.substring(14, 16));
|
|
26
|
+
var seconds = Number(dateString.substring(17, 19));
|
|
27
|
+
dateInstance = new Date();
|
|
28
|
+
// Reset the date to the 1st initially at 1am
|
|
29
|
+
dateInstance.setDate(1);
|
|
30
|
+
dateInstance.setHours(1, 0, 0, 0);
|
|
31
|
+
dateInstance.setFullYear(year);
|
|
32
|
+
dateInstance.setMonth(month);
|
|
33
|
+
dateInstance.setDate(day);
|
|
34
|
+
dateInstance.setHours(hours, minutes, seconds);
|
|
20
35
|
// Fixes the timezone offset due to daylight savings
|
|
21
36
|
dateInstance = (0, addMinutes_1.default)(dateInstance, dateInstance.getTimezoneOffset() * -1);
|
|
22
37
|
}
|
package/dist/date/index.d.ts
CHANGED
|
@@ -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, };
|
package/dist/date/index.js
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "1.1.42",
|
|
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.
|
|
22
|
-
"@babel/preset-flow": "7.
|
|
23
|
-
"@babel/preset-typescript": "7.
|
|
24
|
-
"@types/jest": "27.5.
|
|
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.
|
|
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": "
|
|
31
|
-
"ts-node": "10.
|
|
30
|
+
"timezone-mock": "1.3.2",
|
|
31
|
+
"ts-node": "10.8.0",
|
|
32
32
|
"tslib": "2.4.0",
|
|
33
|
-
"typescript": "4.
|
|
33
|
+
"typescript": "4.7.2"
|
|
34
34
|
}
|
|
35
35
|
}
|