@etsoo/shared 1.0.71 → 1.0.75
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/README.md +2 -0
- package/__tests__/DomUtils.ts +6 -0
- package/__tests__/StorageUtils.ts +14 -0
- package/__tests__/Utils.ts +2 -1
- package/lib/cjs/StorageUtils.d.ts +10 -0
- package/lib/cjs/StorageUtils.js +24 -0
- package/lib/cjs/Utils.d.ts +1 -1
- package/lib/cjs/Utils.js +11 -8
- package/lib/mjs/StorageUtils.d.ts +10 -0
- package/lib/mjs/StorageUtils.js +24 -0
- package/lib/mjs/Utils.d.ts +1 -1
- package/lib/mjs/Utils.js +11 -8
- package/package.json +10 -10
- package/src/StorageUtils.ts +22 -0
- package/src/Utils.ts +18 -18
package/README.md
CHANGED
|
@@ -122,7 +122,9 @@ Storage related utilities
|
|
|
122
122
|
|setLocalData|Set local storage data|
|
|
123
123
|
|setSessionData|Set session storage data|
|
|
124
124
|
|getLocalData|Get local storage data|
|
|
125
|
+
|getLocalObject|Get local storage object data|
|
|
125
126
|
|getSessionData|Get session storage data|
|
|
127
|
+
|getSessionObject|Get session storage object data|
|
|
126
128
|
|
|
127
129
|
## Utils
|
|
128
130
|
String and other related utilities
|
package/__tests__/DomUtils.ts
CHANGED
|
@@ -245,6 +245,12 @@ test('Tests for headersToObject', () => {
|
|
|
245
245
|
);
|
|
246
246
|
});
|
|
247
247
|
|
|
248
|
+
test('Tests for isFormData', () => {
|
|
249
|
+
const formData = new FormData();
|
|
250
|
+
expect(DomUtils.isFormData(formData)).toBeTruthy();
|
|
251
|
+
expect(DomUtils.isFormData({})).toBeFalsy();
|
|
252
|
+
});
|
|
253
|
+
|
|
248
254
|
test('Tests for isJSONContentType', () => {
|
|
249
255
|
expect(DomUtils.isJSONContentType('application/problem+json')).toBeTruthy();
|
|
250
256
|
expect(DomUtils.isJSONContentType('application/javascript')).toBeTruthy();
|
|
@@ -12,3 +12,17 @@ test('Tests for all', () => {
|
|
|
12
12
|
expect(StorageUtils.getSessionData('number', 0)).toBe(3.14);
|
|
13
13
|
expect(StorageUtils.getSessionData('test', {})).toHaveProperty('id', 123);
|
|
14
14
|
});
|
|
15
|
+
|
|
16
|
+
test('Tests for getLocalObject', () => {
|
|
17
|
+
StorageUtils.setLocalData('test', { id: 123, name: 'test' });
|
|
18
|
+
const data = StorageUtils.getLocalObject<{ id: number }>('test');
|
|
19
|
+
expect(data?.id).toBe(123);
|
|
20
|
+
expect(data).toHaveProperty('name', 'test');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('Tests for getSessionObject', () => {
|
|
24
|
+
StorageUtils.setSessionData('test', { id: 123, name: 'test' });
|
|
25
|
+
const data = StorageUtils.getSessionObject<{ id: number }>('test');
|
|
26
|
+
expect(data?.id).toBe(123);
|
|
27
|
+
expect(data).toHaveProperty('name', 'test');
|
|
28
|
+
});
|
package/__tests__/Utils.ts
CHANGED
|
@@ -21,9 +21,19 @@ export declare namespace StorageUtils {
|
|
|
21
21
|
* @param defaultValue Default value
|
|
22
22
|
*/
|
|
23
23
|
function getLocalData<T>(key: string, defaultValue: T): T;
|
|
24
|
+
/**
|
|
25
|
+
* Get local storage object data
|
|
26
|
+
* @param key Key name
|
|
27
|
+
*/
|
|
28
|
+
function getLocalObject<T extends {}>(key: string): T | undefined;
|
|
24
29
|
/**
|
|
25
30
|
* Get session storage data
|
|
26
31
|
* @param key Key name
|
|
27
32
|
*/
|
|
28
33
|
function getSessionData<T>(key: string, defaultValue: T): T;
|
|
34
|
+
/**
|
|
35
|
+
* Get session storage object data
|
|
36
|
+
* @param key Key name
|
|
37
|
+
*/
|
|
38
|
+
function getSessionObject<T extends {}>(key: string): T | undefined;
|
|
29
39
|
}
|
package/lib/cjs/StorageUtils.js
CHANGED
|
@@ -51,6 +51,18 @@ var StorageUtils;
|
|
|
51
51
|
return Utils_1.Utils.parseString(data, defaultValue);
|
|
52
52
|
}
|
|
53
53
|
StorageUtils.getLocalData = getLocalData;
|
|
54
|
+
/**
|
|
55
|
+
* Get local storage object data
|
|
56
|
+
* @param key Key name
|
|
57
|
+
*/
|
|
58
|
+
function getLocalObject(key) {
|
|
59
|
+
// Get storage
|
|
60
|
+
const data = localStorage.getItem(key);
|
|
61
|
+
if (data == null)
|
|
62
|
+
return undefined;
|
|
63
|
+
return JSON.parse(data);
|
|
64
|
+
}
|
|
65
|
+
StorageUtils.getLocalObject = getLocalObject;
|
|
54
66
|
/**
|
|
55
67
|
* Get session storage data
|
|
56
68
|
* @param key Key name
|
|
@@ -62,4 +74,16 @@ var StorageUtils;
|
|
|
62
74
|
return Utils_1.Utils.parseString(data, defaultValue);
|
|
63
75
|
}
|
|
64
76
|
StorageUtils.getSessionData = getSessionData;
|
|
77
|
+
/**
|
|
78
|
+
* Get session storage object data
|
|
79
|
+
* @param key Key name
|
|
80
|
+
*/
|
|
81
|
+
function getSessionObject(key) {
|
|
82
|
+
// Get storage
|
|
83
|
+
const data = sessionStorage.getItem(key);
|
|
84
|
+
if (data == null)
|
|
85
|
+
return undefined;
|
|
86
|
+
return JSON.parse(data);
|
|
87
|
+
}
|
|
88
|
+
StorageUtils.getSessionObject = getSessionObject;
|
|
65
89
|
})(StorageUtils = exports.StorageUtils || (exports.StorageUtils = {}));
|
package/lib/cjs/Utils.d.ts
CHANGED
|
@@ -117,7 +117,7 @@ export declare namespace Utils {
|
|
|
117
117
|
* @param labels Labels
|
|
118
118
|
* @param reference Key reference dictionary
|
|
119
119
|
*/
|
|
120
|
-
const setLabels: (source: {}, labels: DataTypes.StringRecord, reference?: Readonly<DataTypes.StringDictionary>) => void;
|
|
120
|
+
const setLabels: (source: {}, labels: DataTypes.StringRecord, reference?: Readonly<DataTypes.StringDictionary> | undefined) => void;
|
|
121
121
|
/**
|
|
122
122
|
* Snake name to works, 'snake_name' to 'Snake Name'
|
|
123
123
|
* @param name Name text
|
package/lib/cjs/Utils.js
CHANGED
|
@@ -62,8 +62,13 @@ var Utils;
|
|
|
62
62
|
// Ignore fields, no process
|
|
63
63
|
if (ignoreFields.includes(key))
|
|
64
64
|
return;
|
|
65
|
-
//
|
|
65
|
+
// Compare with init value
|
|
66
66
|
const initValue = Reflect.get(initData, key);
|
|
67
|
+
if (value == null && initValue == null) {
|
|
68
|
+
// Both are null, it's equal
|
|
69
|
+
Reflect.deleteProperty(input, key);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
67
72
|
if (initValue != null) {
|
|
68
73
|
const newValue = DataTypes_1.DataTypes.convert(value, initValue);
|
|
69
74
|
if (newValue === initValue) {
|
|
@@ -227,20 +232,18 @@ var Utils;
|
|
|
227
232
|
* @param labels Labels
|
|
228
233
|
* @param reference Key reference dictionary
|
|
229
234
|
*/
|
|
230
|
-
Utils.setLabels = (source, labels, reference
|
|
231
|
-
|
|
235
|
+
Utils.setLabels = (source, labels, reference) => {
|
|
236
|
+
Object.keys(source).forEach((key) => {
|
|
232
237
|
var _a;
|
|
233
238
|
// Reference key
|
|
234
|
-
const labelKey = (_a = reference[key]) !== null && _a !== void 0 ? _a : key;
|
|
239
|
+
const labelKey = reference == null ? key : (_a = reference[key]) !== null && _a !== void 0 ? _a : key;
|
|
235
240
|
// Label
|
|
236
241
|
const label = labels[labelKey];
|
|
237
242
|
if (label != null) {
|
|
238
243
|
// If found, update
|
|
239
|
-
|
|
244
|
+
Reflect.set(source, key, label);
|
|
240
245
|
}
|
|
241
|
-
|
|
242
|
-
}, {});
|
|
243
|
-
Object.assign(source, newLabels);
|
|
246
|
+
});
|
|
244
247
|
};
|
|
245
248
|
/**
|
|
246
249
|
* Snake name to works, 'snake_name' to 'Snake Name'
|
|
@@ -21,9 +21,19 @@ export declare namespace StorageUtils {
|
|
|
21
21
|
* @param defaultValue Default value
|
|
22
22
|
*/
|
|
23
23
|
function getLocalData<T>(key: string, defaultValue: T): T;
|
|
24
|
+
/**
|
|
25
|
+
* Get local storage object data
|
|
26
|
+
* @param key Key name
|
|
27
|
+
*/
|
|
28
|
+
function getLocalObject<T extends {}>(key: string): T | undefined;
|
|
24
29
|
/**
|
|
25
30
|
* Get session storage data
|
|
26
31
|
* @param key Key name
|
|
27
32
|
*/
|
|
28
33
|
function getSessionData<T>(key: string, defaultValue: T): T;
|
|
34
|
+
/**
|
|
35
|
+
* Get session storage object data
|
|
36
|
+
* @param key Key name
|
|
37
|
+
*/
|
|
38
|
+
function getSessionObject<T extends {}>(key: string): T | undefined;
|
|
29
39
|
}
|
package/lib/mjs/StorageUtils.js
CHANGED
|
@@ -48,6 +48,18 @@ export var StorageUtils;
|
|
|
48
48
|
return Utils.parseString(data, defaultValue);
|
|
49
49
|
}
|
|
50
50
|
StorageUtils.getLocalData = getLocalData;
|
|
51
|
+
/**
|
|
52
|
+
* Get local storage object data
|
|
53
|
+
* @param key Key name
|
|
54
|
+
*/
|
|
55
|
+
function getLocalObject(key) {
|
|
56
|
+
// Get storage
|
|
57
|
+
const data = localStorage.getItem(key);
|
|
58
|
+
if (data == null)
|
|
59
|
+
return undefined;
|
|
60
|
+
return JSON.parse(data);
|
|
61
|
+
}
|
|
62
|
+
StorageUtils.getLocalObject = getLocalObject;
|
|
51
63
|
/**
|
|
52
64
|
* Get session storage data
|
|
53
65
|
* @param key Key name
|
|
@@ -59,4 +71,16 @@ export var StorageUtils;
|
|
|
59
71
|
return Utils.parseString(data, defaultValue);
|
|
60
72
|
}
|
|
61
73
|
StorageUtils.getSessionData = getSessionData;
|
|
74
|
+
/**
|
|
75
|
+
* Get session storage object data
|
|
76
|
+
* @param key Key name
|
|
77
|
+
*/
|
|
78
|
+
function getSessionObject(key) {
|
|
79
|
+
// Get storage
|
|
80
|
+
const data = sessionStorage.getItem(key);
|
|
81
|
+
if (data == null)
|
|
82
|
+
return undefined;
|
|
83
|
+
return JSON.parse(data);
|
|
84
|
+
}
|
|
85
|
+
StorageUtils.getSessionObject = getSessionObject;
|
|
62
86
|
})(StorageUtils || (StorageUtils = {}));
|
package/lib/mjs/Utils.d.ts
CHANGED
|
@@ -117,7 +117,7 @@ export declare namespace Utils {
|
|
|
117
117
|
* @param labels Labels
|
|
118
118
|
* @param reference Key reference dictionary
|
|
119
119
|
*/
|
|
120
|
-
const setLabels: (source: {}, labels: DataTypes.StringRecord, reference?: Readonly<DataTypes.StringDictionary>) => void;
|
|
120
|
+
const setLabels: (source: {}, labels: DataTypes.StringRecord, reference?: Readonly<DataTypes.StringDictionary> | undefined) => void;
|
|
121
121
|
/**
|
|
122
122
|
* Snake name to works, 'snake_name' to 'Snake Name'
|
|
123
123
|
* @param name Name text
|
package/lib/mjs/Utils.js
CHANGED
|
@@ -59,8 +59,13 @@ export var Utils;
|
|
|
59
59
|
// Ignore fields, no process
|
|
60
60
|
if (ignoreFields.includes(key))
|
|
61
61
|
return;
|
|
62
|
-
//
|
|
62
|
+
// Compare with init value
|
|
63
63
|
const initValue = Reflect.get(initData, key);
|
|
64
|
+
if (value == null && initValue == null) {
|
|
65
|
+
// Both are null, it's equal
|
|
66
|
+
Reflect.deleteProperty(input, key);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
64
69
|
if (initValue != null) {
|
|
65
70
|
const newValue = DataTypes.convert(value, initValue);
|
|
66
71
|
if (newValue === initValue) {
|
|
@@ -224,20 +229,18 @@ export var Utils;
|
|
|
224
229
|
* @param labels Labels
|
|
225
230
|
* @param reference Key reference dictionary
|
|
226
231
|
*/
|
|
227
|
-
Utils.setLabels = (source, labels, reference
|
|
228
|
-
|
|
232
|
+
Utils.setLabels = (source, labels, reference) => {
|
|
233
|
+
Object.keys(source).forEach((key) => {
|
|
229
234
|
var _a;
|
|
230
235
|
// Reference key
|
|
231
|
-
const labelKey = (_a = reference[key]) !== null && _a !== void 0 ? _a : key;
|
|
236
|
+
const labelKey = reference == null ? key : (_a = reference[key]) !== null && _a !== void 0 ? _a : key;
|
|
232
237
|
// Label
|
|
233
238
|
const label = labels[labelKey];
|
|
234
239
|
if (label != null) {
|
|
235
240
|
// If found, update
|
|
236
|
-
|
|
241
|
+
Reflect.set(source, key, label);
|
|
237
242
|
}
|
|
238
|
-
|
|
239
|
-
}, {});
|
|
240
|
-
Object.assign(source, newLabels);
|
|
243
|
+
});
|
|
241
244
|
};
|
|
242
245
|
/**
|
|
243
246
|
* Snake name to works, 'snake_name' to 'Snake Name'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/shared",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.75",
|
|
4
4
|
"description": "TypeScript shared utilities and functions",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
"homepage": "https://github.com/ETSOO/Shared#readme",
|
|
55
55
|
"dependencies": {},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@types/jest": "^27.0.
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
59
|
-
"@typescript-eslint/parser": "^5.
|
|
60
|
-
"eslint": "^8.0
|
|
61
|
-
"eslint-config-airbnb-base": "^
|
|
62
|
-
"eslint-plugin-import": "^2.25.
|
|
63
|
-
"jest": "^27.
|
|
64
|
-
"ts-jest": "^27.0.
|
|
65
|
-
"typescript": "^4.
|
|
57
|
+
"@types/jest": "^27.0.3",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
|
59
|
+
"@typescript-eslint/parser": "^5.4.0",
|
|
60
|
+
"eslint": "^8.2.0",
|
|
61
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
62
|
+
"eslint-plugin-import": "^2.25.3",
|
|
63
|
+
"jest": "^27.3.1",
|
|
64
|
+
"ts-jest": "^27.0.7",
|
|
65
|
+
"typescript": "^4.5.2"
|
|
66
66
|
}
|
|
67
67
|
}
|
package/src/StorageUtils.ts
CHANGED
|
@@ -57,6 +57,17 @@ export namespace StorageUtils {
|
|
|
57
57
|
return Utils.parseString(data, defaultValue);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Get local storage object data
|
|
62
|
+
* @param key Key name
|
|
63
|
+
*/
|
|
64
|
+
export function getLocalObject<T extends {}>(key: string) {
|
|
65
|
+
// Get storage
|
|
66
|
+
const data = localStorage.getItem(key);
|
|
67
|
+
if (data == null) return undefined;
|
|
68
|
+
return <T>JSON.parse(data);
|
|
69
|
+
}
|
|
70
|
+
|
|
60
71
|
/**
|
|
61
72
|
* Get session storage data
|
|
62
73
|
* @param key Key name
|
|
@@ -68,4 +79,15 @@ export namespace StorageUtils {
|
|
|
68
79
|
// Return
|
|
69
80
|
return Utils.parseString(data, defaultValue);
|
|
70
81
|
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Get session storage object data
|
|
85
|
+
* @param key Key name
|
|
86
|
+
*/
|
|
87
|
+
export function getSessionObject<T extends {}>(key: string) {
|
|
88
|
+
// Get storage
|
|
89
|
+
const data = sessionStorage.getItem(key);
|
|
90
|
+
if (data == null) return undefined;
|
|
91
|
+
return <T>JSON.parse(data);
|
|
92
|
+
}
|
|
71
93
|
}
|
package/src/Utils.ts
CHANGED
|
@@ -115,9 +115,15 @@ export namespace Utils {
|
|
|
115
115
|
// Ignore fields, no process
|
|
116
116
|
if (ignoreFields.includes(key)) return;
|
|
117
117
|
|
|
118
|
-
//
|
|
118
|
+
// Compare with init value
|
|
119
119
|
const initValue = Reflect.get(initData, key);
|
|
120
120
|
|
|
121
|
+
if (value == null && initValue == null) {
|
|
122
|
+
// Both are null, it's equal
|
|
123
|
+
Reflect.deleteProperty(input, key);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
121
127
|
if (initValue != null) {
|
|
122
128
|
const newValue = DataTypes.convert(value, initValue);
|
|
123
129
|
if (newValue === initValue) {
|
|
@@ -309,26 +315,20 @@ export namespace Utils {
|
|
|
309
315
|
export const setLabels = (
|
|
310
316
|
source: {},
|
|
311
317
|
labels: DataTypes.StringRecord,
|
|
312
|
-
reference
|
|
318
|
+
reference?: Readonly<DataTypes.StringDictionary>
|
|
313
319
|
) => {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const labelKey = reference[key] ?? key;
|
|
320
|
+
Object.keys(source).forEach((key) => {
|
|
321
|
+
// Reference key
|
|
322
|
+
const labelKey = reference == null ? key : reference[key] ?? key;
|
|
318
323
|
|
|
319
|
-
|
|
320
|
-
|
|
324
|
+
// Label
|
|
325
|
+
const label = labels[labelKey];
|
|
321
326
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
return newLabels;
|
|
328
|
-
},
|
|
329
|
-
{} as DataTypes.StringDictionary
|
|
330
|
-
);
|
|
331
|
-
Object.assign(source, newLabels);
|
|
327
|
+
if (label != null) {
|
|
328
|
+
// If found, update
|
|
329
|
+
Reflect.set(source, key, label);
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
332
|
};
|
|
333
333
|
|
|
334
334
|
/**
|