@lowentry/utils 1.25.3 → 2.0.3
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/LICENSE +23 -0
- package/README.md +0 -2
- package/dist/src/LeTypes.d.ts +73 -0
- package/dist/src/LeTypes.d.ts.map +1 -0
- package/dist/src/LeTypes.js +235 -0
- package/dist/src/LeTypes.js.map +1 -0
- package/dist/src/LeUtils.d.ts +745 -0
- package/dist/src/LeUtils.d.ts.map +1 -0
- package/dist/src/LeUtils.js +3168 -0
- package/dist/src/LeUtils.js.map +1 -0
- package/dist/src/classes/EventEmitter.d.ts +51 -0
- package/dist/src/classes/EventEmitter.d.ts.map +1 -0
- package/dist/src/classes/EventEmitter.js +94 -0
- package/dist/src/classes/EventEmitter.js.map +1 -0
- package/dist/src/classes/LinkedList.d.ts +35 -0
- package/dist/src/classes/LinkedList.d.ts.map +1 -0
- package/dist/src/classes/LinkedList.js +99 -0
- package/dist/src/classes/LinkedList.js.map +1 -0
- package/dist/src/classes/SerializableMap.d.ts +14 -0
- package/dist/src/classes/SerializableMap.d.ts.map +1 -0
- package/dist/src/classes/SerializableMap.js +27 -0
- package/dist/src/classes/SerializableMap.js.map +1 -0
- package/dist/src/classes/TreeSet.d.ts +123 -0
- package/dist/src/classes/TreeSet.d.ts.map +1 -0
- package/dist/src/classes/TreeSet.js +210 -0
- package/dist/src/classes/TreeSet.js.map +1 -0
- package/dist/src/index.d.ts +148 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +13 -0
- package/dist/src/index.js.map +1 -0
- package/dist/tests/CustomClasses.test.d.ts +2 -0
- package/dist/tests/CustomClasses.test.d.ts.map +1 -0
- package/dist/tests/CustomClasses.test.js +138 -0
- package/dist/tests/CustomClasses.test.js.map +1 -0
- package/dist/tests/LeClasses.EventEmitter.test.d.ts +2 -0
- package/dist/tests/LeClasses.EventEmitter.test.d.ts.map +1 -0
- package/dist/tests/LeClasses.EventEmitter.test.js +39 -0
- package/dist/tests/LeClasses.EventEmitter.test.js.map +1 -0
- package/dist/tests/LeClasses.LinkedList.test.d.ts +2 -0
- package/dist/tests/LeClasses.LinkedList.test.d.ts.map +1 -0
- package/dist/tests/LeClasses.LinkedList.test.js +36 -0
- package/dist/tests/LeClasses.LinkedList.test.js.map +1 -0
- package/dist/tests/LeClasses.SerializableMap.test.d.ts +2 -0
- package/dist/tests/LeClasses.SerializableMap.test.d.ts.map +1 -0
- package/dist/tests/LeClasses.SerializableMap.test.js +25 -0
- package/dist/tests/LeClasses.SerializableMap.test.js.map +1 -0
- package/dist/tests/LeClasses.TreeSet.test.d.ts +2 -0
- package/dist/tests/LeClasses.TreeSet.test.d.ts.map +1 -0
- package/dist/tests/LeClasses.TreeSet.test.js +28 -0
- package/dist/tests/LeClasses.TreeSet.test.js.map +1 -0
- package/dist/tests/LeTypes.ARRAY.test.d.ts +2 -0
- package/dist/tests/LeTypes.ARRAY.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.ARRAY.test.js +103 -0
- package/dist/tests/LeTypes.ARRAY.test.js.map +1 -0
- package/dist/tests/LeTypes.BOOL.test.d.ts +2 -0
- package/dist/tests/LeTypes.BOOL.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.BOOL.test.js +138 -0
- package/dist/tests/LeTypes.BOOL.test.js.map +1 -0
- package/dist/tests/LeTypes.FLOAT.test.d.ts +2 -0
- package/dist/tests/LeTypes.FLOAT.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.FLOAT.test.js +120 -0
- package/dist/tests/LeTypes.FLOAT.test.js.map +1 -0
- package/dist/tests/LeTypes.FLOAT_ANY.test.d.ts +2 -0
- package/dist/tests/LeTypes.FLOAT_ANY.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.FLOAT_ANY.test.js +47 -0
- package/dist/tests/LeTypes.FLOAT_ANY.test.js.map +1 -0
- package/dist/tests/LeTypes.INT.test.d.ts +2 -0
- package/dist/tests/LeTypes.INT.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.INT.test.js +80 -0
- package/dist/tests/LeTypes.INT.test.js.map +1 -0
- package/dist/tests/LeTypes.INT_ANY.test.d.ts +2 -0
- package/dist/tests/LeTypes.INT_ANY.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.INT_ANY.test.js +37 -0
- package/dist/tests/LeTypes.INT_ANY.test.js.map +1 -0
- package/dist/tests/LeTypes.ISSET.test.d.ts +2 -0
- package/dist/tests/LeTypes.ISSET.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.ISSET.test.js +113 -0
- package/dist/tests/LeTypes.ISSET.test.js.map +1 -0
- package/dist/tests/LeTypes.IS_ARRAY.test.d.ts +2 -0
- package/dist/tests/LeTypes.IS_ARRAY.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.IS_ARRAY.test.js +81 -0
- package/dist/tests/LeTypes.IS_ARRAY.test.js.map +1 -0
- package/dist/tests/LeTypes.IS_OBJECT.test.d.ts +2 -0
- package/dist/tests/LeTypes.IS_OBJECT.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.IS_OBJECT.test.js +98 -0
- package/dist/tests/LeTypes.IS_OBJECT.test.js.map +1 -0
- package/dist/tests/LeTypes.LAX.test.d.ts +2 -0
- package/dist/tests/LeTypes.LAX.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.LAX.test.js +89 -0
- package/dist/tests/LeTypes.LAX.test.js.map +1 -0
- package/dist/tests/LeTypes.OBJECT.test.d.ts +2 -0
- package/dist/tests/LeTypes.OBJECT.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.OBJECT.test.js +81 -0
- package/dist/tests/LeTypes.OBJECT.test.js.map +1 -0
- package/dist/tests/LeTypes.STRING.test.d.ts +2 -0
- package/dist/tests/LeTypes.STRING.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.STRING.test.js +204 -0
- package/dist/tests/LeTypes.STRING.test.js.map +1 -0
- package/dist/tests/LeTypes.STRING_ANY.test.d.ts +2 -0
- package/dist/tests/LeTypes.STRING_ANY.test.d.ts.map +1 -0
- package/dist/tests/LeTypes.STRING_ANY.test.js +58 -0
- package/dist/tests/LeTypes.STRING_ANY.test.js.map +1 -0
- package/dist/tests/LeUtils.clone.test.d.ts +2 -0
- package/dist/tests/LeUtils.clone.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.clone.test.js +180 -0
- package/dist/tests/LeUtils.clone.test.js.map +1 -0
- package/dist/tests/LeUtils.collections.test.d.ts +2 -0
- package/dist/tests/LeUtils.collections.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.collections.test.js +149 -0
- package/dist/tests/LeUtils.collections.test.js.map +1 -0
- package/dist/tests/LeUtils.comparison.test.d.ts +2 -0
- package/dist/tests/LeUtils.comparison.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.comparison.test.js +125 -0
- package/dist/tests/LeUtils.comparison.test.js.map +1 -0
- package/dist/tests/LeUtils.contains.test.d.ts +2 -0
- package/dist/tests/LeUtils.contains.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.contains.test.js +52 -0
- package/dist/tests/LeUtils.contains.test.js.map +1 -0
- package/dist/tests/LeUtils.each.test.d.ts +2 -0
- package/dist/tests/LeUtils.each.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.each.test.js +267 -0
- package/dist/tests/LeUtils.each.test.js.map +1 -0
- package/dist/tests/LeUtils.eachAsync.test.d.ts +2 -0
- package/dist/tests/LeUtils.eachAsync.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.eachAsync.test.js +80 -0
- package/dist/tests/LeUtils.eachAsync.test.js.map +1 -0
- package/dist/tests/LeUtils.encoding.test.d.ts +2 -0
- package/dist/tests/LeUtils.encoding.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.encoding.test.js +45 -0
- package/dist/tests/LeUtils.encoding.test.js.map +1 -0
- package/dist/tests/LeUtils.equals.test.d.ts +2 -0
- package/dist/tests/LeUtils.equals.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.equals.test.js +328 -0
- package/dist/tests/LeUtils.equals.test.js.map +1 -0
- package/dist/tests/LeUtils.flatten.test.d.ts +2 -0
- package/dist/tests/LeUtils.flatten.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.flatten.test.js +30 -0
- package/dist/tests/LeUtils.flatten.test.js.map +1 -0
- package/dist/tests/LeUtils.misc.test.d.ts +2 -0
- package/dist/tests/LeUtils.misc.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.misc.test.js +50 -0
- package/dist/tests/LeUtils.misc.test.js.map +1 -0
- package/dist/tests/LeUtils.misc2.test.d.ts +2 -0
- package/dist/tests/LeUtils.misc2.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.misc2.test.js +58 -0
- package/dist/tests/LeUtils.misc2.test.js.map +1 -0
- package/dist/tests/LeUtils.newlyAdded.test.d.ts +2 -0
- package/dist/tests/LeUtils.newlyAdded.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.newlyAdded.test.js +121 -0
- package/dist/tests/LeUtils.newlyAdded.test.js.map +1 -0
- package/dist/tests/LeUtils.strings.test.d.ts +2 -0
- package/dist/tests/LeUtils.strings.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.strings.test.js +125 -0
- package/dist/tests/LeUtils.strings.test.js.map +1 -0
- package/dist/tests/LeUtils.timing.test.d.ts +2 -0
- package/dist/tests/LeUtils.timing.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.timing.test.js +72 -0
- package/dist/tests/LeUtils.timing.test.js.map +1 -0
- package/dist/tests/LeUtils.transactional.test.d.ts +2 -0
- package/dist/tests/LeUtils.transactional.test.d.ts.map +1 -0
- package/dist/tests/LeUtils.transactional.test.js +39 -0
- package/dist/tests/LeUtils.transactional.test.js.map +1 -0
- package/dist/tests/setup.d.ts +2 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/tests/setup.js +6 -0
- package/dist/tests/setup.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +21 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +52 -53
- package/api-extractor.json +0 -43
- package/index.d.ts +0 -454
- package/index.js +0 -4160
- package/index.js.map +0 -1
- package/src/LeTypes.js +0 -254
- package/src/LeUtils.js +0 -3611
- package/src/classes/EventEmitter.js +0 -124
- package/src/classes/LinkedList.js +0 -145
- package/src/classes/SerializableMap.js +0 -17
- package/src/classes/TreeSet.js +0 -235
- package/src/index.js +0 -6
- package/tsconfig.d.ts +0 -1
- package/tsconfig.json +0 -39
package/LICENSE
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Low Entry
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
|
package/README.md
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Provides utilities for general JavaScript development.
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
## Description
|
|
7
6
|
|
|
8
7
|
This plugin adds utility functions and classes to make it easier to program general JavaScript.
|
|
@@ -17,7 +16,6 @@ Think about things such as:
|
|
|
17
16
|
|
|
18
17
|
It's basically just a collection of general JavaScript utilities.
|
|
19
18
|
|
|
20
|
-
|
|
21
19
|
## Final words
|
|
22
20
|
|
|
23
21
|
I hope this plugin will be useful to you. If you have any questions or suggestions, please feel free to get in touch at [LowEntry.com](https://lowentry.com/).
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LeTypes - Type validation and conversion utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a value is set (not null and not undefined).
|
|
6
|
+
*/
|
|
7
|
+
export declare function ISSET(value: unknown): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Converts value to string. Returns empty string if not set.
|
|
10
|
+
*/
|
|
11
|
+
export declare function STRING(value: unknown): string;
|
|
12
|
+
/**
|
|
13
|
+
* Checks if value is an array.
|
|
14
|
+
*/
|
|
15
|
+
export declare function IS_ARRAY(value: unknown): value is unknown[];
|
|
16
|
+
/**
|
|
17
|
+
* Ensures value is an array. Wraps in array if not already one.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ARRAY(value: unknown): unknown[];
|
|
20
|
+
/**
|
|
21
|
+
* Checks if value is an object (and not an array).
|
|
22
|
+
*/
|
|
23
|
+
export declare function IS_OBJECT(value: unknown): value is Record<string, unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Ensures value is an object. Returns empty object if not set.
|
|
26
|
+
*/
|
|
27
|
+
export declare function OBJECT(value: unknown): Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Converts value to number. Returns 0 if NaN.
|
|
30
|
+
*/
|
|
31
|
+
export declare function FLOAT(value: unknown): number;
|
|
32
|
+
/**
|
|
33
|
+
* Converts value to integer. Returns 0 if NaN.
|
|
34
|
+
*/
|
|
35
|
+
export declare function INT(value: unknown): number;
|
|
36
|
+
/**
|
|
37
|
+
* Returns first set string among arguments.
|
|
38
|
+
*/
|
|
39
|
+
export declare function STRING_ANY(...values: unknown[]): string;
|
|
40
|
+
/**
|
|
41
|
+
* Returns first set float among arguments.
|
|
42
|
+
*/
|
|
43
|
+
export declare function FLOAT_ANY(...values: unknown[]): number;
|
|
44
|
+
/**
|
|
45
|
+
* Returns first set integer among arguments.
|
|
46
|
+
*/
|
|
47
|
+
export declare function INT_ANY(...values: unknown[]): number;
|
|
48
|
+
/**
|
|
49
|
+
* Converts value to boolean.
|
|
50
|
+
* Matches strings "true", "1", "yes", "on" (case-insensitive).
|
|
51
|
+
*/
|
|
52
|
+
export declare function BOOL(value: unknown): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Returns the first non-null non-undefined boolean-castable value as a boolean.
|
|
55
|
+
*/
|
|
56
|
+
export declare function BOOL_ANY(...values: unknown[]): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Lax float conversion. Strips non-numeric characters.
|
|
59
|
+
*/
|
|
60
|
+
export declare function FLOAT_LAX(value: unknown): number;
|
|
61
|
+
/**
|
|
62
|
+
* Lax integer conversion.
|
|
63
|
+
*/
|
|
64
|
+
export declare function INT_LAX(value: unknown): number;
|
|
65
|
+
/**
|
|
66
|
+
* Returns first set lax float.
|
|
67
|
+
*/
|
|
68
|
+
export declare function FLOAT_LAX_ANY(...values: unknown[]): number;
|
|
69
|
+
/**
|
|
70
|
+
* Returns first set lax integer.
|
|
71
|
+
*/
|
|
72
|
+
export declare function INT_LAX_ANY(...values: unknown[]): number;
|
|
73
|
+
//# sourceMappingURL=LeTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeTypes.d.ts","sourceRoot":"","sources":["../../src/LeTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG7C;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAsD7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAG3D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAW/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO9D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyB5C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAUvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CActD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAGpD;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CA4CtD;AAID;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiBhD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAc1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAGxD"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LeTypes - Type validation and conversion utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a value is set (not null and not undefined).
|
|
6
|
+
*/
|
|
7
|
+
export function ISSET(value) {
|
|
8
|
+
return (value !== null) && (typeof value !== 'undefined');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Converts value to string. Returns empty string if not set.
|
|
12
|
+
*/
|
|
13
|
+
export function STRING(value) {
|
|
14
|
+
if (!ISSET(value)) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === 'string') {
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
21
|
+
return String(value);
|
|
22
|
+
}
|
|
23
|
+
if (typeof value === 'symbol') {
|
|
24
|
+
return value.description ?? '';
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === 'bigint') {
|
|
27
|
+
return value.toString();
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
if (typeof value === 'object' && value !== null) {
|
|
31
|
+
if (Object.getPrototypeOf(value) === null) {
|
|
32
|
+
// Type guard: check if toString exists and is a function
|
|
33
|
+
if ('toString' in value && typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {
|
|
34
|
+
try {
|
|
35
|
+
const result = value.toString();
|
|
36
|
+
if (typeof result === 'string') {
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Ignore error
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
return String(value);
|
|
47
|
+
}
|
|
48
|
+
return String(value);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks if value is an array.
|
|
56
|
+
*/
|
|
57
|
+
export function IS_ARRAY(value) {
|
|
58
|
+
return Array.isArray(value);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Ensures value is an array. Wraps in array if not already one.
|
|
62
|
+
*/
|
|
63
|
+
export function ARRAY(value) {
|
|
64
|
+
if (Array.isArray(value)) {
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
if (typeof value === 'undefined') {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
return [value];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks if value is an object (and not an array).
|
|
74
|
+
*/
|
|
75
|
+
export function IS_OBJECT(value) {
|
|
76
|
+
return (typeof value === 'object') && (value !== null) && !Array.isArray(value);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Ensures value is an object. Returns empty object if not set.
|
|
80
|
+
*/
|
|
81
|
+
export function OBJECT(value) {
|
|
82
|
+
if (IS_OBJECT(value)) {
|
|
83
|
+
return value;
|
|
84
|
+
}
|
|
85
|
+
return {};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Converts value to number. Returns 0 if NaN.
|
|
89
|
+
*/
|
|
90
|
+
export function FLOAT(value) {
|
|
91
|
+
if (typeof value === 'symbol') {
|
|
92
|
+
const v = Number(value.description ?? '');
|
|
93
|
+
return isNaN(v) ? 0 : v;
|
|
94
|
+
}
|
|
95
|
+
if (typeof value === 'bigint') {
|
|
96
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
97
|
+
return Number.MAX_SAFE_INTEGER;
|
|
98
|
+
}
|
|
99
|
+
if (value < BigInt(Number.MIN_SAFE_INTEGER)) {
|
|
100
|
+
return Number.MIN_SAFE_INTEGER;
|
|
101
|
+
}
|
|
102
|
+
return Number(value);
|
|
103
|
+
}
|
|
104
|
+
const v = Number(value);
|
|
105
|
+
if (!isNaN(v)) {
|
|
106
|
+
return v;
|
|
107
|
+
}
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Converts value to integer. Returns 0 if NaN.
|
|
112
|
+
*/
|
|
113
|
+
export function INT(value) {
|
|
114
|
+
return Math.round(FLOAT(value));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Returns first set string among arguments.
|
|
118
|
+
*/
|
|
119
|
+
export function STRING_ANY(...values) {
|
|
120
|
+
for (const value of values) {
|
|
121
|
+
if (ISSET(value)) {
|
|
122
|
+
return STRING(value);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return '';
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Returns first set float among arguments.
|
|
129
|
+
*/
|
|
130
|
+
export function FLOAT_ANY(...values) {
|
|
131
|
+
for (const value of values) {
|
|
132
|
+
if (ISSET(value)) {
|
|
133
|
+
const v = FLOAT(value);
|
|
134
|
+
if (v !== 0 || value === 0 || value === '0') {
|
|
135
|
+
return v;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return 0;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Returns first set integer among arguments.
|
|
143
|
+
*/
|
|
144
|
+
export function INT_ANY(...values) {
|
|
145
|
+
return Math.round(FLOAT_ANY(...values));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Converts value to boolean.
|
|
149
|
+
* Matches strings "true", "1", "yes", "on" (case-insensitive).
|
|
150
|
+
*/
|
|
151
|
+
export function BOOL(value) {
|
|
152
|
+
return BOOL_ANY(value);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Returns the first non-null non-undefined boolean-castable value as a boolean.
|
|
156
|
+
*/
|
|
157
|
+
export function BOOL_ANY(...values) {
|
|
158
|
+
for (const value of values) {
|
|
159
|
+
if (!ISSET(value)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
if (typeof value === 'boolean') {
|
|
163
|
+
return value;
|
|
164
|
+
}
|
|
165
|
+
if (typeof value === 'number') {
|
|
166
|
+
if (!isNaN(value)) {
|
|
167
|
+
return value !== 0;
|
|
168
|
+
}
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
if (typeof value === 'string') {
|
|
172
|
+
const s = value.toLowerCase().trim();
|
|
173
|
+
if ((s === '') || (s === 'false') || (s === 'no') || (s === 'off') || (s === '0')) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
if ((s === 'true') || (s === 'yes') || (s === 'on') || (s === '1')) {
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
const float = Number(s);
|
|
180
|
+
if (!isNaN(float)) {
|
|
181
|
+
return float !== 0;
|
|
182
|
+
}
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (Array.isArray(value) || (typeof value === 'object' && value !== null)) {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
const REGEX_ALL_NON_FLOAT_CHARACTERS = /[^0-9.-]/g;
|
|
192
|
+
/**
|
|
193
|
+
* Lax float conversion. Strips non-numeric characters.
|
|
194
|
+
*/
|
|
195
|
+
export function FLOAT_LAX(value) {
|
|
196
|
+
if (typeof value === 'number') {
|
|
197
|
+
return isNaN(value) ? 0 : value;
|
|
198
|
+
}
|
|
199
|
+
const s = STRING(value).replace(REGEX_ALL_NON_FLOAT_CHARACTERS, '');
|
|
200
|
+
if (s === '') {
|
|
201
|
+
return 0;
|
|
202
|
+
}
|
|
203
|
+
const v = parseFloat(s);
|
|
204
|
+
if (!isNaN(v)) {
|
|
205
|
+
return v;
|
|
206
|
+
}
|
|
207
|
+
return 0;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Lax integer conversion.
|
|
211
|
+
*/
|
|
212
|
+
export function INT_LAX(value) {
|
|
213
|
+
return Math.round(FLOAT_LAX(value));
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Returns first set lax float.
|
|
217
|
+
*/
|
|
218
|
+
export function FLOAT_LAX_ANY(...values) {
|
|
219
|
+
for (const value of values) {
|
|
220
|
+
if (ISSET(value)) {
|
|
221
|
+
const v = FLOAT_LAX(value);
|
|
222
|
+
if (v !== 0 || value === 0 || value === '0') {
|
|
223
|
+
return v;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return 0;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Returns first set lax integer.
|
|
231
|
+
*/
|
|
232
|
+
export function INT_LAX_ANY(...values) {
|
|
233
|
+
return Math.round(FLOAT_LAX_ANY(...values));
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=LeTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeTypes.js","sourceRoot":"","sources":["../../src/LeTypes.ts"],"names":[],"mappings":"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"}
|