@naturalcycles/js-lib 14.137.0 → 14.138.0
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/dist/enum.util.d.ts +2 -0
- package/dist/enum.util.js +16 -3
- package/dist-esm/enum.util.js +14 -2
- package/package.json +1 -1
- package/src/enum.util.ts +16 -2
package/dist/enum.util.d.ts
CHANGED
|
@@ -61,3 +61,5 @@ export declare function _numberEnumKeyNullable<T extends NumberEnum>(en: T, v: T
|
|
|
61
61
|
* Returns a String key for given NumberEnum value, throws if not found.
|
|
62
62
|
*/
|
|
63
63
|
export declare function _numberEnumKey<T extends NumberEnum>(en: T, v: T[keyof T] | undefined | null): keyof T;
|
|
64
|
+
export declare function _stringEnumKeyNullable<T extends StringEnum>(en: T, v: string | undefined | null): keyof T | undefined;
|
|
65
|
+
export declare function _stringEnumKey<T extends StringEnum>(en: T, v: string | undefined | null): keyof T;
|
package/dist/enum.util.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._numberEnumKey = exports._numberEnumKeyNullable = exports._numberEnumNormalizeNullable = exports._numberEnumNormalize = exports._numberEnumInverseNullable = exports._numberEnumInverse = exports._stringEnumEntries = exports._numberEnumEntries = exports._stringEnumValues = exports._stringEnumKeys = exports._numberEnumValues = exports._numberEnumKeys = void 0;
|
|
3
|
+
exports._stringEnumKey = exports._stringEnumKeyNullable = exports._numberEnumKey = exports._numberEnumKeyNullable = exports._numberEnumNormalizeNullable = exports._numberEnumNormalize = exports._numberEnumInverseNullable = exports._numberEnumInverse = exports._stringEnumEntries = exports._numberEnumEntries = exports._stringEnumValues = exports._stringEnumKeys = exports._numberEnumValues = exports._numberEnumKeys = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Returns all number keys of a number-enum.
|
|
6
6
|
*/
|
|
@@ -49,7 +49,7 @@ exports._numberEnumEntries = _numberEnumEntries;
|
|
|
49
49
|
* Doesn't work on Number-enums!
|
|
50
50
|
*/
|
|
51
51
|
function _stringEnumEntries(en) {
|
|
52
|
-
return Object.
|
|
52
|
+
return Object.entries(en);
|
|
53
53
|
}
|
|
54
54
|
exports._stringEnumEntries = _stringEnumEntries;
|
|
55
55
|
/**
|
|
@@ -110,7 +110,20 @@ function _numberEnumKey(en, v) {
|
|
|
110
110
|
const key = en[v];
|
|
111
111
|
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
112
112
|
if (typeof key !== 'string')
|
|
113
|
-
throw new Error(`
|
|
113
|
+
throw new Error(`_numberEnumKey not found for: ${v}`);
|
|
114
114
|
return key;
|
|
115
115
|
}
|
|
116
116
|
exports._numberEnumKey = _numberEnumKey;
|
|
117
|
+
function _stringEnumKeyNullable(en,
|
|
118
|
+
// v: T[keyof T] | undefined | null, // cannot make it type-safe :(
|
|
119
|
+
v) {
|
|
120
|
+
return Object.entries(en).find(([_, v2]) => v2 === v)?.[0];
|
|
121
|
+
}
|
|
122
|
+
exports._stringEnumKeyNullable = _stringEnumKeyNullable;
|
|
123
|
+
function _stringEnumKey(en, v) {
|
|
124
|
+
const r = _stringEnumKeyNullable(en, v);
|
|
125
|
+
if (!r)
|
|
126
|
+
throw new Error(`_stringEnumKey not found for: ${v}`);
|
|
127
|
+
return r;
|
|
128
|
+
}
|
|
129
|
+
exports._stringEnumKey = _stringEnumKey;
|
package/dist-esm/enum.util.js
CHANGED
|
@@ -41,7 +41,7 @@ export function _numberEnumEntries(en) {
|
|
|
41
41
|
* Doesn't work on Number-enums!
|
|
42
42
|
*/
|
|
43
43
|
export function _stringEnumEntries(en) {
|
|
44
|
-
return Object.
|
|
44
|
+
return Object.entries(en);
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Allows to return a Number enum value (typed as Enum itself) based on it's String key.
|
|
@@ -96,6 +96,18 @@ export function _numberEnumKey(en, v) {
|
|
|
96
96
|
const key = en[v];
|
|
97
97
|
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
98
98
|
if (typeof key !== 'string')
|
|
99
|
-
throw new Error(`
|
|
99
|
+
throw new Error(`_numberEnumKey not found for: ${v}`);
|
|
100
100
|
return key;
|
|
101
101
|
}
|
|
102
|
+
export function _stringEnumKeyNullable(en,
|
|
103
|
+
// v: T[keyof T] | undefined | null, // cannot make it type-safe :(
|
|
104
|
+
v) {
|
|
105
|
+
var _a;
|
|
106
|
+
return (_a = Object.entries(en).find(([_, v2]) => v2 === v)) === null || _a === void 0 ? void 0 : _a[0];
|
|
107
|
+
}
|
|
108
|
+
export function _stringEnumKey(en, v) {
|
|
109
|
+
const r = _stringEnumKeyNullable(en, v);
|
|
110
|
+
if (!r)
|
|
111
|
+
throw new Error(`_stringEnumKey not found for: ${v}`);
|
|
112
|
+
return r;
|
|
113
|
+
}
|
package/package.json
CHANGED
package/src/enum.util.ts
CHANGED
|
@@ -48,7 +48,7 @@ export function _numberEnumEntries<T extends NumberEnum>(en: T): [k: string, v:
|
|
|
48
48
|
* Doesn't work on Number-enums!
|
|
49
49
|
*/
|
|
50
50
|
export function _stringEnumEntries<T extends StringEnum>(en: T): [k: string, v: T[keyof T]][] {
|
|
51
|
-
return Object.
|
|
51
|
+
return Object.entries(en) as any
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
|
@@ -118,6 +118,20 @@ export function _numberEnumKey<T extends NumberEnum>(
|
|
|
118
118
|
): keyof T {
|
|
119
119
|
const key = (en as any)[v]
|
|
120
120
|
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
121
|
-
if (typeof key !== 'string') throw new Error(`
|
|
121
|
+
if (typeof key !== 'string') throw new Error(`_numberEnumKey not found for: ${v}`)
|
|
122
122
|
return key
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
export function _stringEnumKeyNullable<T extends StringEnum>(
|
|
126
|
+
en: T,
|
|
127
|
+
// v: T[keyof T] | undefined | null, // cannot make it type-safe :(
|
|
128
|
+
v: string | undefined | null,
|
|
129
|
+
): keyof T | undefined {
|
|
130
|
+
return Object.entries(en).find(([_, v2]) => v2 === v)?.[0]
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export function _stringEnumKey<T extends StringEnum>(en: T, v: string | undefined | null): keyof T {
|
|
134
|
+
const r = _stringEnumKeyNullable(en, v)
|
|
135
|
+
if (!r) throw new Error(`_stringEnumKey not found for: ${v}`)
|
|
136
|
+
return r
|
|
137
|
+
}
|