@etsoo/shared 1.1.90 → 1.1.91
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/__tests__/Utils.ts +22 -0
- package/lib/cjs/DataTypes.js +4 -3
- package/lib/mjs/DataTypes.js +4 -3
- package/package.json +2 -2
- package/src/DataTypes.ts +3 -3
package/__tests__/Utils.ts
CHANGED
|
@@ -84,6 +84,28 @@ test('Tests for getDataChanges', () => {
|
|
|
84
84
|
expect(input.amount).toBeUndefined();
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
+
test('Tests for object array getDataChanges', () => {
|
|
88
|
+
const input = {
|
|
89
|
+
id: 1,
|
|
90
|
+
ids: [1, 2],
|
|
91
|
+
items: [
|
|
92
|
+
{ id: 1, label: 'a' },
|
|
93
|
+
{ id: 2, label: 'b' }
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
const initData = {
|
|
97
|
+
id: 1,
|
|
98
|
+
ids: [1],
|
|
99
|
+
items: [
|
|
100
|
+
{ id: 1, label: 'a' },
|
|
101
|
+
{ id: 2, label: 'b' }
|
|
102
|
+
]
|
|
103
|
+
};
|
|
104
|
+
const fields = Utils.getDataChanges(input, initData);
|
|
105
|
+
expect(fields).toStrictEqual(['ids']);
|
|
106
|
+
expect(input.items).toBeUndefined();
|
|
107
|
+
});
|
|
108
|
+
|
|
87
109
|
test('Tests for exclude', () => {
|
|
88
110
|
const options = [
|
|
89
111
|
{ id1: 1, name: 'a' },
|
package/lib/cjs/DataTypes.js
CHANGED
|
@@ -99,7 +99,6 @@ var DataTypes;
|
|
|
99
99
|
* @returns Converted value
|
|
100
100
|
*/
|
|
101
101
|
function convert(input, target) {
|
|
102
|
-
var _a;
|
|
103
102
|
// null or undefined
|
|
104
103
|
if (input == null)
|
|
105
104
|
return undefined;
|
|
@@ -107,7 +106,9 @@ var DataTypes;
|
|
|
107
106
|
if (Array.isArray(target)) {
|
|
108
107
|
// Element item
|
|
109
108
|
const elementItem = target.length > 0 ? target[0] : input;
|
|
110
|
-
const elementType =
|
|
109
|
+
const elementType = getBasicNameByValue(elementItem, true);
|
|
110
|
+
if (elementType == null)
|
|
111
|
+
return input;
|
|
111
112
|
return convertByType(input, elementType);
|
|
112
113
|
}
|
|
113
114
|
// Target type
|
|
@@ -140,7 +141,7 @@ var DataTypes;
|
|
|
140
141
|
? input.split(/,\s*/g) // Support comma separated array
|
|
141
142
|
: [input];
|
|
142
143
|
// Element type
|
|
143
|
-
const elementType = (targetType.
|
|
144
|
+
const elementType = (targetType.slice(0, targetType.length - 2));
|
|
144
145
|
// Convert type
|
|
145
146
|
return (inputArray
|
|
146
147
|
.map((item) => convertByType(item, elementType))
|
package/lib/mjs/DataTypes.js
CHANGED
|
@@ -96,7 +96,6 @@ export var DataTypes;
|
|
|
96
96
|
* @returns Converted value
|
|
97
97
|
*/
|
|
98
98
|
function convert(input, target) {
|
|
99
|
-
var _a;
|
|
100
99
|
// null or undefined
|
|
101
100
|
if (input == null)
|
|
102
101
|
return undefined;
|
|
@@ -104,7 +103,9 @@ export var DataTypes;
|
|
|
104
103
|
if (Array.isArray(target)) {
|
|
105
104
|
// Element item
|
|
106
105
|
const elementItem = target.length > 0 ? target[0] : input;
|
|
107
|
-
const elementType =
|
|
106
|
+
const elementType = getBasicNameByValue(elementItem, true);
|
|
107
|
+
if (elementType == null)
|
|
108
|
+
return input;
|
|
108
109
|
return convertByType(input, elementType);
|
|
109
110
|
}
|
|
110
111
|
// Target type
|
|
@@ -137,7 +138,7 @@ export var DataTypes;
|
|
|
137
138
|
? input.split(/,\s*/g) // Support comma separated array
|
|
138
139
|
: [input];
|
|
139
140
|
// Element type
|
|
140
|
-
const elementType = (targetType.
|
|
141
|
+
const elementType = (targetType.slice(0, targetType.length - 2));
|
|
141
142
|
// Convert type
|
|
142
143
|
return (inputArray
|
|
143
144
|
.map((item) => convertByType(item, elementType))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/shared",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.91",
|
|
4
4
|
"description": "TypeScript shared utilities and functions",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"homepage": "https://github.com/ETSOO/Shared#readme",
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@types/jest": "^29.
|
|
57
|
+
"@types/jest": "^29.5.0",
|
|
58
58
|
"@types/lodash.isequal": "^4.5.6",
|
|
59
59
|
"jest": "^29.5.0",
|
|
60
60
|
"jest-environment-jsdom": "^29.5.0",
|
package/src/DataTypes.ts
CHANGED
|
@@ -356,9 +356,9 @@ export namespace DataTypes {
|
|
|
356
356
|
if (Array.isArray(target)) {
|
|
357
357
|
// Element item
|
|
358
358
|
const elementItem = target.length > 0 ? target[0] : input;
|
|
359
|
-
const elementType =
|
|
360
|
-
getBasicNameByValue(elementItem, true) ?? 'unknown[]';
|
|
359
|
+
const elementType = getBasicNameByValue(elementItem, true);
|
|
361
360
|
|
|
361
|
+
if (elementType == null) return <T>input;
|
|
362
362
|
return <any>convertByType(input, elementType);
|
|
363
363
|
}
|
|
364
364
|
|
|
@@ -400,7 +400,7 @@ export namespace DataTypes {
|
|
|
400
400
|
|
|
401
401
|
// Element type
|
|
402
402
|
const elementType = <BasicNames>(
|
|
403
|
-
targetType.
|
|
403
|
+
targetType.slice(0, targetType.length - 2)
|
|
404
404
|
);
|
|
405
405
|
|
|
406
406
|
// Convert type
|