@ancon/wildcat-utils 1.7.0 → 1.8.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/api/getEndpointWithVersion.cjs +1 -0
- package/{dist/api → api}/getEndpointWithVersion.d.ts +0 -0
- package/api/getEndpointWithVersion.js +6 -0
- package/api/getUrlAndParams.cjs +1 -0
- package/{dist/api → api}/getUrlAndParams.d.ts +0 -0
- package/api/getUrlAndParams.js +23 -0
- package/api/index.cjs +1 -0
- package/{dist/api → api}/index.d.ts +0 -2
- package/api/index.js +6 -0
- package/color/brighten.cjs +1 -0
- package/{dist/color → color}/brighten.d.ts +0 -0
- package/color/brighten.js +7 -0
- package/color/darken.cjs +1 -0
- package/{dist/color → color}/darken.d.ts +0 -0
- package/color/darken.js +7 -0
- package/color/index.cjs +1 -0
- package/{dist/color → color}/index.d.ts +0 -0
- package/color/index.js +9 -0
- package/color/lighten.cjs +1 -0
- package/{dist/color → color}/lighten.d.ts +0 -0
- package/color/lighten.js +7 -0
- package/index.cjs +1 -0
- package/{dist/index.d.ts → index.d.ts} +0 -0
- package/index.js +32 -0
- package/outlet/getListOutletOpeningHoursTable.cjs +1 -0
- package/{dist/outlet → outlet}/getListOutletOpeningHoursTable.d.ts +0 -0
- package/outlet/getListOutletOpeningHoursTable.js +172 -0
- package/outlet/index.cjs +1 -0
- package/{dist/outlet → outlet}/index.d.ts +0 -0
- package/outlet/index.js +8 -0
- package/outlet/types.cjs +1 -0
- package/{dist/outlet → outlet}/types.d.ts +0 -0
- package/outlet/types.js +1 -0
- package/package.json +85 -100
- package/shared/enums.cjs +1 -0
- package/{dist/shared → shared}/enums.d.ts +0 -0
- package/shared/enums.js +7 -0
- package/shared/generateId.cjs +1 -0
- package/{dist/shared → shared}/generateId.d.ts +0 -0
- package/shared/generateId.js +7 -0
- package/shared/index.cjs +1 -0
- package/{dist/shared → shared}/index.d.ts +0 -0
- package/shared/index.js +11 -0
- package/shared/isWithinFlag.cjs +1 -0
- package/{dist/shared → shared}/isWithinFlag.d.ts +0 -0
- package/shared/isWithinFlag.js +6 -0
- package/string/index.cjs +1 -0
- package/{dist/string → string}/index.d.ts +0 -0
- package/string/index.js +4 -0
- package/string/slugify.cjs +1 -0
- package/{dist/string → string}/slugify.d.ts +0 -0
- package/string/slugify.js +6 -0
- package/versioning/cleanVersionString.cjs +1 -0
- package/{dist/versioning → versioning}/cleanVersionString.d.ts +0 -0
- package/versioning/cleanVersionString.js +7 -0
- package/versioning/index.cjs +1 -0
- package/{dist/versioning → versioning}/index.d.ts +0 -0
- package/versioning/index.js +7 -0
- package/versioning/isVersionALessThanB.cjs +1 -0
- package/{dist/versioning → versioning}/isVersionALessThanB.d.ts +0 -0
- package/versioning/isVersionALessThanB.js +9 -0
- package/dist/api/getEndpointWithVersion.js +0 -12
- package/dist/api/getUrlAndParams.js +0 -37
- package/dist/api/index.js +0 -11
- package/dist/color/brighten.js +0 -17
- package/dist/color/darken.js +0 -17
- package/dist/color/index.js +0 -12
- package/dist/color/lighten.js +0 -17
- package/dist/index.js +0 -18
- package/dist/outlet/getListOutletOpeningHoursTable.js +0 -211
- package/dist/outlet/index.js +0 -8
- package/dist/outlet/types.js +0 -2
- package/dist/shared/enums.js +0 -31
- package/dist/shared/generateId.js +0 -7
- package/dist/shared/index.js +0 -15
- package/dist/shared/isWithinFlag.js +0 -6
- package/dist/string/index.js +0 -8
- package/dist/string/slugify.js +0 -15
- package/dist/versioning/cleanVersionString.js +0 -12
- package/dist/versioning/index.js +0 -10
- package/dist/versioning/isVersionALessThanB.js +0 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function a(e,r){return e.toLocaleLowerCase(r).replace(/[åäæ]/g,"a").replace(/[öø]/g,"o").replace(/[é]/g,"e").replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}module.exports=a;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function s(r){const e=r.toLowerCase().split("-")[0];return e.charAt(0)==="v"?e.substring(1):e}module.exports=s;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./isVersionALessThanB.cjs"),i=require("./cleanVersionString.cjs");require("compare-versions");exports.isVersionALessThanB=e;exports.cleanVersionString=i;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const i=require("compare-versions"),e=require("./cleanVersionString.cjs");function c(n,r){const s=e(n),o=e(r);return i.compare(s,o,"<")}module.exports=c;
|
|
File without changes
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* Get a versioned endpoint URL
|
|
5
|
-
* @param endpoint Endpoint URL (ie "someEndpoint/{someId}")
|
|
6
|
-
* @param version Endpoint version (ie 1.1)
|
|
7
|
-
* @returns Versioned endpoint (ie "v1.1/someEndpoint/{someId}")
|
|
8
|
-
*/
|
|
9
|
-
function getEndpointWithVersion(endpoint, version = 1.0) {
|
|
10
|
-
return `v${version.toFixed(1)}/${endpoint}`;
|
|
11
|
-
}
|
|
12
|
-
exports.default = getEndpointWithVersion;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const URL_PARAM_EXP = /(\/{.+?})/g;
|
|
4
|
-
const BRACES_EXP = /[/{}]/g;
|
|
5
|
-
/**
|
|
6
|
-
* Get an object with URL and query parameters.
|
|
7
|
-
* If the queryParams object contains keys found in the URL string,
|
|
8
|
-
* those will be inserted into the new URL string and removed from the new params object.
|
|
9
|
-
* @param url URL
|
|
10
|
-
* @param queryParams Query parameters object
|
|
11
|
-
* @returns An object containing the URL and parameters
|
|
12
|
-
*/
|
|
13
|
-
function getUrlAndParams(url, queryParams) {
|
|
14
|
-
const fallback = { url, params: queryParams !== null && queryParams !== void 0 ? queryParams : {} };
|
|
15
|
-
if (!queryParams)
|
|
16
|
-
return fallback;
|
|
17
|
-
const urlParamTemplates = url.match(URL_PARAM_EXP);
|
|
18
|
-
if (urlParamTemplates === null || urlParamTemplates === void 0 ? void 0 : urlParamTemplates.length) {
|
|
19
|
-
return urlParamTemplates.reduce((acc, paramTemplate) => {
|
|
20
|
-
const paramName = paramTemplate.replace(BRACES_EXP, '');
|
|
21
|
-
const paramValue = queryParams[paramName];
|
|
22
|
-
if (!paramValue) {
|
|
23
|
-
acc.params[paramName] = queryParams[paramName];
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
delete acc.params[paramName];
|
|
27
|
-
acc.url = acc.url.replace(new RegExp(paramTemplate, 'g'), `/${paramValue}`);
|
|
28
|
-
}
|
|
29
|
-
return acc;
|
|
30
|
-
}, {
|
|
31
|
-
url,
|
|
32
|
-
params: Object.assign({}, queryParams),
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
return fallback;
|
|
36
|
-
}
|
|
37
|
-
exports.default = getUrlAndParams;
|
package/dist/api/index.js
DELETED
|
@@ -1,11 +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
|
-
exports.getEndpointWithVersion = exports.getUrlAndParams = void 0;
|
|
7
|
-
const getUrlAndParams_1 = __importDefault(require("./getUrlAndParams"));
|
|
8
|
-
exports.getUrlAndParams = getUrlAndParams_1.default;
|
|
9
|
-
const getEndpointWithVersion_1 = __importDefault(require("./getEndpointWithVersion"));
|
|
10
|
-
exports.getEndpointWithVersion = getEndpointWithVersion_1.default;
|
|
11
|
-
exports.default = {};
|
package/dist/color/brighten.js
DELETED
|
@@ -1,17 +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
|
-
const tinycolor2_1 = __importDefault(require("tinycolor2"));
|
|
7
|
-
/**
|
|
8
|
-
* Brighten the HEX color a given amount.
|
|
9
|
-
*
|
|
10
|
-
* @param hex - The color HEX code
|
|
11
|
-
* @param amount - The amount to brighten by. The valid range is 0 to 100. Default value: 10.
|
|
12
|
-
* @returns The brightened HEX color code
|
|
13
|
-
*/
|
|
14
|
-
function brighten(hex, amount) {
|
|
15
|
-
return (0, tinycolor2_1.default)(hex).brighten(amount).toString();
|
|
16
|
-
}
|
|
17
|
-
exports.default = brighten;
|
package/dist/color/darken.js
DELETED
|
@@ -1,17 +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
|
-
const tinycolor2_1 = __importDefault(require("tinycolor2"));
|
|
7
|
-
/**
|
|
8
|
-
* Darken the color a given amount. Providing 100 will always return black.
|
|
9
|
-
*
|
|
10
|
-
* @param hex - The color HEX code
|
|
11
|
-
* @param amount - The amount to darken by. The valid range is 0 to 100. Default value: 10.
|
|
12
|
-
* @returns The darkened HEX color code
|
|
13
|
-
*/
|
|
14
|
-
function darken(hex, amount) {
|
|
15
|
-
return (0, tinycolor2_1.default)(hex).darken(amount).toString();
|
|
16
|
-
}
|
|
17
|
-
exports.default = darken;
|
package/dist/color/index.js
DELETED
|
@@ -1,12 +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
|
-
exports.darken = exports.brighten = exports.lighten = void 0;
|
|
7
|
-
const lighten_1 = __importDefault(require("./lighten"));
|
|
8
|
-
exports.lighten = lighten_1.default;
|
|
9
|
-
const brighten_1 = __importDefault(require("./brighten"));
|
|
10
|
-
exports.brighten = brighten_1.default;
|
|
11
|
-
const darken_1 = __importDefault(require("./darken"));
|
|
12
|
-
exports.darken = darken_1.default;
|
package/dist/color/lighten.js
DELETED
|
@@ -1,17 +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
|
-
const tinycolor2_1 = __importDefault(require("tinycolor2"));
|
|
7
|
-
/**
|
|
8
|
-
* Lighten the given hex color a given amount. Providing 100 will always return white.
|
|
9
|
-
*
|
|
10
|
-
* @param hex - The color HEX code
|
|
11
|
-
* @param amount - The amount to lighten by. The valid range is 0 to 100. Default value: 10.
|
|
12
|
-
* @returns The lightened HEX color
|
|
13
|
-
*/
|
|
14
|
-
function lighten(hex, amount) {
|
|
15
|
-
return (0, tinycolor2_1.default)(hex).lighten(amount).toString();
|
|
16
|
-
}
|
|
17
|
-
exports.default = lighten;
|
package/dist/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./shared"), exports);
|
|
14
|
-
__exportStar(require("./outlet"), exports);
|
|
15
|
-
__exportStar(require("./versioning"), exports);
|
|
16
|
-
__exportStar(require("./api"), exports);
|
|
17
|
-
__exportStar(require("./string"), exports);
|
|
18
|
-
__exportStar(require("./color"), exports);
|
|
@@ -1,211 +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
|
-
const moment_1 = __importDefault(require("moment"));
|
|
7
|
-
const enums_1 = require("../shared/enums");
|
|
8
|
-
const shared_1 = require("../shared");
|
|
9
|
-
const ORDER_FORMATS = [
|
|
10
|
-
{ id: enums_1.OrderFormat.EatIn, name: 'eatIn' },
|
|
11
|
-
{ id: enums_1.OrderFormat.Takeaway, name: 'takeaway' },
|
|
12
|
-
{ id: enums_1.OrderFormat.TableOrder, name: 'tableOrder' },
|
|
13
|
-
{ id: enums_1.OrderFormat.Delivery, name: 'delivery' },
|
|
14
|
-
];
|
|
15
|
-
function generateWeekFromToday(nowISOString) {
|
|
16
|
-
const today = moment_1.default.utc(nowISOString).subtract(1, 'day').startOf('day');
|
|
17
|
-
const result = [];
|
|
18
|
-
for (let i = 0, current = today; i < 7; i += 1) {
|
|
19
|
-
current = current.clone().add(1, 'day').startOf('day');
|
|
20
|
-
result.push(current.clone());
|
|
21
|
-
}
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
function sortByIsoWeekday(moments) {
|
|
25
|
-
return [...moments].sort((a, b) => a.isoWeekday() - b.isoWeekday());
|
|
26
|
-
}
|
|
27
|
-
function getIntervalTimestampAsNumbers(timestamp) {
|
|
28
|
-
return timestamp.split(':').map(Number);
|
|
29
|
-
}
|
|
30
|
-
function formatInterval(interval, weekdayMoment) {
|
|
31
|
-
const [startHour, startMinute] = getIntervalTimestampAsNumbers(interval.start);
|
|
32
|
-
const [durationHour, durationMinute] = getIntervalTimestampAsNumbers(interval.duration);
|
|
33
|
-
if (interval.type === enums_1.IntervalType.Interval) {
|
|
34
|
-
const startMoment = weekdayMoment
|
|
35
|
-
.clone()
|
|
36
|
-
.add(startHour, 'hour')
|
|
37
|
-
.add(startMinute, 'minute');
|
|
38
|
-
const endMoment = startMoment
|
|
39
|
-
.clone()
|
|
40
|
-
.add(durationHour, 'hour')
|
|
41
|
-
.add(durationMinute, 'minute');
|
|
42
|
-
return {
|
|
43
|
-
id: interval.id,
|
|
44
|
-
start: startMoment.toISOString(),
|
|
45
|
-
end: endMoment.toISOString(),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
if (interval.type === enums_1.IntervalType.Exception) {
|
|
49
|
-
const fromDateMoment = (0, moment_1.default)(interval.fromDate);
|
|
50
|
-
const toDateMoment = (0, moment_1.default)(interval.toDate);
|
|
51
|
-
if (weekdayMoment.isBetween(fromDateMoment, toDateMoment, undefined, '[]')) {
|
|
52
|
-
const startMoment = weekdayMoment
|
|
53
|
-
.clone()
|
|
54
|
-
.add(startHour, 'hour')
|
|
55
|
-
.add(startMinute, 'minute');
|
|
56
|
-
const endMoment = startMoment
|
|
57
|
-
.clone()
|
|
58
|
-
.add(durationHour, 'hour')
|
|
59
|
-
.add(durationMinute, 'minute');
|
|
60
|
-
return {
|
|
61
|
-
id: interval.id,
|
|
62
|
-
start: startMoment.toISOString(),
|
|
63
|
-
end: endMoment.toISOString(),
|
|
64
|
-
reason: interval.reason,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
throw new Error('Invalid interval type');
|
|
70
|
-
}
|
|
71
|
-
function collectReadableInterval(interval, week, collector) {
|
|
72
|
-
var _a;
|
|
73
|
-
const weekdayIsoMap = {
|
|
74
|
-
[enums_1.DayOfWeek.Monday]: 1,
|
|
75
|
-
[enums_1.DayOfWeek.Tuesday]: 2,
|
|
76
|
-
[enums_1.DayOfWeek.Wednesday]: 3,
|
|
77
|
-
[enums_1.DayOfWeek.Thursday]: 4,
|
|
78
|
-
[enums_1.DayOfWeek.Friday]: 5,
|
|
79
|
-
[enums_1.DayOfWeek.Saturday]: 6,
|
|
80
|
-
[enums_1.DayOfWeek.Sunday]: 7,
|
|
81
|
-
};
|
|
82
|
-
for (let i = 0; i < week.length; i += 1) {
|
|
83
|
-
const weekdayMoment = week[i];
|
|
84
|
-
const momentIsoWeekday = weekdayMoment.isoWeekday();
|
|
85
|
-
const intervalWeekdayEnum = interval.dayOfWeek;
|
|
86
|
-
const intervalIsoWeekday = (_a = weekdayIsoMap[intervalWeekdayEnum]) !== null && _a !== void 0 ? _a : null;
|
|
87
|
-
const intervalIsApplicableToday = intervalIsoWeekday === momentIsoWeekday ||
|
|
88
|
-
intervalWeekdayEnum === enums_1.DayOfWeek.Everyday;
|
|
89
|
-
if (!collector[momentIsoWeekday]) {
|
|
90
|
-
// eslint-disable-next-line no-param-reassign
|
|
91
|
-
collector[momentIsoWeekday] = {
|
|
92
|
-
isoWeekday: momentIsoWeekday,
|
|
93
|
-
key: '',
|
|
94
|
-
open: [],
|
|
95
|
-
adjusted: [],
|
|
96
|
-
closed: [],
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
if (intervalIsApplicableToday) {
|
|
100
|
-
const formattedInterval = formatInterval(interval, weekdayMoment);
|
|
101
|
-
if (formattedInterval) {
|
|
102
|
-
// eslint-disable-next-line no-param-reassign
|
|
103
|
-
collector[momentIsoWeekday].key += formattedInterval.id;
|
|
104
|
-
if (interval.type === enums_1.IntervalType.Interval &&
|
|
105
|
-
interval.state === enums_1.IntervalState.Open) {
|
|
106
|
-
collector[momentIsoWeekday].open.push(formattedInterval);
|
|
107
|
-
}
|
|
108
|
-
else if (interval.type === enums_1.IntervalType.Interval &&
|
|
109
|
-
interval.state === enums_1.IntervalState.Closed) {
|
|
110
|
-
collector[momentIsoWeekday].closed.push(formattedInterval);
|
|
111
|
-
}
|
|
112
|
-
else if (interval.type === enums_1.IntervalType.Exception &&
|
|
113
|
-
interval.state === enums_1.IntervalState.Open) {
|
|
114
|
-
collector[momentIsoWeekday].adjusted.push(formattedInterval);
|
|
115
|
-
}
|
|
116
|
-
else if (interval.type === enums_1.IntervalType.Exception &&
|
|
117
|
-
interval.state === enums_1.IntervalState.Closed) {
|
|
118
|
-
collector[momentIsoWeekday].closed.push(formattedInterval);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function generateIntervalId(interval) {
|
|
125
|
-
switch (interval.type) {
|
|
126
|
-
case enums_1.IntervalType.Exception:
|
|
127
|
-
return (0, shared_1.generateId)('interval-exception');
|
|
128
|
-
case enums_1.IntervalType.Interval:
|
|
129
|
-
return (0, shared_1.generateId)('interval-normal');
|
|
130
|
-
default:
|
|
131
|
-
return (0, shared_1.generateId)('interval-unknown');
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function splitServiceDateTimes(serviceDateTimes) {
|
|
135
|
-
const flattenedMap = serviceDateTimes.reduce((acc, serviceDateTime) => {
|
|
136
|
-
ORDER_FORMATS.forEach(readableOrderFormat => {
|
|
137
|
-
if ((0, shared_1.isWithinFlag)(readableOrderFormat.id, serviceDateTime.orderFormats)) {
|
|
138
|
-
if (!acc[readableOrderFormat.id]) {
|
|
139
|
-
acc[readableOrderFormat.id] = {
|
|
140
|
-
orderFormat: readableOrderFormat,
|
|
141
|
-
intervals: [],
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
acc[readableOrderFormat.id].intervals.push(...serviceDateTime.intervals.sort((a, b) => a.dayOfWeek - b.dayOfWeek));
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
return acc;
|
|
148
|
-
}, {});
|
|
149
|
-
return Object.values(flattenedMap);
|
|
150
|
-
}
|
|
151
|
-
function mergeDuplicateOpeningHours(tables) {
|
|
152
|
-
return tables.reduce((acc, table, index) => {
|
|
153
|
-
const duplicateIndex = acc.findIndex((otherTable) => otherTable !== table &&
|
|
154
|
-
!otherTable.orderFormats.some(otherOrderFormat => table.orderFormats.some(orderFormat => orderFormat.id === otherOrderFormat.id)) &&
|
|
155
|
-
otherTable.openingHours.every(openingHours => table.openingHours.some(o => o.key === openingHours.key)) &&
|
|
156
|
-
table.openingHours.every(openingHours => otherTable.openingHours.some(o => o.key === openingHours.key)));
|
|
157
|
-
if (duplicateIndex >= 0) {
|
|
158
|
-
const duplicate = acc[duplicateIndex];
|
|
159
|
-
acc.splice(duplicateIndex, 1, Object.assign(Object.assign({}, duplicate), { orderFormats: [...table.orderFormats, ...duplicate.orderFormats] }));
|
|
160
|
-
acc.splice(index, 1);
|
|
161
|
-
return acc;
|
|
162
|
-
}
|
|
163
|
-
return acc;
|
|
164
|
-
}, [...tables]);
|
|
165
|
-
}
|
|
166
|
-
function identifyIntervals(serviceDateTimes) {
|
|
167
|
-
return serviceDateTimes.map(serviceDateTime => (Object.assign(Object.assign({}, serviceDateTime), { intervals: serviceDateTime.intervals.map(interval => (Object.assign(Object.assign({}, interval), { id: generateIntervalId(interval) }))) })));
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Get an array of opening hours divided by order formats
|
|
171
|
-
* @param outlet Outlet from nearby endpoint
|
|
172
|
-
* @param nowISOString Optional ISO date string of current datetime
|
|
173
|
-
* @returns Opening hours table
|
|
174
|
-
*/
|
|
175
|
-
function getListOutletOpeningHoursTable(outlet, nowISOString) {
|
|
176
|
-
// Split service date times into one array for each order format
|
|
177
|
-
const splittedServiceDateTimes = splitServiceDateTimes(identifyIntervals(outlet.serviceDateTimes));
|
|
178
|
-
// Get next 7 days including today
|
|
179
|
-
const generatedWeekFromToday = generateWeekFromToday(nowISOString);
|
|
180
|
-
// Sort days by ISO weekday (Monday first)
|
|
181
|
-
const sortedWeek = sortByIsoWeekday(generatedWeekFromToday);
|
|
182
|
-
const intervalsOrderFormatMap = splittedServiceDateTimes.reduce((acc, serviceDateTime) => {
|
|
183
|
-
if (!acc[serviceDateTime.orderFormat.id]) {
|
|
184
|
-
acc[serviceDateTime.orderFormat.id] = {};
|
|
185
|
-
}
|
|
186
|
-
serviceDateTime.intervals.reduce((intervalsAcc, interval) => {
|
|
187
|
-
collectReadableInterval(interval, sortedWeek, intervalsAcc);
|
|
188
|
-
return intervalsAcc;
|
|
189
|
-
}, acc[serviceDateTime.orderFormat.id]);
|
|
190
|
-
return acc;
|
|
191
|
-
}, {});
|
|
192
|
-
const readableOrderFormatMap = {
|
|
193
|
-
[enums_1.OrderFormat.EatIn]: ORDER_FORMATS[0],
|
|
194
|
-
[enums_1.OrderFormat.Takeaway]: ORDER_FORMATS[1],
|
|
195
|
-
[enums_1.OrderFormat.TableOrder]: ORDER_FORMATS[2],
|
|
196
|
-
[enums_1.OrderFormat.Delivery]: ORDER_FORMATS[3],
|
|
197
|
-
};
|
|
198
|
-
const openingHoursTable = Object.entries(intervalsOrderFormatMap).map(([orderFormatId, intervals]) => ({
|
|
199
|
-
orderFormats: [readableOrderFormatMap[Number(orderFormatId)]],
|
|
200
|
-
openingHours: Object.entries(intervals).map(([isoWeekday, readableInterval]) => ({
|
|
201
|
-
isoWeekday: Number(isoWeekday),
|
|
202
|
-
key: readableInterval.key,
|
|
203
|
-
open: readableInterval.open.sort((a, b) => a.start.localeCompare(b.start)),
|
|
204
|
-
adjusted: readableInterval.adjusted.sort((a, b) => a.start.localeCompare(b.start)),
|
|
205
|
-
closed: readableInterval.closed.sort((a, b) => a.start.localeCompare(b.start)),
|
|
206
|
-
})),
|
|
207
|
-
}));
|
|
208
|
-
const mergedOpeningHours = mergeDuplicateOpeningHours(openingHoursTable);
|
|
209
|
-
return mergedOpeningHours.sort((a, b) => a.orderFormats[0].id - b.orderFormats[0].id);
|
|
210
|
-
}
|
|
211
|
-
exports.default = getListOutletOpeningHoursTable;
|
package/dist/outlet/index.js
DELETED
|
@@ -1,8 +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
|
-
exports.getListOutletOpeningHoursTable = void 0;
|
|
7
|
-
var getListOutletOpeningHoursTable_1 = require("./getListOutletOpeningHoursTable");
|
|
8
|
-
Object.defineProperty(exports, "getListOutletOpeningHoursTable", { enumerable: true, get: function () { return __importDefault(getListOutletOpeningHoursTable_1).default; } });
|
package/dist/outlet/types.js
DELETED
package/dist/shared/enums.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IntervalType = exports.IntervalState = exports.DayOfWeek = exports.OrderFormat = void 0;
|
|
4
|
-
var OrderFormat;
|
|
5
|
-
(function (OrderFormat) {
|
|
6
|
-
OrderFormat[OrderFormat["EatIn"] = 1] = "EatIn";
|
|
7
|
-
OrderFormat[OrderFormat["Takeaway"] = 2] = "Takeaway";
|
|
8
|
-
OrderFormat[OrderFormat["TableOrder"] = 4] = "TableOrder";
|
|
9
|
-
OrderFormat[OrderFormat["Delivery"] = 8] = "Delivery";
|
|
10
|
-
})(OrderFormat = exports.OrderFormat || (exports.OrderFormat = {}));
|
|
11
|
-
var DayOfWeek;
|
|
12
|
-
(function (DayOfWeek) {
|
|
13
|
-
DayOfWeek[DayOfWeek["Monday"] = 1] = "Monday";
|
|
14
|
-
DayOfWeek[DayOfWeek["Tuesday"] = 2] = "Tuesday";
|
|
15
|
-
DayOfWeek[DayOfWeek["Wednesday"] = 4] = "Wednesday";
|
|
16
|
-
DayOfWeek[DayOfWeek["Thursday"] = 8] = "Thursday";
|
|
17
|
-
DayOfWeek[DayOfWeek["Friday"] = 16] = "Friday";
|
|
18
|
-
DayOfWeek[DayOfWeek["Saturday"] = 32] = "Saturday";
|
|
19
|
-
DayOfWeek[DayOfWeek["Sunday"] = 64] = "Sunday";
|
|
20
|
-
DayOfWeek[DayOfWeek["Everyday"] = 127] = "Everyday";
|
|
21
|
-
})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));
|
|
22
|
-
var IntervalState;
|
|
23
|
-
(function (IntervalState) {
|
|
24
|
-
IntervalState[IntervalState["Open"] = 0] = "Open";
|
|
25
|
-
IntervalState[IntervalState["Closed"] = 1] = "Closed";
|
|
26
|
-
})(IntervalState = exports.IntervalState || (exports.IntervalState = {}));
|
|
27
|
-
var IntervalType;
|
|
28
|
-
(function (IntervalType) {
|
|
29
|
-
IntervalType[IntervalType["Interval"] = 0] = "Interval";
|
|
30
|
-
IntervalType[IntervalType["Exception"] = 1] = "Exception";
|
|
31
|
-
})(IntervalType = exports.IntervalType || (exports.IntervalType = {}));
|
package/dist/shared/index.js
DELETED
|
@@ -1,15 +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
|
-
exports.generateId = exports.isWithinFlag = exports.OrderFormat = exports.IntervalType = exports.DayOfWeek = exports.IntervalState = void 0;
|
|
7
|
-
var enums_1 = require("./enums");
|
|
8
|
-
Object.defineProperty(exports, "IntervalState", { enumerable: true, get: function () { return enums_1.IntervalState; } });
|
|
9
|
-
Object.defineProperty(exports, "DayOfWeek", { enumerable: true, get: function () { return enums_1.DayOfWeek; } });
|
|
10
|
-
Object.defineProperty(exports, "IntervalType", { enumerable: true, get: function () { return enums_1.IntervalType; } });
|
|
11
|
-
Object.defineProperty(exports, "OrderFormat", { enumerable: true, get: function () { return enums_1.OrderFormat; } });
|
|
12
|
-
var isWithinFlag_1 = require("./isWithinFlag");
|
|
13
|
-
Object.defineProperty(exports, "isWithinFlag", { enumerable: true, get: function () { return __importDefault(isWithinFlag_1).default; } });
|
|
14
|
-
var generateId_1 = require("./generateId");
|
|
15
|
-
Object.defineProperty(exports, "generateId", { enumerable: true, get: function () { return __importDefault(generateId_1).default; } });
|
package/dist/string/index.js
DELETED
|
@@ -1,8 +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
|
-
exports.slugify = void 0;
|
|
7
|
-
const slugify_1 = __importDefault(require("./slugify"));
|
|
8
|
-
exports.slugify = slugify_1.default;
|
package/dist/string/slugify.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function slugify(str, locales) {
|
|
4
|
-
return str
|
|
5
|
-
.toLocaleLowerCase(locales)
|
|
6
|
-
.replace(/[åäæ]/g, 'a') // Replace å, ä and æ with a
|
|
7
|
-
.replace(/[öø]/g, 'o') // Replace ö and ø with o
|
|
8
|
-
.replace(/[é]/g, 'e') // Replace é with e
|
|
9
|
-
.replace(/\s+/g, '-') // Replace spaces with -
|
|
10
|
-
.replace(/[^\w-]+/g, '') // Remove all non-word chars
|
|
11
|
-
.replace(/--+/g, '-') // Replace multiple - with single -
|
|
12
|
-
.replace(/^-+/, '') // Trim - from start of text
|
|
13
|
-
.replace(/-+$/, ''); // Trim - from end of text
|
|
14
|
-
}
|
|
15
|
-
exports.default = slugify;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function cleanVersionString(version) {
|
|
4
|
-
// Transform to lowercase
|
|
5
|
-
const lowercase = version.toLowerCase();
|
|
6
|
-
// Remove anything after `-` for example -beta.2
|
|
7
|
-
const versionPart = lowercase.split('-')[0];
|
|
8
|
-
// Remove starting `v` if needed
|
|
9
|
-
const removedV = versionPart.charAt(0) === 'v' ? versionPart.substring(1) : versionPart;
|
|
10
|
-
return removedV;
|
|
11
|
-
}
|
|
12
|
-
exports.default = cleanVersionString;
|
package/dist/versioning/index.js
DELETED
|
@@ -1,10 +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
|
-
exports.cleanVersionString = exports.isVersionALessThanB = void 0;
|
|
7
|
-
var isVersionALessThanB_1 = require("./isVersionALessThanB");
|
|
8
|
-
Object.defineProperty(exports, "isVersionALessThanB", { enumerable: true, get: function () { return __importDefault(isVersionALessThanB_1).default; } });
|
|
9
|
-
var cleanVersionString_1 = require("./cleanVersionString");
|
|
10
|
-
Object.defineProperty(exports, "cleanVersionString", { enumerable: true, get: function () { return __importDefault(cleanVersionString_1).default; } });
|
|
@@ -1,13 +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
|
-
const compare_versions_1 = __importDefault(require("compare-versions"));
|
|
7
|
-
const cleanVersionString_1 = __importDefault(require("./cleanVersionString"));
|
|
8
|
-
function isVersionALessThanB(versionA, versionB) {
|
|
9
|
-
const cleanedVersionA = (0, cleanVersionString_1.default)(versionA);
|
|
10
|
-
const cleanedVersionB = (0, cleanVersionString_1.default)(versionB);
|
|
11
|
-
return compare_versions_1.default.compare(cleanedVersionA, cleanedVersionB, '<');
|
|
12
|
-
}
|
|
13
|
-
exports.default = isVersionALessThanB;
|