@etsoo/shared 1.1.1 → 1.1.5
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__/DataTypes.ts +3 -0
- package/__tests__/Utils.ts +5 -2
- package/lib/cjs/DataTypes.d.ts +5 -1
- package/lib/cjs/Utils.d.ts +1 -1
- package/lib/mjs/DataTypes.d.ts +5 -1
- package/lib/mjs/Utils.d.ts +1 -1
- package/package.json +5 -5
- package/src/DataTypes.ts +6 -1
- package/src/Utils.ts +4 -4
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__/DataTypes.ts
CHANGED
|
@@ -72,6 +72,9 @@ test('Tests for getEnumKeys', () => {
|
|
|
72
72
|
GRAM = 'GRAM33'
|
|
73
73
|
}
|
|
74
74
|
expect(DataTypes.getEnumKeys(ProductUnit)).toContainEqual('GRAM');
|
|
75
|
+
|
|
76
|
+
const keys = DataTypes.getEnumKeys(DataTypes.CombinedEnum);
|
|
77
|
+
expect(keys).toContainEqual('Unkwown');
|
|
75
78
|
});
|
|
76
79
|
|
|
77
80
|
test('Tests for getItemId', () => {
|
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
|
@@ -128,6 +128,10 @@ export declare namespace DataTypes {
|
|
|
128
128
|
* Enum base type
|
|
129
129
|
*/
|
|
130
130
|
type EnumBase = Record<string, EnumValue>;
|
|
131
|
+
/**
|
|
132
|
+
* Function type
|
|
133
|
+
*/
|
|
134
|
+
type Func<R> = (...args: any[]) => R;
|
|
131
135
|
/**
|
|
132
136
|
* String key, unknown value Record
|
|
133
137
|
*/
|
|
@@ -251,7 +255,7 @@ export declare namespace DataTypes {
|
|
|
251
255
|
* @param input Input Enum
|
|
252
256
|
* @returns Keys
|
|
253
257
|
*/
|
|
254
|
-
function getEnumKeys<T extends EnumBase, K extends keyof T>(input: T): K[];
|
|
258
|
+
function getEnumKeys<T extends EnumBase, K extends keyof T & string>(input: T): K[];
|
|
255
259
|
/**
|
|
256
260
|
* Get object id field value
|
|
257
261
|
* @param data Data
|
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
|
@@ -128,6 +128,10 @@ export declare namespace DataTypes {
|
|
|
128
128
|
* Enum base type
|
|
129
129
|
*/
|
|
130
130
|
type EnumBase = Record<string, EnumValue>;
|
|
131
|
+
/**
|
|
132
|
+
* Function type
|
|
133
|
+
*/
|
|
134
|
+
type Func<R> = (...args: any[]) => R;
|
|
131
135
|
/**
|
|
132
136
|
* String key, unknown value Record
|
|
133
137
|
*/
|
|
@@ -251,7 +255,7 @@ export declare namespace DataTypes {
|
|
|
251
255
|
* @param input Input Enum
|
|
252
256
|
* @returns Keys
|
|
253
257
|
*/
|
|
254
|
-
function getEnumKeys<T extends EnumBase, K extends keyof T>(input: T): K[];
|
|
258
|
+
function getEnumKeys<T extends EnumBase, K extends keyof T & string>(input: T): K[];
|
|
255
259
|
/**
|
|
256
260
|
* Get object id field value
|
|
257
261
|
* @param data Data
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/shared",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "TypeScript shared utilities and functions",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
"dependencies": {},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/jest": "^27.4.0",
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
59
|
-
"@typescript-eslint/parser": "^5.
|
|
60
|
-
"eslint": "^8.
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
|
59
|
+
"@typescript-eslint/parser": "^5.10.0",
|
|
60
|
+
"eslint": "^8.7.0",
|
|
61
61
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
62
62
|
"eslint-plugin-import": "^2.25.4",
|
|
63
63
|
"jest": "^27.4.7",
|
|
64
|
-
"ts-jest": "^27.1.
|
|
64
|
+
"ts-jest": "^27.1.3",
|
|
65
65
|
"typescript": "^4.5.4"
|
|
66
66
|
}
|
|
67
67
|
}
|
package/src/DataTypes.ts
CHANGED
|
@@ -166,6 +166,11 @@ export namespace DataTypes {
|
|
|
166
166
|
*/
|
|
167
167
|
export type EnumBase = Record<string, EnumValue>;
|
|
168
168
|
|
|
169
|
+
/**
|
|
170
|
+
* Function type
|
|
171
|
+
*/
|
|
172
|
+
export type Func<R> = (...args: any[]) => R;
|
|
173
|
+
|
|
169
174
|
/**
|
|
170
175
|
* String key, unknown value Record
|
|
171
176
|
*/
|
|
@@ -492,7 +497,7 @@ export namespace DataTypes {
|
|
|
492
497
|
* @param input Input Enum
|
|
493
498
|
* @returns Keys
|
|
494
499
|
*/
|
|
495
|
-
export function getEnumKeys<T extends EnumBase, K extends keyof T>(
|
|
500
|
+
export function getEnumKeys<T extends EnumBase, K extends keyof T & string>(
|
|
496
501
|
input: T
|
|
497
502
|
): K[] {
|
|
498
503
|
return Object.keys(input)
|
package/src/Utils.ts
CHANGED
|
@@ -193,10 +193,10 @@ export namespace Utils {
|
|
|
193
193
|
* @param args Arguments
|
|
194
194
|
* @returns Result
|
|
195
195
|
*/
|
|
196
|
-
export const getResult = <R,
|
|
197
|
-
input:
|
|
198
|
-
...args:
|
|
199
|
-
): 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 => {
|
|
200
200
|
return typeof input === 'function' ? input(...args) : input;
|
|
201
201
|
};
|
|
202
202
|
|