@cuemath/web-utils 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.eslintignore +2 -0
  2. package/.husky/pre-commit +1 -0
  3. package/.huskyrc +5 -0
  4. package/.lintstagedrc.yml +1 -0
  5. package/dist/constants/country/index.d.ts +1 -0
  6. package/dist/constants/country/index.js +6 -0
  7. package/dist/constants/country/index.js.map +1 -0
  8. package/dist/constants/country/iso-country-code.d.ts +248 -0
  9. package/dist/constants/country/iso-country-code.js +252 -0
  10. package/dist/constants/country/iso-country-code.js.map +1 -0
  11. package/dist/constants/date-time/index.d.ts +17 -0
  12. package/dist/constants/date-time/index.js +42 -0
  13. package/dist/constants/date-time/index.js.map +1 -0
  14. package/dist/constants/date-time/international-timezones.d.ts +7 -0
  15. package/dist/constants/date-time/international-timezones.js +155 -0
  16. package/dist/constants/date-time/international-timezones.js.map +1 -0
  17. package/dist/constants/index.d.ts +1 -0
  18. package/dist/constants/index.js +18 -0
  19. package/dist/constants/index.js.map +1 -0
  20. package/dist/date-time-helper/index.d.ts +30 -0
  21. package/dist/date-time-helper/index.js +107 -0
  22. package/dist/date-time-helper/index.js.map +1 -0
  23. package/dist/index.d.ts +4 -0
  24. package/dist/index.js +4 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/local-storage/index.d.ts +13 -0
  27. package/dist/local-storage/index.js +173 -0
  28. package/dist/local-storage/index.js.map +1 -0
  29. package/dist/object/index.d.ts +7 -0
  30. package/dist/object/index.js +40 -0
  31. package/dist/object/index.js.map +1 -0
  32. package/package.json +9 -5
  33. package/src/constants/country/index.ts +1 -0
  34. package/src/constants/country/iso-country-code.ts +248 -0
  35. package/src/constants/date-time/index.ts +43 -0
  36. package/src/constants/date-time/international-timezones.ts +157 -0
  37. package/src/constants/index.ts +1 -0
  38. package/src/date-time-helper/index.ts +139 -0
  39. package/src/index.ts +4 -0
  40. package/src/local-storage/index.ts +196 -0
  41. package/src/object/index.ts +43 -0
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.timezones = void 0;
4
+ exports.timezones = [
5
+ {
6
+ id: 'Pacific/Honolulu',
7
+ value: 'HST(GMT-10)',
8
+ meta: 'HST(GMT-10)',
9
+ },
10
+ {
11
+ id: 'America/Anchorage',
12
+ value: 'AST(GMT-9)',
13
+ meta: 'AST(GMT-9)',
14
+ },
15
+ {
16
+ id: 'America/Los_Angeles',
17
+ value: 'PST(GMT-8)',
18
+ meta: 'PST(GMT-8)',
19
+ },
20
+ {
21
+ id: 'America/Denver',
22
+ value: 'MST(GMT-7)',
23
+ meta: 'MST(GMT-7)',
24
+ },
25
+ {
26
+ id: 'America/Phoenix',
27
+ value: 'MST(GMT-7)',
28
+ meta: 'MST(GMT-7)',
29
+ },
30
+ {
31
+ id: 'America/Matamoros',
32
+ value: 'CST(GMT-6)',
33
+ meta: 'CST(GMT-6)',
34
+ },
35
+ {
36
+ id: 'America/New_York',
37
+ value: 'EST(GMT-5)',
38
+ meta: 'EST(GMT-5)',
39
+ },
40
+ {
41
+ id: 'America/Glace_Bay',
42
+ value: 'AST(GMT-4)',
43
+ meta: 'AST(GMT-4)',
44
+ },
45
+ {
46
+ id: 'America/St_Johns',
47
+ value: 'NST(GMT-3:30)',
48
+ meta: 'NST(GMT-3:30)',
49
+ },
50
+ {
51
+ id: 'America/Noronha',
52
+ value: 'FNT(GMT-2)',
53
+ meta: 'FNT(GMT-2)',
54
+ },
55
+ {
56
+ id: 'Asia/Calcutta',
57
+ value: 'IST(GMT+5:30)',
58
+ meta: 'IST(GMT+5:30)',
59
+ },
60
+ {
61
+ id: 'Asia/Kolkata',
62
+ value: 'IST(GMT+5:30)',
63
+ meta: 'IST(GMT+5:30)',
64
+ },
65
+ {
66
+ id: 'Asia/Dubai',
67
+ value: 'GST(GMT+4)',
68
+ meta: 'GST(GMT+4)',
69
+ },
70
+ {
71
+ id: 'Asia/Singapore',
72
+ value: 'SGT(GMT+8)',
73
+ meta: 'SGT(GMT+8)',
74
+ },
75
+ {
76
+ id: 'Pacific/Auckland',
77
+ value: 'NZDT(GMT+13)',
78
+ meta: 'NZDT(GMT+13)',
79
+ },
80
+ {
81
+ id: 'Australia/Adelaide',
82
+ value: 'ACDT(GMT+10:30)',
83
+ meta: 'ACDT(GMT+10:30)',
84
+ },
85
+ {
86
+ id: 'Australia/Perth',
87
+ value: 'AWST(GMT+8)',
88
+ meta: 'AWST(GMT+8)',
89
+ },
90
+ {
91
+ id: 'Australia/Sydney',
92
+ value: 'AEDT(GMT+11)',
93
+ meta: 'AEDT(GMT+11)',
94
+ },
95
+ {
96
+ id: 'Australia/Darwin',
97
+ value: 'ACST(GMT+9:30)',
98
+ meta: 'ACST(GMT+9:30)',
99
+ },
100
+ {
101
+ id: 'Australia/Broken_Hill',
102
+ value: 'ACDT(GMT+10:30)',
103
+ meta: 'ACDT(GMT+10:30)',
104
+ },
105
+ {
106
+ id: 'Australia/Melbourne',
107
+ value: 'AEDT(GMT+11)',
108
+ meta: 'AEDT(GMT+11)',
109
+ },
110
+ {
111
+ id: 'Australia/Brisbane',
112
+ value: 'AEST(GMT+10)',
113
+ meta: 'AEST(GMT+10)',
114
+ },
115
+ {
116
+ id: 'Australia/Hobart',
117
+ value: 'AEDT(GMT+11)',
118
+ meta: 'AEDT(GMT+11)',
119
+ },
120
+ {
121
+ id: 'Europe/London',
122
+ value: 'GMT(GMT+0)',
123
+ meta: 'GMT(GMT+0)',
124
+ },
125
+ {
126
+ id: 'Asia/Muscat',
127
+ value: 'GST(GMT+4)',
128
+ meta: 'GST(GMT+4)',
129
+ },
130
+ {
131
+ id: 'Asia/Kuwait',
132
+ value: 'AST(GMT+3)',
133
+ meta: 'AST(GMT+3)',
134
+ },
135
+ {
136
+ id: 'Asia/Bahrain',
137
+ value: 'AST(GMT+3)',
138
+ meta: 'AST(GMT+3)',
139
+ },
140
+ {
141
+ id: 'Asia/Qatar',
142
+ value: 'AST(GMT+3)',
143
+ meta: 'AST(GMT+3)',
144
+ },
145
+ {
146
+ id: 'Asia/Riyadh',
147
+ value: 'AST(GMT+3)',
148
+ meta: 'AST(GMT+3)',
149
+ },
150
+ ].map(timezone => ({
151
+ ...timezone,
152
+ key: timezone.id,
153
+ label: timezone.meta,
154
+ }));
155
+ //# sourceMappingURL=international-timezones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"international-timezones.js","sourceRoot":"","sources":["../../../src/constants/date-time/international-timezones.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './country';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./country"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
@@ -0,0 +1,30 @@
1
+ import dayjs from 'dayjs';
2
+ type Timestamp = number;
3
+ export interface DateSlots {
4
+ key: number;
5
+ label: string;
6
+ subLabel: string;
7
+ disabled: boolean;
8
+ }
9
+ export declare const formatDateTime: (dateTime: string | number | Date | dayjs.Dayjs | null | undefined, format: string | undefined) => string;
10
+ export declare function getCurrentTimestamp(): number;
11
+ export declare function dateTimeByTimezone(timestamp: Timestamp, timezone?: string): string;
12
+ export declare function dateByTimezone(timestamp: number, timezone: string, format: string): string;
13
+ export declare const dateByTimestamp: (timestamp: Timestamp, format: string) => string;
14
+ export declare function convertTimeStampToSeconds(timeStamp: Timestamp): number;
15
+ export declare function formatTimestamp(datetime: Timestamp, format: string | undefined): string;
16
+ export declare function getTimezone(): string;
17
+ export declare function timeToX(datetime: string | number | Date | dayjs.Dayjs | null | undefined): string;
18
+ export declare function getCurrentDatebyTimezone(timezone: string): string;
19
+ export declare function getTimeDiff(date1: string | number | Date | dayjs.Dayjs | null | undefined, date2: string | number | Date | dayjs.Dayjs | null | undefined): {
20
+ days: any;
21
+ hour: any;
22
+ minute: any;
23
+ seconds: any;
24
+ distance: any;
25
+ };
26
+ export declare function getISOTimeString(demoTs: number): string;
27
+ export declare function getDateAfterDays(days: number): string;
28
+ export declare const convertedTimezone: (selectedTimezone: string) => string;
29
+ export declare const convertSecondsToMiliseconds: (seconds: number) => number;
30
+ export {};
@@ -0,0 +1,107 @@
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.convertSecondsToMiliseconds = exports.convertedTimezone = exports.getDateAfterDays = exports.getISOTimeString = exports.getTimeDiff = exports.getCurrentDatebyTimezone = exports.timeToX = exports.getTimezone = exports.formatTimestamp = exports.convertTimeStampToSeconds = exports.dateByTimestamp = exports.dateByTimezone = exports.dateTimeByTimezone = exports.getCurrentTimestamp = exports.formatDateTime = void 0;
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ const dayjs_1 = __importDefault(require("dayjs"));
9
+ const relativeTime_1 = __importDefault(require("dayjs/plugin/relativeTime"));
10
+ const international_timezones_1 = require("../constants/date-time/international-timezones");
11
+ const formatDateTime = (dateTime, format) => {
12
+ const momentDate = (0, dayjs_1.default)(dateTime);
13
+ return momentDate.format(format);
14
+ };
15
+ exports.formatDateTime = formatDateTime;
16
+ function getCurrentTimestamp() {
17
+ if (!Date.now) {
18
+ Date.now = () => new Date().getTime();
19
+ }
20
+ return Math.floor(Date.now() / 1000);
21
+ }
22
+ exports.getCurrentTimestamp = getCurrentTimestamp;
23
+ function dateTimeByTimezone(timestamp, timezone) {
24
+ let options = {};
25
+ if (timezone) {
26
+ options = {
27
+ timeZone: timezone,
28
+ };
29
+ }
30
+ return new Date(timestamp).toLocaleString('en-US', options);
31
+ }
32
+ exports.dateTimeByTimezone = dateTimeByTimezone;
33
+ function dateByTimezone(timestamp, timezone, format) {
34
+ const datetime = dateTimeByTimezone(timestamp, timezone);
35
+ return (0, dayjs_1.default)(datetime).format(format || 'mm/dd/yyyy');
36
+ }
37
+ exports.dateByTimezone = dateByTimezone;
38
+ const dateByTimestamp = (timestamp, format) => {
39
+ const datetime = new Date(timestamp).toLocaleString('en-US');
40
+ return (0, dayjs_1.default)(datetime).format(format || 'mm/dd/yyyy');
41
+ };
42
+ exports.dateByTimestamp = dateByTimestamp;
43
+ function convertTimeStampToSeconds(timeStamp) {
44
+ const demoTimeStamp = timeStamp;
45
+ const currentTimeStamp = getCurrentTimestamp();
46
+ if (Number.isNaN(demoTimeStamp) || Number.isNaN(currentTimeStamp)) {
47
+ return timeStamp;
48
+ }
49
+ const demoTimeStampLength = String(demoTimeStamp).length;
50
+ const currentTimeStampLength = String(currentTimeStamp).length;
51
+ return demoTimeStampLength > currentTimeStampLength ? timeStamp / 1000 : timeStamp;
52
+ }
53
+ exports.convertTimeStampToSeconds = convertTimeStampToSeconds;
54
+ function formatTimestamp(datetime, format) {
55
+ const timeStamp = convertTimeStampToSeconds(datetime);
56
+ return dayjs_1.default.unix(timeStamp).format(format);
57
+ }
58
+ exports.formatTimestamp = formatTimestamp;
59
+ function getTimezone() {
60
+ return Intl?.DateTimeFormat().resolvedOptions().timeZone;
61
+ }
62
+ exports.getTimezone = getTimezone;
63
+ function timeToX(datetime) {
64
+ dayjs_1.default.extend(relativeTime_1.default);
65
+ return (0, dayjs_1.default)().to(datetime, true);
66
+ }
67
+ exports.timeToX = timeToX;
68
+ function getCurrentDatebyTimezone(timezone) {
69
+ let options = {};
70
+ if (timezone) {
71
+ options = {
72
+ timeZone: timezone,
73
+ };
74
+ }
75
+ return new Date().toLocaleString('en-US', options);
76
+ }
77
+ exports.getCurrentDatebyTimezone = getCurrentDatebyTimezone;
78
+ function getTimeDiff(date1, date2) {
79
+ const dateTime1 = (0, dayjs_1.default)(date1);
80
+ const dateTime2 = (0, dayjs_1.default)(date2);
81
+ return {
82
+ days: dateTime1.diff(dateTime2, 'days'),
83
+ hour: dateTime1.diff(dateTime2, 'hour'),
84
+ minute: dateTime1.diff(dateTime2, 'minute'),
85
+ seconds: dateTime1.diff(dateTime2, 'seconds'),
86
+ distance: dateTime1.diff(dateTime2),
87
+ };
88
+ }
89
+ exports.getTimeDiff = getTimeDiff;
90
+ function getISOTimeString(demoTs) {
91
+ return new Date(demoTs * 1000).toISOString().replace(/-|:|\.\d\d\d/g, '');
92
+ }
93
+ exports.getISOTimeString = getISOTimeString;
94
+ function getDateAfterDays(days) {
95
+ return (0, exports.formatDateTime)((0, dayjs_1.default)().add(days, 'day'), 'D MMM, YYYY').toUpperCase();
96
+ }
97
+ exports.getDateAfterDays = getDateAfterDays;
98
+ const convertedTimezone = (selectedTimezone) => {
99
+ const formattedTimezone = international_timezones_1.timezones?.find(currentTimezone => currentTimezone?.id === selectedTimezone);
100
+ return formattedTimezone?.value ?? selectedTimezone?.replaceAll('_', ' ');
101
+ };
102
+ exports.convertedTimezone = convertedTimezone;
103
+ const convertSecondsToMiliseconds = (seconds) => {
104
+ return seconds * 1000;
105
+ };
106
+ exports.convertSecondsToMiliseconds = convertSecondsToMiliseconds;
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/date-time-helper/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,6 @@
1
1
  export * from './cookie';
2
+ export * from './constants';
3
+ export * from './local-storage';
4
+ export * from './date-time-helper';
5
+ export * from './object';
2
6
  export * from './growth-source';
package/dist/index.js CHANGED
@@ -15,5 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./cookie"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ __exportStar(require("./local-storage"), exports);
20
+ __exportStar(require("./date-time-helper"), exports);
21
+ __exportStar(require("./object"), exports);
18
22
  __exportStar(require("./growth-source"), exports);
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,qDAAmC;AACnC,2CAAyB;AACzB,kDAAgC"}
@@ -0,0 +1,13 @@
1
+ export declare const LOCAL_STORAGE_PRIMARY_KEY = "CUEMATH_WEB";
2
+ export declare const checkLocalStorageSupport: () => boolean;
3
+ export declare const removeKeyFromObject: (obj: {
4
+ [x: string]: any;
5
+ }, keyToRemove: string) => {
6
+ [x: string]: any;
7
+ } | null;
8
+ export declare const localStorageSet: (key: string | number, value: any, ttl?: number) => boolean;
9
+ export declare const localStorageGet: (key: string) => null | string;
10
+ export declare const localStorageGetAll: () => null | string;
11
+ export declare const localStorageRemove: (key: string) => boolean;
12
+ export declare const localStorageRemoveAll: () => boolean;
13
+ export declare const removeExpiredKeysOnMount: () => boolean;
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeExpiredKeysOnMount = exports.localStorageRemoveAll = exports.localStorageRemove = exports.localStorageGetAll = exports.localStorageGet = exports.localStorageSet = exports.removeKeyFromObject = exports.checkLocalStorageSupport = exports.LOCAL_STORAGE_PRIMARY_KEY = void 0;
4
+ const date_time_1 = require("../constants/date-time");
5
+ /* eslint-disable @typescript-eslint/no-explicit-any */
6
+ exports.LOCAL_STORAGE_PRIMARY_KEY = 'CUEMATH_WEB';
7
+ const checkLocalStorageSupport = () => {
8
+ try {
9
+ return 'localStorage' in window && window.localStorage !== null;
10
+ }
11
+ catch (e) {
12
+ return false;
13
+ }
14
+ };
15
+ exports.checkLocalStorageSupport = checkLocalStorageSupport;
16
+ const removeKeyFromObject = (obj, keyToRemove) => {
17
+ if (obj) {
18
+ delete obj[keyToRemove];
19
+ return obj;
20
+ }
21
+ return null;
22
+ };
23
+ exports.removeKeyFromObject = removeKeyFromObject;
24
+ // Default expiry set to 24 hours
25
+ const localStorageSet = (key, value, ttl = date_time_1.TWENTY_FOUR_HOURS_IN_SECONDS) => {
26
+ if ((0, exports.checkLocalStorageSupport)()) {
27
+ try {
28
+ let dbData = window.localStorage.getItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
29
+ const now = new Date();
30
+ const item = {
31
+ value,
32
+ expiry: now.getTime() + ttl,
33
+ };
34
+ if (dbData) {
35
+ dbData = JSON.parse(dbData);
36
+ dbData[key] = item;
37
+ }
38
+ else {
39
+ dbData = { [key]: item };
40
+ }
41
+ window.localStorage.setItem(exports.LOCAL_STORAGE_PRIMARY_KEY, JSON.stringify(dbData));
42
+ return true;
43
+ }
44
+ catch (e) {
45
+ return false;
46
+ } // case when localStorage space quota is exceeded
47
+ }
48
+ else {
49
+ return false;
50
+ }
51
+ };
52
+ exports.localStorageSet = localStorageSet;
53
+ const localStorageGet = (key) => {
54
+ if ((0, exports.checkLocalStorageSupport)()) {
55
+ try {
56
+ const primaryLocalStorageValue = window.localStorage.getItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
57
+ let dbData = primaryLocalStorageValue != null
58
+ ? JSON.parse(primaryLocalStorageValue)
59
+ : primaryLocalStorageValue;
60
+ const requestedData = dbData[key];
61
+ const now = new Date();
62
+ if (now.getTime() > requestedData.expiry) {
63
+ dbData = (0, exports.removeKeyFromObject)(dbData, key);
64
+ window.localStorage.setItem(exports.LOCAL_STORAGE_PRIMARY_KEY, JSON.stringify(dbData));
65
+ return null;
66
+ }
67
+ return requestedData.value;
68
+ }
69
+ catch (e) {
70
+ return null;
71
+ }
72
+ }
73
+ else {
74
+ return null;
75
+ }
76
+ };
77
+ exports.localStorageGet = localStorageGet;
78
+ const localStorageGetAll = () => {
79
+ if ((0, exports.checkLocalStorageSupport)()) {
80
+ try {
81
+ const primaryLocalStorageValue = window.localStorage.getItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
82
+ return primaryLocalStorageValue != null
83
+ ? JSON.parse(primaryLocalStorageValue)
84
+ : primaryLocalStorageValue;
85
+ }
86
+ catch (e) {
87
+ return null;
88
+ }
89
+ }
90
+ else {
91
+ return null;
92
+ }
93
+ };
94
+ exports.localStorageGetAll = localStorageGetAll;
95
+ const localStorageRemove = (key) => {
96
+ if ((0, exports.checkLocalStorageSupport)()) {
97
+ try {
98
+ const primaryLocalStorageValue = window.localStorage.getItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
99
+ let dbData = primaryLocalStorageValue != null
100
+ ? JSON.parse(primaryLocalStorageValue)
101
+ : primaryLocalStorageValue;
102
+ if (dbData[key]) {
103
+ dbData = (0, exports.removeKeyFromObject)(dbData, key);
104
+ window.localStorage.setItem(exports.LOCAL_STORAGE_PRIMARY_KEY, JSON.stringify(dbData));
105
+ return true;
106
+ }
107
+ return false;
108
+ }
109
+ catch (e) {
110
+ return false;
111
+ }
112
+ }
113
+ else {
114
+ return false;
115
+ }
116
+ };
117
+ exports.localStorageRemove = localStorageRemove;
118
+ const localStorageRemoveAll = () => {
119
+ if ((0, exports.checkLocalStorageSupport)()) {
120
+ try {
121
+ const primaryLocalStorageValue = window.localStorage.getItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
122
+ const dbData = primaryLocalStorageValue != null
123
+ ? JSON.parse(primaryLocalStorageValue)
124
+ : primaryLocalStorageValue;
125
+ if (dbData) {
126
+ window.localStorage.removeItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
127
+ return true;
128
+ }
129
+ return false;
130
+ }
131
+ catch (e) {
132
+ return false;
133
+ }
134
+ }
135
+ else {
136
+ return false;
137
+ }
138
+ };
139
+ exports.localStorageRemoveAll = localStorageRemoveAll;
140
+ const removeExpiredKeysOnMount = () => {
141
+ if ((0, exports.checkLocalStorageSupport)()) {
142
+ try {
143
+ const primaryLocalStorageValue = window.localStorage.getItem(exports.LOCAL_STORAGE_PRIMARY_KEY);
144
+ let dbData = primaryLocalStorageValue != null
145
+ ? JSON.parse(primaryLocalStorageValue)
146
+ : primaryLocalStorageValue;
147
+ const now = new Date();
148
+ if (dbData) {
149
+ dbData = Object.keys(dbData).reduce((accumulator, key) => {
150
+ if (now.getTime() < dbData[key].expiry) {
151
+ accumulator[key] = dbData[key];
152
+ }
153
+ return accumulator;
154
+ }, {});
155
+ }
156
+ if (Object.keys(dbData).length) {
157
+ window.localStorage.setItem(exports.LOCAL_STORAGE_PRIMARY_KEY, JSON.stringify(dbData));
158
+ }
159
+ else {
160
+ (0, exports.localStorageRemoveAll)();
161
+ }
162
+ return true;
163
+ }
164
+ catch (e) {
165
+ return false;
166
+ }
167
+ }
168
+ else {
169
+ return false;
170
+ }
171
+ };
172
+ exports.removeExpiredKeysOnMount = removeExpiredKeysOnMount;
173
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-storage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function isEmpty(obj: object): boolean;
2
+ export declare function isMapEqual(map1: {
3
+ [x: string]: any;
4
+ }, map2: {
5
+ [x: string]: any;
6
+ }): boolean;
7
+ export declare function nestedMapsAreEqual(map1: Map<any, any>, map2: Map<any, any>): boolean;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nestedMapsAreEqual = exports.isMapEqual = exports.isEmpty = void 0;
4
+ function isEmpty(obj) {
5
+ return Object.keys(obj).length === 0;
6
+ }
7
+ exports.isEmpty = isEmpty;
8
+ // In this case both object have same key names Don't use to compare objects
9
+ function isMapEqual(map1, map2) {
10
+ const map1Keys = Object.keys(map1);
11
+ const map2Keys = Object.keys(map2);
12
+ if (map1Keys.length !== map2Keys.length) {
13
+ return false;
14
+ }
15
+ for (let i = 0; i < map1Keys.length; i += 1) {
16
+ const key = map1Keys[i];
17
+ if (map1[key] !== map2[key]) {
18
+ return false;
19
+ }
20
+ }
21
+ return true;
22
+ }
23
+ exports.isMapEqual = isMapEqual;
24
+ function nestedMapsAreEqual(map1, map2) {
25
+ // First, check if the maps have the same size
26
+ if (map1.size !== map2.size) {
27
+ return false;
28
+ }
29
+ // Then, iterate over each key-value pair in map1 and check if the corresponding key-value pair exists in map2
30
+ for (const [key, value] of map1) {
31
+ if (!map2.has(key) || map2.get(key) !== value) {
32
+ // If the key doesn't exist in map2, or the value for the key is different, the maps are not equal
33
+ return false;
34
+ }
35
+ }
36
+ // If we haven't returned false by now, the maps are equal
37
+ return true;
38
+ }
39
+ exports.nestedMapsAreEqual = nestedMapsAreEqual;
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC;AAFD,0BAEC;AAED,4EAA4E;AAC5E,SAAgB,UAAU,CACxB,IAA0B,EAC1B,IAA0B;IAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,gCAmBC;AAED,SAAgB,kBAAkB,CAAC,IAAmB,EAAE,IAAmB;IACzE,8CAA8C;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,8GAA8G;IAC9G,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAC7C,kGAAkG;YAClG,OAAO,KAAK,CAAC;SACd;KACF;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,gDAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/web-utils",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Shared web utils package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -8,7 +8,8 @@
8
8
  "build": "tsc",
9
9
  "build-watch": "tsc -w",
10
10
  "prepublishOnly": "rm -rf dist && yarn build",
11
- "prepare": "husky install"
11
+ "prepare": "husky install",
12
+ "precommit": "lint-staged"
12
13
  },
13
14
  "repository": {
14
15
  "type": "git",
@@ -34,9 +35,12 @@
34
35
  "eslint-plugin-jest": "^27.2.1",
35
36
  "eslint-plugin-prettier": "4.2.1",
36
37
  "husky": "8.0.2",
37
- "prettier": "2.4.1",
38
+ "lint-staged": ">=10",
39
+ "prettier": "^2.8.1",
38
40
  "typescript": "4.9.4"
39
41
  },
40
- "dependencies": {},
41
- "side-effects": false
42
+ "dependencies": {
43
+ "@types/node": "^18.11.18",
44
+ "dayjs": "^1.11.7"
45
+ }
42
46
  }
@@ -0,0 +1 @@
1
+ export { COUNTRY_NAME_COUNTRY_CODE_MAP as ISO_COUNTRY_CODE } from './iso-country-code';