@sellout/utils 0.0.58 → 0.0.59
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/IPStack.js +1 -0
- package/.dist/IPStack.js.map +1 -1
- package/.dist/ReduxUtil.d.ts +1 -0
- package/.dist/ReduxUtil.js +11 -0
- package/.dist/ReduxUtil.js.map +1 -0
- package/.dist/UrlUtil.d.ts +4 -0
- package/.dist/UrlUtil.js +33 -0
- package/.dist/UrlUtil.js.map +1 -0
- package/.dist/percentage.d.ts +1 -0
- package/.dist/percentage.js +23 -0
- package/.dist/percentage.js.map +1 -0
- package/.dist/price.d.ts +3 -1
- package/.dist/price.js +37 -5
- package/.dist/price.js.map +1 -1
- package/.dist/time.d.ts +12 -0
- package/.dist/time.js +48 -1
- package/.dist/time.js.map +1 -1
- package/package.json +4 -4
- package/src/IPStack.ts +1 -0
- package/src/ReduxUtil.ts +7 -0
- package/src/UrlUtil.ts +38 -0
- package/src/percentage.ts +21 -0
- package/src/price.ts +48 -5
- package/src/time.ts +58 -0
package/.dist/IPStack.js
CHANGED
|
@@ -16,6 +16,7 @@ function gecodeIPAddress(ipAddress) {
|
|
|
16
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
17
|
// Return mock data for load testing
|
|
18
18
|
if (env_1.LOAD_TEST_ENABLED) {
|
|
19
|
+
console.log('LOAD_TEST_ENABLED=true');
|
|
19
20
|
return {
|
|
20
21
|
city: 'Polson',
|
|
21
22
|
region_code: 'MT',
|
package/.dist/IPStack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPStack.js","sourceRoot":"","sources":["../src/IPStack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAkD;AAClD,+BAGe;AAEf,SAAsB,eAAe,CAAC,SAAS;;QAC7C,oCAAoC;QACpC,IAAG,uBAAiB,EAAE;YACpB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,OAAO;gBACZ,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,QAAQ;aACpB,CAAC;SACH;QAED,MAAM,GAAG,GAAG,0BAA0B,SAAS,eAAe,sBAAgB,EAAE,CAAC;QACjF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;CAAA;
|
|
1
|
+
{"version":3,"file":"IPStack.js","sourceRoot":"","sources":["../src/IPStack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAkD;AAClD,+BAGe;AAEf,SAAsB,eAAe,CAAC,SAAS;;QAC7C,oCAAoC;QACpC,IAAG,uBAAiB,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,OAAO;gBACZ,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,QAAQ;aACpB,CAAC;SACH;QAED,MAAM,GAAG,GAAG,0BAA0B,SAAS,eAAe,sBAAgB,EAAE,CAAC;QACjF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;CAAA;AAlBD,0CAkBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function makeCache(items: any[], key: string, start: any): any;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeCache = void 0;
|
|
4
|
+
function makeCache(items, key, start) {
|
|
5
|
+
return items.reduce((cur, item) => {
|
|
6
|
+
cur[item[key]] = item;
|
|
7
|
+
return cur;
|
|
8
|
+
}, Object.assign({}, start));
|
|
9
|
+
}
|
|
10
|
+
exports.makeCache = makeCache;
|
|
11
|
+
//# sourceMappingURL=ReduxUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReduxUtil.js","sourceRoot":"","sources":["../src/ReduxUtil.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,KAAY,EAAE,GAAW,EAAE,KAAU;IAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,OAAO,GAAG,CAAC;IACZ,CAAC,oBAAM,KAAK,EAAE,CAAC;AACjB,CAAC;AALF,8BAKE"}
|
package/.dist/UrlUtil.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setQueryString = exports.parse = void 0;
|
|
4
|
+
const url = require("url");
|
|
5
|
+
function parse(inputUrl) {
|
|
6
|
+
return url.parse(inputUrl, true);
|
|
7
|
+
}
|
|
8
|
+
exports.parse = parse;
|
|
9
|
+
function setQueryString(paramObj, replaceState = false, clearExisting = false) {
|
|
10
|
+
const { query } = url.parse(window.location.href, true);
|
|
11
|
+
let newParams = Object.assign(Object.assign({}, query), paramObj);
|
|
12
|
+
if (clearExisting) {
|
|
13
|
+
newParams = Object.assign({}, paramObj);
|
|
14
|
+
}
|
|
15
|
+
let queryString = Object.keys(newParams)
|
|
16
|
+
.map((key) => {
|
|
17
|
+
return (newParams[key]) ? `${key}=${newParams[key]}` : null;
|
|
18
|
+
})
|
|
19
|
+
.filter(item => !!item)
|
|
20
|
+
.join('&');
|
|
21
|
+
if (queryString)
|
|
22
|
+
queryString = '?' + queryString;
|
|
23
|
+
const newUrl = `${window.location.protocol}//${window.location.host}${window.location.pathname}${queryString}`;
|
|
24
|
+
if (replaceState && window.history.replaceState) {
|
|
25
|
+
window.history.replaceState({ path: newUrl }, '', newUrl);
|
|
26
|
+
}
|
|
27
|
+
else if (window.history.pushState) {
|
|
28
|
+
window.history.pushState({ path: newUrl }, '', newUrl);
|
|
29
|
+
}
|
|
30
|
+
return newUrl;
|
|
31
|
+
}
|
|
32
|
+
exports.setQueryString = setQueryString;
|
|
33
|
+
//# sourceMappingURL=UrlUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlUtil.js","sourceRoot":"","sources":["../src/UrlUtil.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAE3B,SAAgB,KAAK,CAAC,QAAgB;IACpC,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAFD,sBAEC;AAED,SAAgB,cAAc,CAAC,QAAa,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK;IACvF,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAExD,IAAI,SAAS,mCACR,KAAK,GACL,QAAQ,CACZ,CAAC;IAEF,IAAI,aAAa,EAAE;QACjB,SAAS,qBACJ,QAAQ,CACZ,CAAC;KACH;IAED,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACrC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAG,WAAW;QAAE,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC;IAEhD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/G,IAAI,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;QAC/C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;KAC3D;SAAM,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;QACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;KACxD;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA/BD,wCA+BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function input(percentage: any): any;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.input = void 0;
|
|
4
|
+
const lastChar = string => string.toString().charAt(string.length - 1);
|
|
5
|
+
function input(percentage) {
|
|
6
|
+
percentage = percentage.toString().replace(/\s/g, '');
|
|
7
|
+
if (!percentage)
|
|
8
|
+
percentage = 0;
|
|
9
|
+
if (Number.isNaN(percentage))
|
|
10
|
+
return 0;
|
|
11
|
+
if (percentage.toString().length > 1 && percentage.toString().charAt(0) === '0') {
|
|
12
|
+
const value = parseFloat(percentage.substring(1));
|
|
13
|
+
if (Number.isNaN(value))
|
|
14
|
+
return 0;
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
if (lastChar(percentage) === '.') {
|
|
18
|
+
return percentage;
|
|
19
|
+
}
|
|
20
|
+
return parseFloat(percentage);
|
|
21
|
+
}
|
|
22
|
+
exports.input = input;
|
|
23
|
+
//# sourceMappingURL=percentage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"percentage.js","sourceRoot":"","sources":["../src/percentage.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvE,SAAgB,KAAK,CAAC,UAAU;IAC9B,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU;QAAE,UAAU,GAAG,CAAC,CAAC;IAEhC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;QAChC,OAAO,UAAU,CAAC;KACnB;IAED,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAlBD,sBAkBC"}
|
package/.dist/price.d.ts
CHANGED
package/.dist/price.js
CHANGED
|
@@ -1,9 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.output = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
exports.format = exports.output = exports.input = void 0;
|
|
4
|
+
// I know this sucks, I'm sorry. You can re-write it, but
|
|
5
|
+
// make sure you test it thoroughly.
|
|
6
|
+
exports.input = (price) => {
|
|
7
|
+
price = price.replace(/[^0-9.]/g, '');
|
|
8
|
+
if (price.indexOf('.') > -1) {
|
|
9
|
+
let [first, second] = price.toString().split('.');
|
|
10
|
+
second = second.replace(/[^0-9]/g, '');
|
|
11
|
+
price = `${first}.${second}`;
|
|
12
|
+
}
|
|
13
|
+
if (price.toString().split('')[price.length - 1] === '.') {
|
|
14
|
+
return price;
|
|
15
|
+
}
|
|
16
|
+
if (price.toString().split('')[price.length - 1] === '0'
|
|
17
|
+
&& price.toString().split('')[price.length - 2] === '.') {
|
|
18
|
+
price = parseInt(price);
|
|
19
|
+
}
|
|
20
|
+
if (Number.isNaN(price) || Number.isNaN(price))
|
|
21
|
+
return 0;
|
|
22
|
+
return price * 100;
|
|
23
|
+
};
|
|
24
|
+
exports.output = (price, withFixed = false) => {
|
|
25
|
+
if (price.toString().split('')[price.length - 1] === '.') {
|
|
26
|
+
return price;
|
|
27
|
+
}
|
|
28
|
+
if (withFixed) {
|
|
29
|
+
price /= 100;
|
|
30
|
+
return price.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
|
|
31
|
+
}
|
|
32
|
+
return price / 100;
|
|
33
|
+
};
|
|
34
|
+
exports.format = (price) => {
|
|
35
|
+
const value = parseFloat(price.replace(/,/g, ''))
|
|
36
|
+
.toFixed(2)
|
|
37
|
+
.toString()
|
|
38
|
+
.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
39
|
+
return parseFloat(value).toFixed(2);
|
|
8
40
|
};
|
|
9
41
|
//# sourceMappingURL=price.js.map
|
package/.dist/price.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,oCAAoC;AACvB,QAAA,KAAK,GAAG,CAAC,KAAU,EAAE,EAAE;IAClC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEvC,KAAK,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;KAC9B;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;WAClD,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QAC1D,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEzD,OAAO,KAAK,GAAG,GAAG,CAAC;AACrB,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,CAAC,KAAU,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE;IACtD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,SAAS,EAAE;QACb,KAAK,IAAI,GAAG,CAAC;QACb,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;KACnE;IAED,OAAO,KAAK,GAAG,GAAG,CAAC;AACrB,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC9C,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,EAAE;SACV,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAEzC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC"}
|
package/.dist/time.d.ts
CHANGED
|
@@ -15,3 +15,15 @@ export declare const date: (seconds?: number | undefined) => Date;
|
|
|
15
15
|
export declare const fromDate: (millis: number | string) => number;
|
|
16
16
|
export declare const format: (secondsSinceEpoch: any, format?: string, timezone?: string) => string;
|
|
17
17
|
export declare const formatTimeOfDay: (secondsSinceEpoch: any, timezone?: string | undefined) => string;
|
|
18
|
+
export declare const formattedCountDown: (startTime: number, endTime: number) => string;
|
|
19
|
+
export declare const getStartOfHour: (seconds: number) => number;
|
|
20
|
+
export declare const getStartOfDay: (seconds: number) => number;
|
|
21
|
+
export declare const getStartOfWeek: (seconds: number) => number;
|
|
22
|
+
export declare const getStartOfMonth: (seconds: number) => number;
|
|
23
|
+
export declare const getStartOfYear: (seconds: number) => number;
|
|
24
|
+
export declare const getStartOfCurrentDay: () => number;
|
|
25
|
+
export declare const getStartOfCurrentMonth: () => number;
|
|
26
|
+
export declare const getStartOfCurrentYear: () => number;
|
|
27
|
+
export declare const getEndOfCurrentDay: () => number;
|
|
28
|
+
export declare const getEndOfCurrentMonth: () => number;
|
|
29
|
+
export declare const getEndOfCurrentYear: () => number;
|
package/.dist/time.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatTimeOfDay = exports.format = exports.fromDate = exports.date = exports.fromStartOfDay = exports.fromNow = exports.now = exports.MILLISECONDS = exports.DAY = exports.HOUR = exports.MINUTE = exports.SECOND = void 0;
|
|
3
|
+
exports.getEndOfCurrentYear = exports.getEndOfCurrentMonth = exports.getEndOfCurrentDay = exports.getStartOfCurrentYear = exports.getStartOfCurrentMonth = exports.getStartOfCurrentDay = exports.getStartOfYear = exports.getStartOfMonth = exports.getStartOfWeek = exports.getStartOfDay = exports.getStartOfHour = exports.formattedCountDown = exports.formatTimeOfDay = exports.format = exports.fromDate = exports.date = exports.fromStartOfDay = exports.fromNow = exports.now = exports.MILLISECONDS = exports.DAY = exports.HOUR = exports.MINUTE = exports.SECOND = void 0;
|
|
4
4
|
const moment = require("moment-timezone");
|
|
5
5
|
exports.SECOND = 1;
|
|
6
6
|
exports.MINUTE = 60 * exports.SECOND;
|
|
@@ -45,4 +45,51 @@ exports.format = function (secondsSinceEpoch, format = 'M/DD/YYYY h:mma', timezo
|
|
|
45
45
|
exports.formatTimeOfDay = function (secondsSinceEpoch, timezone) {
|
|
46
46
|
return exports.format(secondsSinceEpoch, 'h:mma', timezone);
|
|
47
47
|
};
|
|
48
|
+
exports.formattedCountDown = (startTime, endTime) => {
|
|
49
|
+
const totalSeconds = endTime - startTime;
|
|
50
|
+
const days = Math.floor(totalSeconds / 86400);
|
|
51
|
+
const hours = Math.floor((totalSeconds % 86400) / 3600);
|
|
52
|
+
const minutes = Math.floor(((totalSeconds % 86400) % 3600) / 60);
|
|
53
|
+
const seconds = Math.floor((((totalSeconds % 86400) % 3600) % 60));
|
|
54
|
+
if (days === 0)
|
|
55
|
+
return `${hours}h ${minutes}m ${seconds}s`;
|
|
56
|
+
if (hours === 0 && days === 0)
|
|
57
|
+
return `${minutes}m ${seconds}s`;
|
|
58
|
+
if (minutes === 0 && hours === 0 && days === 0)
|
|
59
|
+
return `${seconds}s`;
|
|
60
|
+
return `${days}d ${hours}h ${minutes}m ${seconds}s`;
|
|
61
|
+
};
|
|
62
|
+
exports.getStartOfHour = (seconds) => {
|
|
63
|
+
return moment(seconds * 1000).startOf("hour").unix();
|
|
64
|
+
};
|
|
65
|
+
exports.getStartOfDay = (seconds) => {
|
|
66
|
+
return moment(seconds * 1000).startOf("day").unix();
|
|
67
|
+
};
|
|
68
|
+
exports.getStartOfWeek = (seconds) => {
|
|
69
|
+
return moment(seconds * 1000).startOf("week").unix();
|
|
70
|
+
};
|
|
71
|
+
exports.getStartOfMonth = (seconds) => {
|
|
72
|
+
return moment(seconds * 1000).startOf("month").unix();
|
|
73
|
+
};
|
|
74
|
+
exports.getStartOfYear = (seconds) => {
|
|
75
|
+
return moment(seconds * 1000).startOf("year").unix();
|
|
76
|
+
};
|
|
77
|
+
exports.getStartOfCurrentDay = () => {
|
|
78
|
+
return moment().startOf("day").unix();
|
|
79
|
+
};
|
|
80
|
+
exports.getStartOfCurrentMonth = () => {
|
|
81
|
+
return moment().startOf("month").unix();
|
|
82
|
+
};
|
|
83
|
+
exports.getStartOfCurrentYear = () => {
|
|
84
|
+
return moment().startOf("year").unix();
|
|
85
|
+
};
|
|
86
|
+
exports.getEndOfCurrentDay = () => {
|
|
87
|
+
return moment().endOf("day").unix();
|
|
88
|
+
};
|
|
89
|
+
exports.getEndOfCurrentMonth = () => {
|
|
90
|
+
return moment().endOf("month").unix();
|
|
91
|
+
};
|
|
92
|
+
exports.getEndOfCurrentYear = () => {
|
|
93
|
+
return moment().endOf("year").unix();
|
|
94
|
+
};
|
|
48
95
|
//# sourceMappingURL=time.js.map
|
package/.dist/time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE7B,QAAA,MAAM,GAAG,CAAC,CAAC;AACX,QAAA,MAAM,GAAG,EAAE,GAAG,cAAM,CAAC;AACrB,QAAA,IAAI,GAAG,EAAE,GAAG,cAAM,CAAC;AACnB,QAAA,GAAG,GAAG,EAAE,GAAG,YAAI,CAAC;AAEhB,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE;IACxB,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE;IACtB,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE;CACpB,CAAC;AAEF,SAAgB,GAAG;IACjB,OAAO,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAFD,kBAEC;AAAA,CAAC;AAEF,SAAgB,OAAO,CAAC,OAAO;IAC7B,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC;AACzB,CAAC;AAFD,0BAEC;AAED,SAAgB,cAAc,CAAC,OAAe;IAC3C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;AAC3C,CAAC;AAHD,wCAGC;AAEY,QAAA,IAAI,GAAG,UAAS,OAAgB;IAC3C,IAAG,CAAC,OAAO;QAAE,OAAO,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAA;AAEY,QAAA,QAAQ,GAAG,UAAS,MAAuB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC,CAAA;AAED,4BAA4B;AACf,QAAA,MAAM,GAAG,UAAS,iBAAiB,EAAE,MAAM,GAAG,iBAAiB,EAAE,WAAmB,gBAAgB;IAC/G,IAAG,CAAC,QAAQ;QAAE,QAAQ,GAAG,gBAAgB,CAAC;IAC1C,MAAM,MAAM,GAAG,YAAI,CAAC,iBAAiB,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC,CAAA;AAEY,QAAA,eAAe,GAAG,UAAU,iBAAiB,EAAE,QAAiB;IAC3E,OAAO,cAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sellout/utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.59",
|
|
4
4
|
"description": "Sellout.io utils",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepare": "npm run build",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"author": "samheutmaker@gmail.com",
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@sellout/models": "^0.0.
|
|
18
|
-
"@sellout/service": "^0.0.
|
|
17
|
+
"@sellout/models": "^0.0.59",
|
|
18
|
+
"@sellout/service": "^0.0.59",
|
|
19
19
|
"json2csv": "^5.0.0",
|
|
20
20
|
"moment-timezone": "^0.5.28",
|
|
21
21
|
"request": "^2.88.2",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"nodemon": "^2.0.2",
|
|
27
27
|
"typescript": "^3.8.3"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "71d05737c822920226462d86fc34180d22d7c821"
|
|
30
30
|
}
|
package/src/IPStack.ts
CHANGED
package/src/ReduxUtil.ts
ADDED
package/src/UrlUtil.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as url from 'url';
|
|
2
|
+
|
|
3
|
+
export function parse(inputUrl: string) {
|
|
4
|
+
return url.parse(inputUrl, true)
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function setQueryString(paramObj: any, replaceState = false, clearExisting = false) {
|
|
8
|
+
const { query } = url.parse(window.location.href, true);
|
|
9
|
+
|
|
10
|
+
let newParams = {
|
|
11
|
+
...query,
|
|
12
|
+
...paramObj,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
if (clearExisting) {
|
|
16
|
+
newParams = {
|
|
17
|
+
...paramObj,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
let queryString = Object.keys(newParams)
|
|
22
|
+
.map((key) => {
|
|
23
|
+
return (newParams[key]) ? `${key}=${newParams[key]}` : null;
|
|
24
|
+
})
|
|
25
|
+
.filter(item => !!item)
|
|
26
|
+
.join('&');
|
|
27
|
+
|
|
28
|
+
if(queryString) queryString = '?' + queryString;
|
|
29
|
+
|
|
30
|
+
const newUrl = `${window.location.protocol}//${window.location.host}${window.location.pathname}${queryString}`;
|
|
31
|
+
|
|
32
|
+
if (replaceState && window.history.replaceState) {
|
|
33
|
+
window.history.replaceState({ path: newUrl }, '', newUrl);
|
|
34
|
+
} else if (window.history.pushState) {
|
|
35
|
+
window.history.pushState({ path: newUrl }, '', newUrl);
|
|
36
|
+
}
|
|
37
|
+
return newUrl;
|
|
38
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const lastChar = string => string.toString().charAt(string.length - 1);
|
|
2
|
+
|
|
3
|
+
export function input(percentage) {
|
|
4
|
+
percentage = percentage.toString().replace(/\s/g, '');
|
|
5
|
+
|
|
6
|
+
if (!percentage) percentage = 0;
|
|
7
|
+
|
|
8
|
+
if (Number.isNaN(percentage)) return 0;
|
|
9
|
+
|
|
10
|
+
if (percentage.toString().length > 1 && percentage.toString().charAt(0) === '0') {
|
|
11
|
+
const value = parseFloat(percentage.substring(1));
|
|
12
|
+
if (Number.isNaN(value)) return 0;
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (lastChar(percentage) === '.') {
|
|
17
|
+
return percentage;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return parseFloat(percentage);
|
|
21
|
+
}
|
package/src/price.ts
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
// I know this sucks, I'm sorry. You can re-write it, but
|
|
2
|
+
// make sure you test it thoroughly.
|
|
3
|
+
export const input = (price: any) => {
|
|
4
|
+
price = price.replace(/[^0-9.]/g, '');
|
|
5
|
+
|
|
6
|
+
if (price.indexOf('.') > -1) {
|
|
7
|
+
let [first, second] = price.toString().split('.');
|
|
8
|
+
|
|
9
|
+
second = second.replace(/[^0-9]/g, '');
|
|
10
|
+
|
|
11
|
+
price = `${first}.${second}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (price.toString().split('')[price.length - 1] === '.') {
|
|
15
|
+
return price;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (price.toString().split('')[price.length - 1] === '0'
|
|
19
|
+
&& price.toString().split('')[price.length - 2] === '.') {
|
|
20
|
+
price = parseInt(price);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (Number.isNaN(price) || Number.isNaN(price)) return 0;
|
|
24
|
+
|
|
25
|
+
return price * 100;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const output = (price: any, withFixed = false) => {
|
|
29
|
+
if (price.toString().split('')[price.length - 1] === '.') {
|
|
30
|
+
return price;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (withFixed) {
|
|
34
|
+
price /= 100;
|
|
35
|
+
return price.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return price / 100;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const format = (price: string) => {
|
|
42
|
+
const value = parseFloat(price.replace(/,/g, ''))
|
|
43
|
+
.toFixed(2)
|
|
44
|
+
.toString()
|
|
45
|
+
.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
46
|
+
|
|
47
|
+
return parseFloat(value).toFixed(2);
|
|
48
|
+
};
|
package/src/time.ts
CHANGED
|
@@ -45,3 +45,61 @@ export const format = function(secondsSinceEpoch, format = 'M/DD/YYYY h:mma', ti
|
|
|
45
45
|
export const formatTimeOfDay = function (secondsSinceEpoch, timezone?: string) {
|
|
46
46
|
return format(secondsSinceEpoch, 'h:mma', timezone);
|
|
47
47
|
}
|
|
48
|
+
|
|
49
|
+
export const formattedCountDown = (startTime: number, endTime: number): string => {
|
|
50
|
+
const totalSeconds = endTime - startTime;
|
|
51
|
+
const days = Math.floor(totalSeconds / 86400);
|
|
52
|
+
const hours = Math.floor((totalSeconds % 86400) / 3600);
|
|
53
|
+
const minutes = Math.floor(((totalSeconds % 86400) % 3600) / 60);
|
|
54
|
+
const seconds = Math.floor((((totalSeconds % 86400) % 3600) % 60));
|
|
55
|
+
|
|
56
|
+
if (days === 0) return `${hours}h ${minutes}m ${seconds}s`;
|
|
57
|
+
if (hours === 0 && days === 0) return `${minutes}m ${seconds}s`;
|
|
58
|
+
if (minutes === 0 && hours === 0 && days === 0) return `${seconds}s`;
|
|
59
|
+
return `${days}d ${hours}h ${minutes}m ${seconds}s`;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export const getStartOfHour = (seconds: number) => {
|
|
63
|
+
return moment(seconds * 1000).startOf("hour").unix();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export const getStartOfDay = (seconds: number) => {
|
|
67
|
+
return moment(seconds * 1000).startOf("day").unix();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const getStartOfWeek = (seconds: number) => {
|
|
71
|
+
return moment(seconds * 1000).startOf("week").unix();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const getStartOfMonth = (seconds: number) => {
|
|
75
|
+
return moment(seconds * 1000).startOf("month").unix();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export const getStartOfYear = (seconds: number) => {
|
|
79
|
+
return moment(seconds * 1000).startOf("year").unix();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
export const getStartOfCurrentDay = () => {
|
|
84
|
+
return moment().startOf("day").unix();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export const getStartOfCurrentMonth = () => {
|
|
88
|
+
return moment().startOf("month").unix();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const getStartOfCurrentYear = () => {
|
|
92
|
+
return moment().startOf("year").unix();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export const getEndOfCurrentDay = () => {
|
|
96
|
+
return moment().endOf("day").unix();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export const getEndOfCurrentMonth = () => {
|
|
100
|
+
return moment().endOf("month").unix();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const getEndOfCurrentYear = () => {
|
|
104
|
+
return moment().endOf("year").unix();
|
|
105
|
+
}
|