@etsoo/shared 1.2.16 → 1.2.18

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 CHANGED
@@ -248,7 +248,7 @@ Numbers related utilities
248
248
  |formatFileSize|Format file size|
249
249
  |formatMoney|Format money number|
250
250
  |getCurrencySymbol|Get currency symbol or name from ISO code|
251
- |parse|Parse float value|
251
+ |parse|Parse to number, with or without default value|
252
252
  |toExact|To the exact precision number avoiding precision lost|
253
253
 
254
254
  ## StorageUtils
@@ -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(isNaN(NumberUtils.parse('a'))).toBeTruthy();
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', () => {
@@ -77,7 +77,7 @@ var ExtendUtils;
77
77
  */
78
78
  function sleep(delay = 0) {
79
79
  return new Promise((resolve) => {
80
- waitFor(() => resolve, delay);
80
+ waitFor(resolve, delay);
81
81
  });
82
82
  }
83
83
  ExtendUtils.sleep = sleep;
@@ -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 float value
45
+ * Parse number
46
46
  * @param rawData Raw data
47
47
  */
48
- const parse: (rawData: unknown) => number;
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
@@ -82,19 +82,21 @@ var NumberUtils;
82
82
  return symbol;
83
83
  }
84
84
  NumberUtils.getCurrencySymbol = getCurrencySymbol;
85
- /**
86
- * Parse float value
87
- * @param rawData Raw data
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
- return parseFloat(rawData.toString());
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
@@ -74,7 +74,7 @@ export var ExtendUtils;
74
74
  */
75
75
  function sleep(delay = 0) {
76
76
  return new Promise((resolve) => {
77
- waitFor(() => resolve, delay);
77
+ waitFor(resolve, delay);
78
78
  });
79
79
  }
80
80
  ExtendUtils.sleep = sleep;
@@ -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 float value
45
+ * Parse number
46
46
  * @param rawData Raw data
47
47
  */
48
- const parse: (rawData: unknown) => number;
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
@@ -79,19 +79,21 @@ export var NumberUtils;
79
79
  return symbol;
80
80
  }
81
81
  NumberUtils.getCurrencySymbol = getCurrencySymbol;
82
- /**
83
- * Parse float value
84
- * @param rawData Raw data
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
- return parseFloat(rawData.toString());
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.16",
3
+ "version": "1.2.18",
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.5",
58
- "@types/lodash.isequal": "^4.5.6",
57
+ "@types/jest": "^29.5.7",
58
+ "@types/lodash.isequal": "^4.5.7",
59
59
  "jest": "^29.7.0",
60
60
  "jest-environment-jsdom": "^29.7.0",
61
61
  "ts-jest": "^29.1.1",
@@ -81,7 +81,7 @@ export namespace ExtendUtils {
81
81
  */
82
82
  export function sleep(delay = 0) {
83
83
  return new Promise<void>((resolve) => {
84
- waitFor(() => resolve, delay);
84
+ waitFor(resolve, delay);
85
85
  });
86
86
  }
87
87
 
@@ -106,20 +106,35 @@ export namespace NumberUtils {
106
106
  }
107
107
 
108
108
  /**
109
- * Parse float value
109
+ * Parse number
110
110
  * @param rawData Raw data
111
111
  */
112
- export const parse = (rawData: unknown): number => {
113
- if (rawData == null) {
114
- return Number.NaN;
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
- return parseFloat(rawData.toString());
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