@etsoo/shared 1.1.2 → 1.1.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/README.md +1 -0
- package/__tests__/Utils.ts +5 -2
- package/lib/cjs/DataTypes.d.ts +4 -0
- package/lib/cjs/Utils.d.ts +1 -1
- package/lib/mjs/DataTypes.d.ts +4 -0
- package/lib/mjs/Utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/DataTypes.ts +5 -0
- package/src/Utils.ts +4 -7
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ Data type definitions and type safe functions
|
|
|
36
36
|
|EnumBase|Enum base type|
|
|
37
37
|
|EnumValue|Enum value type|
|
|
38
38
|
|ExtendedEnum|Extended type enum|
|
|
39
|
+
|Func<R>|Function type, R is return type|
|
|
39
40
|
|HAlign|Horizontal align|
|
|
40
41
|
|HAlignEnum|Horizontal align enum|
|
|
41
42
|
|IdType|Number and string combination id type|
|
package/__tests__/Utils.ts
CHANGED
|
@@ -141,7 +141,10 @@ test('Tests for getResult', () => {
|
|
|
141
141
|
const inputNumber: test = 5;
|
|
142
142
|
|
|
143
143
|
// Act & assert
|
|
144
|
-
|
|
144
|
+
const result = Utils.getResult(input, true);
|
|
145
|
+
expect(result).toBe(1);
|
|
145
146
|
expect(Utils.getResult(input, false)).toBe(0);
|
|
146
|
-
|
|
147
|
+
|
|
148
|
+
const valueResult = Utils.getResult(inputNumber);
|
|
149
|
+
expect(valueResult).toBe(5);
|
|
147
150
|
});
|
package/lib/cjs/DataTypes.d.ts
CHANGED
package/lib/cjs/Utils.d.ts
CHANGED
|
@@ -75,7 +75,7 @@ export declare namespace Utils {
|
|
|
75
75
|
* @param args Arguments
|
|
76
76
|
* @returns Result
|
|
77
77
|
*/
|
|
78
|
-
const getResult: <R
|
|
78
|
+
const getResult: <R, T = R | DataTypes.Func<R>>(input: T, ...args: T extends DataTypes.Func<R> ? Parameters<T> : never) => T extends DataTypes.Func<R> ? ReturnType<T> : T;
|
|
79
79
|
/**
|
|
80
80
|
* Get time zone
|
|
81
81
|
* @returns Timezone
|
package/lib/mjs/DataTypes.d.ts
CHANGED
package/lib/mjs/Utils.d.ts
CHANGED
|
@@ -75,7 +75,7 @@ export declare namespace Utils {
|
|
|
75
75
|
* @param args Arguments
|
|
76
76
|
* @returns Result
|
|
77
77
|
*/
|
|
78
|
-
const getResult: <R
|
|
78
|
+
const getResult: <R, T = R | DataTypes.Func<R>>(input: T, ...args: T extends DataTypes.Func<R> ? Parameters<T> : never) => T extends DataTypes.Func<R> ? ReturnType<T> : T;
|
|
79
79
|
/**
|
|
80
80
|
* Get time zone
|
|
81
81
|
* @returns Timezone
|
package/package.json
CHANGED
package/src/DataTypes.ts
CHANGED
package/src/Utils.ts
CHANGED
|
@@ -193,13 +193,10 @@ export namespace Utils {
|
|
|
193
193
|
* @param args Arguments
|
|
194
194
|
* @returns Result
|
|
195
195
|
*/
|
|
196
|
-
export const getResult = <
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
>
|
|
200
|
-
input: F | R,
|
|
201
|
-
...args: Parameters<F>
|
|
202
|
-
): R => {
|
|
196
|
+
export const getResult = <R, T = DataTypes.Func<R> | R>(
|
|
197
|
+
input: T,
|
|
198
|
+
...args: T extends DataTypes.Func<R> ? Parameters<typeof input> : never
|
|
199
|
+
): T extends DataTypes.Func<R> ? ReturnType<T> : T => {
|
|
203
200
|
return typeof input === 'function' ? input(...args) : input;
|
|
204
201
|
};
|
|
205
202
|
|