@naturalcycles/js-lib 14.111.0 → 14.113.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 +10 -2
- package/dist/enum.util.js +25 -5
- package/dist/types.d.ts +4 -0
- package/dist/types.js +5 -1
- package/dist-esm/enum.util.js +22 -4
- package/dist-esm/types.js +4 -0
- package/package.json +1 -2
- package/src/enum.util.ts +29 -4
- package/src/types.ts +8 -0
package/dist/enum.util.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export declare function _stringEnumEntries<T extends StringEnum>(en: T): [k: str
|
|
|
39
39
|
*/
|
|
40
40
|
export declare function _numberEnumInverse<T extends NumberEnum>(en: T, v: string): T[keyof T];
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* _numberEnumInverse, but allows to get/return undefined output.
|
|
43
43
|
*/
|
|
44
44
|
export declare function _numberEnumInverseNullable<T extends NumberEnum>(en: T, v: string | undefined): T[keyof T] | undefined;
|
|
45
45
|
/**
|
|
@@ -50,6 +50,14 @@ export declare function _numberEnumInverseNullable<T extends NumberEnum>(en: T,
|
|
|
50
50
|
*/
|
|
51
51
|
export declare function _numberEnumNormalize<T extends NumberEnum>(en: T, v: string | number): T[keyof T];
|
|
52
52
|
/**
|
|
53
|
-
* Same as
|
|
53
|
+
* Same as _numberEnumNormalize, but allows to return undefined values.
|
|
54
54
|
*/
|
|
55
55
|
export declare function _numberEnumNormalizeNullable<T extends NumberEnum>(en: T, v: string | number | undefined): T[keyof T] | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Returns a String key for given NumberEnum value, or undefined if not found.
|
|
58
|
+
*/
|
|
59
|
+
export declare function _numberEnumKeyNullable<T extends NumberEnum>(en: T, v: T[keyof T] | undefined | null): keyof T | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Returns a String key for given NumberEnum value, throws if not found.
|
|
62
|
+
*/
|
|
63
|
+
export declare function _numberEnumKey<T extends NumberEnum>(en: T, v: T[keyof T] | 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._numberEnumNormalizeNullable = exports._numberEnumNormalize = exports._numberEnumInverseNullable = exports._numberEnumInverse = exports._stringEnumEntries = exports._numberEnumEntries = exports._stringEnumValues = exports._stringEnumKeys = exports._numberEnumValues = exports._numberEnumKeys = void 0;
|
|
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;
|
|
4
4
|
/**
|
|
5
5
|
* Returns all number keys of a number-enum.
|
|
6
6
|
*/
|
|
@@ -63,12 +63,12 @@ exports._stringEnumEntries = _stringEnumEntries;
|
|
|
63
63
|
function _numberEnumInverse(en, v) {
|
|
64
64
|
const r = en[v];
|
|
65
65
|
if (!r)
|
|
66
|
-
throw new Error(`
|
|
66
|
+
throw new Error(`_numberEnumInverse value not found for: ${v}`);
|
|
67
67
|
return r;
|
|
68
68
|
}
|
|
69
69
|
exports._numberEnumInverse = _numberEnumInverse;
|
|
70
70
|
/**
|
|
71
|
-
*
|
|
71
|
+
* _numberEnumInverse, but allows to get/return undefined output.
|
|
72
72
|
*/
|
|
73
73
|
function _numberEnumInverseNullable(en, v) {
|
|
74
74
|
return en[v];
|
|
@@ -83,14 +83,34 @@ exports._numberEnumInverseNullable = _numberEnumInverseNullable;
|
|
|
83
83
|
function _numberEnumNormalize(en, v) {
|
|
84
84
|
const r = _numberEnumNormalizeNullable(en, v);
|
|
85
85
|
if (!r || !en[r])
|
|
86
|
-
throw new Error(`
|
|
86
|
+
throw new Error(`_numberEnumNormalize value not found for: ${v}`);
|
|
87
87
|
return r;
|
|
88
88
|
}
|
|
89
89
|
exports._numberEnumNormalize = _numberEnumNormalize;
|
|
90
90
|
/**
|
|
91
|
-
* Same as
|
|
91
|
+
* Same as _numberEnumNormalize, but allows to return undefined values.
|
|
92
92
|
*/
|
|
93
93
|
function _numberEnumNormalizeNullable(en, v) {
|
|
94
94
|
return typeof v === 'string' ? en[v] : v;
|
|
95
95
|
}
|
|
96
96
|
exports._numberEnumNormalizeNullable = _numberEnumNormalizeNullable;
|
|
97
|
+
/**
|
|
98
|
+
* Returns a String key for given NumberEnum value, or undefined if not found.
|
|
99
|
+
*/
|
|
100
|
+
function _numberEnumKeyNullable(en, v) {
|
|
101
|
+
const key = en[v];
|
|
102
|
+
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
103
|
+
return typeof key === 'string' ? key : undefined;
|
|
104
|
+
}
|
|
105
|
+
exports._numberEnumKeyNullable = _numberEnumKeyNullable;
|
|
106
|
+
/**
|
|
107
|
+
* Returns a String key for given NumberEnum value, throws if not found.
|
|
108
|
+
*/
|
|
109
|
+
function _numberEnumKey(en, v) {
|
|
110
|
+
const key = en[v];
|
|
111
|
+
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
112
|
+
if (typeof key !== 'string')
|
|
113
|
+
throw new Error(`_enumKey value not found for: ${v}`);
|
|
114
|
+
return key;
|
|
115
|
+
}
|
|
116
|
+
exports._numberEnumKey = _numberEnumKey;
|
package/dist/types.d.ts
CHANGED
|
@@ -196,3 +196,7 @@ export declare type FalsyValue = false | '' | 0 | null | undefined;
|
|
|
196
196
|
* }
|
|
197
197
|
*/
|
|
198
198
|
export declare function _typeCast<T>(v: any): asserts v is T;
|
|
199
|
+
/**
|
|
200
|
+
* Type-safe Object.assign that checks that part is indeed a Partial<T>
|
|
201
|
+
*/
|
|
202
|
+
export declare const _objectAssign: <T extends AnyObject>(target: T, part: Partial<T>) => T;
|
package/dist/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._typeCast = exports._objectKeys = exports._stringMapEntries = exports._stringMapValues = exports._passNothingPredicate = exports._passthroughPredicate = exports._noop = exports._passUndefinedMapper = exports._passthroughMapper = exports.SKIP = exports.END = void 0;
|
|
3
|
+
exports._objectAssign = exports._typeCast = exports._objectKeys = exports._stringMapEntries = exports._stringMapValues = exports._passNothingPredicate = exports._passthroughPredicate = exports._noop = exports._passUndefinedMapper = exports._passthroughMapper = exports.SKIP = exports.END = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Symbol to indicate END of Sequence.
|
|
6
6
|
*/
|
|
@@ -50,3 +50,7 @@ exports._objectKeys = Object.keys;
|
|
|
50
50
|
*/
|
|
51
51
|
function _typeCast(v) { }
|
|
52
52
|
exports._typeCast = _typeCast;
|
|
53
|
+
/**
|
|
54
|
+
* Type-safe Object.assign that checks that part is indeed a Partial<T>
|
|
55
|
+
*/
|
|
56
|
+
exports._objectAssign = Object.assign;
|
package/dist-esm/enum.util.js
CHANGED
|
@@ -54,11 +54,11 @@ export function _stringEnumEntries(en) {
|
|
|
54
54
|
export function _numberEnumInverse(en, v) {
|
|
55
55
|
const r = en[v];
|
|
56
56
|
if (!r)
|
|
57
|
-
throw new Error(`
|
|
57
|
+
throw new Error(`_numberEnumInverse value not found for: ${v}`);
|
|
58
58
|
return r;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* _numberEnumInverse, but allows to get/return undefined output.
|
|
62
62
|
*/
|
|
63
63
|
export function _numberEnumInverseNullable(en, v) {
|
|
64
64
|
return en[v];
|
|
@@ -72,12 +72,30 @@ export function _numberEnumInverseNullable(en, v) {
|
|
|
72
72
|
export function _numberEnumNormalize(en, v) {
|
|
73
73
|
const r = _numberEnumNormalizeNullable(en, v);
|
|
74
74
|
if (!r || !en[r])
|
|
75
|
-
throw new Error(`
|
|
75
|
+
throw new Error(`_numberEnumNormalize value not found for: ${v}`);
|
|
76
76
|
return r;
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
|
-
* Same as
|
|
79
|
+
* Same as _numberEnumNormalize, but allows to return undefined values.
|
|
80
80
|
*/
|
|
81
81
|
export function _numberEnumNormalizeNullable(en, v) {
|
|
82
82
|
return typeof v === 'string' ? en[v] : v;
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Returns a String key for given NumberEnum value, or undefined if not found.
|
|
86
|
+
*/
|
|
87
|
+
export function _numberEnumKeyNullable(en, v) {
|
|
88
|
+
const key = en[v];
|
|
89
|
+
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
90
|
+
return typeof key === 'string' ? key : undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns a String key for given NumberEnum value, throws if not found.
|
|
94
|
+
*/
|
|
95
|
+
export function _numberEnumKey(en, v) {
|
|
96
|
+
const key = en[v];
|
|
97
|
+
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
98
|
+
if (typeof key !== 'string')
|
|
99
|
+
throw new Error(`_enumKey value not found for: ${v}`);
|
|
100
|
+
return key;
|
|
101
|
+
}
|
package/dist-esm/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naturalcycles/js-lib",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.113.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prepare": "husky install",
|
|
6
6
|
"build-prod": "build-prod-esm-cjs",
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"@naturalcycles/nodejs-lib": "^12.33.4",
|
|
17
17
|
"@naturalcycles/time-lib": "^3.5.1",
|
|
18
18
|
"@types/node": "^18.0.0",
|
|
19
|
-
"expect-type": "^0.13.0",
|
|
20
19
|
"jest": "^29.0.0",
|
|
21
20
|
"prettier": "^2.1.2",
|
|
22
21
|
"rxjs": "^7.0.1",
|
package/src/enum.util.ts
CHANGED
|
@@ -61,12 +61,12 @@ export function _stringEnumEntries<T extends StringEnum>(en: T): [k: string, v:
|
|
|
61
61
|
*/
|
|
62
62
|
export function _numberEnumInverse<T extends NumberEnum>(en: T, v: string): T[keyof T] {
|
|
63
63
|
const r = en[v as keyof T] as any
|
|
64
|
-
if (!r) throw new Error(`
|
|
64
|
+
if (!r) throw new Error(`_numberEnumInverse value not found for: ${v}`)
|
|
65
65
|
return r
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* _numberEnumInverse, but allows to get/return undefined output.
|
|
70
70
|
*/
|
|
71
71
|
export function _numberEnumInverseNullable<T extends NumberEnum>(
|
|
72
72
|
en: T,
|
|
@@ -83,12 +83,12 @@ export function _numberEnumInverseNullable<T extends NumberEnum>(
|
|
|
83
83
|
*/
|
|
84
84
|
export function _numberEnumNormalize<T extends NumberEnum>(en: T, v: string | number): T[keyof T] {
|
|
85
85
|
const r = _numberEnumNormalizeNullable(en, v)
|
|
86
|
-
if (!r || !en[r as keyof T]) throw new Error(`
|
|
86
|
+
if (!r || !en[r as keyof T]) throw new Error(`_numberEnumNormalize value not found for: ${v}`)
|
|
87
87
|
return r
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
* Same as
|
|
91
|
+
* Same as _numberEnumNormalize, but allows to return undefined values.
|
|
92
92
|
*/
|
|
93
93
|
export function _numberEnumNormalizeNullable<T extends NumberEnum>(
|
|
94
94
|
en: T,
|
|
@@ -96,3 +96,28 @@ export function _numberEnumNormalizeNullable<T extends NumberEnum>(
|
|
|
96
96
|
): T[keyof T] | undefined {
|
|
97
97
|
return typeof v === 'string' ? en[v as keyof T] : (v as any)
|
|
98
98
|
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Returns a String key for given NumberEnum value, or undefined if not found.
|
|
102
|
+
*/
|
|
103
|
+
export function _numberEnumKeyNullable<T extends NumberEnum>(
|
|
104
|
+
en: T,
|
|
105
|
+
v: T[keyof T] | undefined | null,
|
|
106
|
+
): keyof T | undefined {
|
|
107
|
+
const key = (en as any)[v]
|
|
108
|
+
// This prevents passing a Key (not a Value) of enum here, which returns unexpected result (number, not string)
|
|
109
|
+
return typeof key === 'string' ? key : undefined
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns a String key for given NumberEnum value, throws if not found.
|
|
114
|
+
*/
|
|
115
|
+
export function _numberEnumKey<T extends NumberEnum>(
|
|
116
|
+
en: T,
|
|
117
|
+
v: T[keyof T] | undefined | null,
|
|
118
|
+
): keyof T {
|
|
119
|
+
const key = (en as any)[v]
|
|
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(`_enumKey value not found for: ${v}`)
|
|
122
|
+
return key
|
|
123
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -260,3 +260,11 @@ export type FalsyValue = false | '' | 0 | null | undefined
|
|
|
260
260
|
* }
|
|
261
261
|
*/
|
|
262
262
|
export function _typeCast<T>(v: any): asserts v is T {}
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Type-safe Object.assign that checks that part is indeed a Partial<T>
|
|
266
|
+
*/
|
|
267
|
+
export const _objectAssign = Object.assign as <T extends AnyObject>(
|
|
268
|
+
target: T,
|
|
269
|
+
part: Partial<T>,
|
|
270
|
+
) => T
|