@etsoo/shared 1.1.55 → 1.1.56
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/lib/cjs/DataTypes.d.ts +6 -0
- package/lib/mjs/DataTypes.d.ts +6 -0
- package/package.json +6 -6
- package/src/DataTypes.ts +12 -0
package/README.md
CHANGED
|
@@ -103,6 +103,7 @@ Data type definitions and type safe functions. ListItemType and ListItemType1 ar
|
|
|
103
103
|
|KeyCollection|Key collection, like { key1: {}, key2: {} }|
|
|
104
104
|
|Keys|Get specific type keys|
|
|
105
105
|
|ObjType|Generic object type|
|
|
106
|
+
|RequireAtLeastOne|Require at least one property of the keys|
|
|
106
107
|
|Simple|Basic or basic array type|
|
|
107
108
|
|SimpleEnum|Simple type enum|
|
|
108
109
|
|SimpleNames|Simple type names|
|
package/lib/cjs/DataTypes.d.ts
CHANGED
|
@@ -183,6 +183,12 @@ export declare namespace DataTypes {
|
|
|
183
183
|
type Keys<T extends object, R = string | number> = {
|
|
184
184
|
[k in keyof T]: T[k] extends R ? k : never;
|
|
185
185
|
}[keyof T];
|
|
186
|
+
/**
|
|
187
|
+
* Require at least one property of the keys
|
|
188
|
+
*/
|
|
189
|
+
type RequireAtLeastOne<T, Keys extends keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
|
|
190
|
+
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
|
|
191
|
+
}[Keys];
|
|
186
192
|
/**
|
|
187
193
|
* Culture definiton
|
|
188
194
|
*/
|
package/lib/mjs/DataTypes.d.ts
CHANGED
|
@@ -183,6 +183,12 @@ export declare namespace DataTypes {
|
|
|
183
183
|
type Keys<T extends object, R = string | number> = {
|
|
184
184
|
[k in keyof T]: T[k] extends R ? k : never;
|
|
185
185
|
}[keyof T];
|
|
186
|
+
/**
|
|
187
|
+
* Require at least one property of the keys
|
|
188
|
+
*/
|
|
189
|
+
type RequireAtLeastOne<T, Keys extends keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
|
|
190
|
+
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
|
|
191
|
+
}[Keys];
|
|
186
192
|
/**
|
|
187
193
|
* Culture definiton
|
|
188
194
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/shared",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.56",
|
|
4
4
|
"description": "TypeScript shared utilities and functions",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -54,15 +54,15 @@
|
|
|
54
54
|
},
|
|
55
55
|
"homepage": "https://github.com/ETSOO/Shared#readme",
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@types/jest": "^29.0.
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
59
|
-
"@typescript-eslint/parser": "^5.
|
|
60
|
-
"eslint": "^8.23.
|
|
57
|
+
"@types/jest": "^29.0.3",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^5.37.0",
|
|
59
|
+
"@typescript-eslint/parser": "^5.37.0",
|
|
60
|
+
"eslint": "^8.23.1",
|
|
61
61
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
62
62
|
"eslint-plugin-import": "^2.26.0",
|
|
63
63
|
"jest": "^29.0.3",
|
|
64
64
|
"jest-environment-jsdom": "^29.0.3",
|
|
65
|
-
"ts-jest": "^29.0.
|
|
65
|
+
"ts-jest": "^29.0.1",
|
|
66
66
|
"typescript": "^4.8.3"
|
|
67
67
|
}
|
|
68
68
|
}
|
package/src/DataTypes.ts
CHANGED
|
@@ -235,6 +235,18 @@ export namespace DataTypes {
|
|
|
235
235
|
[k in keyof T]: T[k] extends R ? k : never;
|
|
236
236
|
}[keyof T];
|
|
237
237
|
|
|
238
|
+
/**
|
|
239
|
+
* Require at least one property of the keys
|
|
240
|
+
*/
|
|
241
|
+
export type RequireAtLeastOne<T, Keys extends keyof T> = Pick<
|
|
242
|
+
T,
|
|
243
|
+
Exclude<keyof T, Keys>
|
|
244
|
+
> &
|
|
245
|
+
{
|
|
246
|
+
[K in Keys]-?: Required<Pick<T, K>> &
|
|
247
|
+
Partial<Pick<T, Exclude<Keys, K>>>;
|
|
248
|
+
}[Keys];
|
|
249
|
+
|
|
238
250
|
/**
|
|
239
251
|
* Culture definiton
|
|
240
252
|
*/
|