@etsoo/shared 1.2.17 → 1.2.19
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 +3 -1
- package/__tests__/NumberUtils.ts +4 -1
- package/lib/cjs/DataTypes.d.ts +12 -0
- package/lib/cjs/DataTypes.js +29 -1
- package/lib/cjs/NumberUtils.d.ts +8 -2
- package/lib/cjs/NumberUtils.js +11 -9
- package/lib/mjs/DataTypes.d.ts +12 -0
- package/lib/mjs/DataTypes.js +26 -0
- package/lib/mjs/NumberUtils.d.ts +8 -2
- package/lib/mjs/NumberUtils.js +11 -9
- package/package.json +3 -3
- package/src/DataTypes.ts +28 -0
- package/src/NumberUtils.ts +21 -6
package/README.md
CHANGED
|
@@ -171,8 +171,10 @@ Data type definitions and type safe functions. ListItemType, ListItemType1 and L
|
|
|
171
171
|
|getEnumByValue|Get enum item from value|
|
|
172
172
|
|getEnumKey|Get enum string literal type value|
|
|
173
173
|
|getEnumKeys|Get Enum keys|
|
|
174
|
+
|getListItemLabel|Get ListType2 item label|
|
|
174
175
|
|getIdValue|Get object id field value|
|
|
175
176
|
|getIdValue1|Get object id field value 1|
|
|
177
|
+
|getObjectItemLabel|Get object item label|
|
|
176
178
|
|getResult|Get input function or value result|
|
|
177
179
|
|getStringValue|Get object string field value|
|
|
178
180
|
|getValue|Get object field value|
|
|
@@ -248,7 +250,7 @@ Numbers related utilities
|
|
|
248
250
|
|formatFileSize|Format file size|
|
|
249
251
|
|formatMoney|Format money number|
|
|
250
252
|
|getCurrencySymbol|Get currency symbol or name from ISO code|
|
|
251
|
-
|parse|Parse
|
|
253
|
+
|parse|Parse to number, with or without default value|
|
|
252
254
|
|toExact|To the exact precision number avoiding precision lost|
|
|
253
255
|
|
|
254
256
|
## StorageUtils
|
package/__tests__/NumberUtils.ts
CHANGED
|
@@ -25,7 +25,10 @@ test('Tests for getCurrencySymbol', () => {
|
|
|
25
25
|
test('Tests for parse', () => {
|
|
26
26
|
expect(NumberUtils.parse('123')).toBe(123);
|
|
27
27
|
expect(NumberUtils.parse(Object(123))).toBe(123);
|
|
28
|
-
expect(
|
|
28
|
+
expect(NumberUtils.parse('a')).toBeUndefined();
|
|
29
|
+
expect(NumberUtils.parse('a', 0)).toBe(0);
|
|
30
|
+
expect(NumberUtils.parse('')).toBeUndefined();
|
|
31
|
+
expect(NumberUtils.parse('', -1)).toBe(-1);
|
|
29
32
|
});
|
|
30
33
|
|
|
31
34
|
test('Tests for parseWithUnit', () => {
|
package/lib/cjs/DataTypes.d.ts
CHANGED
|
@@ -434,3 +434,15 @@ export type LabelDefaultType<T extends object> = T extends {
|
|
|
434
434
|
export type TitleDefaultType<T extends object> = T extends {
|
|
435
435
|
title: string;
|
|
436
436
|
} ? DataTypes.Keys<T, string> & 'title' : DataTypes.Keys<T, string>;
|
|
437
|
+
/**
|
|
438
|
+
* Get ListType2 item label
|
|
439
|
+
* @param item Item
|
|
440
|
+
* @returns Result
|
|
441
|
+
*/
|
|
442
|
+
export declare function getListItemLabel<D extends ListType2>(item: D): string;
|
|
443
|
+
/**
|
|
444
|
+
* Get object item label
|
|
445
|
+
* @param item Item
|
|
446
|
+
* @returns Result
|
|
447
|
+
*/
|
|
448
|
+
export declare function getObjectItemLabel(item: object): string;
|
package/lib/cjs/DataTypes.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Before was wrong with {}, from 4.8 unknown = {} | null | undefined
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.DataTypes = void 0;
|
|
8
|
+
exports.getObjectItemLabel = exports.getListItemLabel = exports.DataTypes = void 0;
|
|
9
9
|
/**
|
|
10
10
|
* Interface data types
|
|
11
11
|
*/
|
|
@@ -429,3 +429,31 @@ var DataTypes;
|
|
|
429
429
|
}
|
|
430
430
|
DataTypes.jsonReplacer = jsonReplacer;
|
|
431
431
|
})(DataTypes || (exports.DataTypes = DataTypes = {}));
|
|
432
|
+
/**
|
|
433
|
+
* Get ListType2 item label
|
|
434
|
+
* @param item Item
|
|
435
|
+
* @returns Result
|
|
436
|
+
*/
|
|
437
|
+
function getListItemLabel(item) {
|
|
438
|
+
return 'label' in item
|
|
439
|
+
? item.label
|
|
440
|
+
: 'name' in item
|
|
441
|
+
? item.name
|
|
442
|
+
: item.title;
|
|
443
|
+
}
|
|
444
|
+
exports.getListItemLabel = getListItemLabel;
|
|
445
|
+
/**
|
|
446
|
+
* Get object item label
|
|
447
|
+
* @param item Item
|
|
448
|
+
* @returns Result
|
|
449
|
+
*/
|
|
450
|
+
function getObjectItemLabel(item) {
|
|
451
|
+
return 'label' in item
|
|
452
|
+
? `${item.label}`
|
|
453
|
+
: 'name' in item
|
|
454
|
+
? `${item.name}`
|
|
455
|
+
: 'title' in item
|
|
456
|
+
? `${item.title}`
|
|
457
|
+
: `${item}`;
|
|
458
|
+
}
|
|
459
|
+
exports.getObjectItemLabel = getObjectItemLabel;
|
package/lib/cjs/NumberUtils.d.ts
CHANGED
|
@@ -42,10 +42,16 @@ export declare namespace NumberUtils {
|
|
|
42
42
|
*/
|
|
43
43
|
function getCurrencySymbol(code: string, display?: 'symbol' | 'narrowSymbol' | 'name', locale?: string): string | undefined;
|
|
44
44
|
/**
|
|
45
|
-
* Parse
|
|
45
|
+
* Parse number
|
|
46
46
|
* @param rawData Raw data
|
|
47
47
|
*/
|
|
48
|
-
|
|
48
|
+
function parse(rawData: unknown): number | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Parse number with default value
|
|
51
|
+
* @param rawData Raw data
|
|
52
|
+
* @param defaultValue Default value
|
|
53
|
+
*/
|
|
54
|
+
function parse(rawData: unknown, defaultValue: number): number;
|
|
49
55
|
/**
|
|
50
56
|
* Parse float value and unit
|
|
51
57
|
* @param input Input string
|
package/lib/cjs/NumberUtils.js
CHANGED
|
@@ -82,19 +82,21 @@ var NumberUtils;
|
|
|
82
82
|
return symbol;
|
|
83
83
|
}
|
|
84
84
|
NumberUtils.getCurrencySymbol = getCurrencySymbol;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
*/
|
|
89
|
-
NumberUtils.parse = (rawData) => {
|
|
90
|
-
if (rawData == null) {
|
|
91
|
-
return Number.NaN;
|
|
85
|
+
function parse(rawData, defaultValue) {
|
|
86
|
+
if (rawData == null || rawData === '') {
|
|
87
|
+
return defaultValue;
|
|
92
88
|
}
|
|
93
89
|
if (typeof rawData === 'number') {
|
|
90
|
+
if (isNaN(rawData))
|
|
91
|
+
return defaultValue;
|
|
94
92
|
return rawData;
|
|
95
93
|
}
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
const p = parseFloat(rawData.toString());
|
|
95
|
+
if (isNaN(p))
|
|
96
|
+
return defaultValue;
|
|
97
|
+
return p;
|
|
98
|
+
}
|
|
99
|
+
NumberUtils.parse = parse;
|
|
98
100
|
/**
|
|
99
101
|
* Parse float value and unit
|
|
100
102
|
* @param input Input string
|
package/lib/mjs/DataTypes.d.ts
CHANGED
|
@@ -434,3 +434,15 @@ export type LabelDefaultType<T extends object> = T extends {
|
|
|
434
434
|
export type TitleDefaultType<T extends object> = T extends {
|
|
435
435
|
title: string;
|
|
436
436
|
} ? DataTypes.Keys<T, string> & 'title' : DataTypes.Keys<T, string>;
|
|
437
|
+
/**
|
|
438
|
+
* Get ListType2 item label
|
|
439
|
+
* @param item Item
|
|
440
|
+
* @returns Result
|
|
441
|
+
*/
|
|
442
|
+
export declare function getListItemLabel<D extends ListType2>(item: D): string;
|
|
443
|
+
/**
|
|
444
|
+
* Get object item label
|
|
445
|
+
* @param item Item
|
|
446
|
+
* @returns Result
|
|
447
|
+
*/
|
|
448
|
+
export declare function getObjectItemLabel(item: object): string;
|
package/lib/mjs/DataTypes.js
CHANGED
|
@@ -426,3 +426,29 @@ export var DataTypes;
|
|
|
426
426
|
}
|
|
427
427
|
DataTypes.jsonReplacer = jsonReplacer;
|
|
428
428
|
})(DataTypes || (DataTypes = {}));
|
|
429
|
+
/**
|
|
430
|
+
* Get ListType2 item label
|
|
431
|
+
* @param item Item
|
|
432
|
+
* @returns Result
|
|
433
|
+
*/
|
|
434
|
+
export function getListItemLabel(item) {
|
|
435
|
+
return 'label' in item
|
|
436
|
+
? item.label
|
|
437
|
+
: 'name' in item
|
|
438
|
+
? item.name
|
|
439
|
+
: item.title;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Get object item label
|
|
443
|
+
* @param item Item
|
|
444
|
+
* @returns Result
|
|
445
|
+
*/
|
|
446
|
+
export function getObjectItemLabel(item) {
|
|
447
|
+
return 'label' in item
|
|
448
|
+
? `${item.label}`
|
|
449
|
+
: 'name' in item
|
|
450
|
+
? `${item.name}`
|
|
451
|
+
: 'title' in item
|
|
452
|
+
? `${item.title}`
|
|
453
|
+
: `${item}`;
|
|
454
|
+
}
|
package/lib/mjs/NumberUtils.d.ts
CHANGED
|
@@ -42,10 +42,16 @@ export declare namespace NumberUtils {
|
|
|
42
42
|
*/
|
|
43
43
|
function getCurrencySymbol(code: string, display?: 'symbol' | 'narrowSymbol' | 'name', locale?: string): string | undefined;
|
|
44
44
|
/**
|
|
45
|
-
* Parse
|
|
45
|
+
* Parse number
|
|
46
46
|
* @param rawData Raw data
|
|
47
47
|
*/
|
|
48
|
-
|
|
48
|
+
function parse(rawData: unknown): number | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Parse number with default value
|
|
51
|
+
* @param rawData Raw data
|
|
52
|
+
* @param defaultValue Default value
|
|
53
|
+
*/
|
|
54
|
+
function parse(rawData: unknown, defaultValue: number): number;
|
|
49
55
|
/**
|
|
50
56
|
* Parse float value and unit
|
|
51
57
|
* @param input Input string
|
package/lib/mjs/NumberUtils.js
CHANGED
|
@@ -79,19 +79,21 @@ export var NumberUtils;
|
|
|
79
79
|
return symbol;
|
|
80
80
|
}
|
|
81
81
|
NumberUtils.getCurrencySymbol = getCurrencySymbol;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
*/
|
|
86
|
-
NumberUtils.parse = (rawData) => {
|
|
87
|
-
if (rawData == null) {
|
|
88
|
-
return Number.NaN;
|
|
82
|
+
function parse(rawData, defaultValue) {
|
|
83
|
+
if (rawData == null || rawData === '') {
|
|
84
|
+
return defaultValue;
|
|
89
85
|
}
|
|
90
86
|
if (typeof rawData === 'number') {
|
|
87
|
+
if (isNaN(rawData))
|
|
88
|
+
return defaultValue;
|
|
91
89
|
return rawData;
|
|
92
90
|
}
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
const p = parseFloat(rawData.toString());
|
|
92
|
+
if (isNaN(p))
|
|
93
|
+
return defaultValue;
|
|
94
|
+
return p;
|
|
95
|
+
}
|
|
96
|
+
NumberUtils.parse = parse;
|
|
95
97
|
/**
|
|
96
98
|
* Parse float value and unit
|
|
97
99
|
* @param input Input string
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/shared",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.19",
|
|
4
4
|
"description": "TypeScript shared utilities and functions",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
},
|
|
55
55
|
"homepage": "https://github.com/ETSOO/Shared#readme",
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@types/jest": "^29.5.
|
|
58
|
-
"@types/lodash.isequal": "^4.5.
|
|
57
|
+
"@types/jest": "^29.5.8",
|
|
58
|
+
"@types/lodash.isequal": "^4.5.8",
|
|
59
59
|
"jest": "^29.7.0",
|
|
60
60
|
"jest-environment-jsdom": "^29.7.0",
|
|
61
61
|
"ts-jest": "^29.1.1",
|
package/src/DataTypes.ts
CHANGED
|
@@ -787,3 +787,31 @@ export type LabelDefaultType<T extends object> = T extends { label: string }
|
|
|
787
787
|
export type TitleDefaultType<T extends object> = T extends { title: string }
|
|
788
788
|
? DataTypes.Keys<T, string> & 'title'
|
|
789
789
|
: DataTypes.Keys<T, string>;
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Get ListType2 item label
|
|
793
|
+
* @param item Item
|
|
794
|
+
* @returns Result
|
|
795
|
+
*/
|
|
796
|
+
export function getListItemLabel<D extends ListType2>(item: D) {
|
|
797
|
+
return 'label' in item
|
|
798
|
+
? item.label
|
|
799
|
+
: 'name' in item
|
|
800
|
+
? item.name
|
|
801
|
+
: item.title;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Get object item label
|
|
806
|
+
* @param item Item
|
|
807
|
+
* @returns Result
|
|
808
|
+
*/
|
|
809
|
+
export function getObjectItemLabel(item: object): string {
|
|
810
|
+
return 'label' in item
|
|
811
|
+
? `${item.label}`
|
|
812
|
+
: 'name' in item
|
|
813
|
+
? `${item.name}`
|
|
814
|
+
: 'title' in item
|
|
815
|
+
? `${item.title}`
|
|
816
|
+
: `${item}`;
|
|
817
|
+
}
|
package/src/NumberUtils.ts
CHANGED
|
@@ -106,20 +106,35 @@ export namespace NumberUtils {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
* Parse
|
|
109
|
+
* Parse number
|
|
110
110
|
* @param rawData Raw data
|
|
111
111
|
*/
|
|
112
|
-
export
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
export function parse(rawData: unknown): number | undefined;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Parse number with default value
|
|
116
|
+
* @param rawData Raw data
|
|
117
|
+
* @param defaultValue Default value
|
|
118
|
+
*/
|
|
119
|
+
export function parse(rawData: unknown, defaultValue: number): number;
|
|
120
|
+
|
|
121
|
+
export function parse(
|
|
122
|
+
rawData: unknown,
|
|
123
|
+
defaultValue?: number
|
|
124
|
+
): number | undefined {
|
|
125
|
+
if (rawData == null || rawData === '') {
|
|
126
|
+
return defaultValue;
|
|
115
127
|
}
|
|
116
128
|
|
|
117
129
|
if (typeof rawData === 'number') {
|
|
130
|
+
if (isNaN(rawData)) return defaultValue;
|
|
118
131
|
return rawData;
|
|
119
132
|
}
|
|
120
133
|
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
const p = parseFloat(rawData.toString());
|
|
135
|
+
if (isNaN(p)) return defaultValue;
|
|
136
|
+
return p;
|
|
137
|
+
}
|
|
123
138
|
|
|
124
139
|
/**
|
|
125
140
|
* Parse float value and unit
|