yummies 3.0.1 → 3.0.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 +26 -0
- package/package.json +1 -1
- package/utility-types.d.ts +39 -0
- package/utils/types.d.ts +11 -2
- package/utils/types.d.ts.map +1 -1
- package/utils/types.js +1 -0
package/README.md
CHANGED
|
@@ -67,3 +67,29 @@ Yummies - это набор разнообразных утилит для JavaS
|
|
|
67
67
|
|
|
68
68
|
## [yummies/vibrate](src/vibrate.ts)
|
|
69
69
|
Утилиты по работе с vibrate api
|
|
70
|
+
|
|
71
|
+
## [yummies/utility-types](src/utils/types.ts)
|
|
72
|
+
TypeScript типы-утилиты, которые упрощают написание TypeScript кода.
|
|
73
|
+
Импортируются глобально, используя `d.ts` файл, встраиваясь в окружающую среду
|
|
74
|
+
```ts
|
|
75
|
+
import 'yummies/utility-types';
|
|
76
|
+
```
|
|
77
|
+
Или указываются в `tsconfig.json` в поле `"types"`
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"compilerOptions": {
|
|
81
|
+
"types": [
|
|
82
|
+
"yummies/utility-types"
|
|
83
|
+
],
|
|
84
|
+
"target": "...blabla",
|
|
85
|
+
...
|
|
86
|
+
}
|
|
87
|
+
...
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
Также можно использовать альтернативный "библиотечный" подход, когда нам нужны экспортируемые типы.
|
|
91
|
+
Для этого можно использовать импорт `yummies/utils/types`
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
import { AnyObject } from 'yummies/utils/types';
|
|
95
|
+
```
|
package/package.json
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract all values from object or array
|
|
3
|
+
*/
|
|
4
|
+
type ValueOf<T> = T[keyof T];
|
|
5
|
+
/** Converts enum keys to union */
|
|
6
|
+
type ExtractEnumKeys<T> = ValueOf<{
|
|
7
|
+
[key in keyof T]: key extends string ? key : never;
|
|
8
|
+
}>;
|
|
9
|
+
type Maybe<T> = Nullable<T> | undefined;
|
|
10
|
+
type Nullable<T> = T | null;
|
|
11
|
+
/**
|
|
12
|
+
* Any object with any values
|
|
13
|
+
*/
|
|
14
|
+
type AnyObject = Record<string, any>;
|
|
15
|
+
/**
|
|
16
|
+
* Empty object without properties
|
|
17
|
+
*/
|
|
18
|
+
type EmptyObject = Record<string, never>;
|
|
19
|
+
type AnyPrimitive = string | number | boolean | null | undefined;
|
|
20
|
+
type AnyFunction = (...args: any) => any;
|
|
21
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
22
|
+
type FalsyValues = undefined | null | '' | false | 0;
|
|
23
|
+
type MaybeFalsy<T> = Maybe<T> | FalsyValues;
|
|
24
|
+
type Class<T, Args extends any[] = any[]> = new (...args: Args) => T;
|
|
25
|
+
/**
|
|
26
|
+
* Все свойства будут опциональны, в любую глубину
|
|
27
|
+
*/
|
|
28
|
+
type DeepPartial<T> = {
|
|
29
|
+
[K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
|
|
30
|
+
};
|
|
31
|
+
type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
32
|
+
type RequiredKeys<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
33
|
+
type AllPropertiesOptional<T> = keyof T extends never ? true : {
|
|
34
|
+
[K in keyof T]-?: undefined extends T[K] ? never : K;
|
|
35
|
+
} extends {
|
|
36
|
+
[K in keyof T]: never;
|
|
37
|
+
} ? true : false;
|
|
38
|
+
type RecordEntries<T extends AnyObject> = T extends Record<infer Keys, infer Values> ? [Keys, Values][] : never;
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
package/utils/types.d.ts
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract all values from object or array
|
|
3
|
+
*/
|
|
1
4
|
export type ValueOf<T> = T[keyof T];
|
|
5
|
+
/** Converts enum keys to union */
|
|
2
6
|
export type ExtractEnumKeys<T> = ValueOf<{
|
|
3
7
|
[key in keyof T]: key extends string ? key : never;
|
|
4
8
|
}>;
|
|
5
9
|
export type Maybe<T> = Nullable<T> | undefined;
|
|
6
10
|
export type Nullable<T> = T | null;
|
|
11
|
+
/**
|
|
12
|
+
* Any object with any values
|
|
13
|
+
*/
|
|
7
14
|
export type AnyObject = Record<string, any>;
|
|
15
|
+
/**
|
|
16
|
+
* Empty object without properties
|
|
17
|
+
*/
|
|
8
18
|
export type EmptyObject = Record<string, never>;
|
|
9
19
|
export type AnyPrimitive = string | number | boolean | null | undefined;
|
|
10
20
|
export type AnyFunction = (...args: any) => any;
|
|
11
21
|
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
12
|
-
type FalsyValues = undefined | null | '' | false | 0;
|
|
22
|
+
export type FalsyValues = undefined | null | '' | false | 0;
|
|
13
23
|
export type MaybeFalsy<T> = Maybe<T> | FalsyValues;
|
|
14
24
|
export type Class<T, Args extends any[] = any[]> = new (...args: Args) => T;
|
|
15
25
|
/**
|
|
@@ -26,5 +36,4 @@ export type AllPropertiesOptional<T> = keyof T extends never ? true : {
|
|
|
26
36
|
[K in keyof T]: never;
|
|
27
37
|
} ? true : false;
|
|
28
38
|
export type RecordEntries<T extends AnyObject> = T extends Record<infer Keys, infer Values> ? [Keys, Values][] : never;
|
|
29
|
-
export {};
|
|
30
39
|
//# sourceMappingURL=types.d.ts.map
|
package/utils/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,kCAAkC;AAClC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,OAAO,CAAC;KACtC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,KAAK;CACnD,CAAC,CAAC;AAEH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;AAEhD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CACnC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CACvC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAC1B,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;AAE5D,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAEnD,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtB,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACzD,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvB,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,GACxD,IAAI,GACJ;KACK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACrD,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK;CAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEZ,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAC3C,CAAC,SAAS,MAAM,CAAC,MAAM,IAAI,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC"}
|
package/utils/types.js
CHANGED