@actdim/utico 1.0.9 → 1.1.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/typeCore.d.ts +4 -4
- package/dist/typeCore.d.ts.map +1 -1
- package/dist/typeCore.es.js.map +1 -1
- package/package.json +1 -1
package/dist/typeCore.d.ts
CHANGED
|
@@ -81,11 +81,11 @@ export type IProvider<TFactory = Factory> = {
|
|
|
81
81
|
export type ParameterType<TFunc, TParamIndex extends number> = TFunc extends Func<infer TArgs extends any[], infer TResult> ? TArgs[TParamIndex] : never;
|
|
82
82
|
export type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T | PromiseLike<T>>;
|
|
83
83
|
export type Overwrite<Base extends object, Overrides extends object> = Omit<Base, keyof Overrides> & Overrides;
|
|
84
|
-
export type Extends<T
|
|
85
|
-
export type RequireExtends<T extends
|
|
84
|
+
export type Extends<T, TShape> = T extends TShape ? true : false;
|
|
85
|
+
export type RequireExtends<T extends TShape, TShape extends object> = T;
|
|
86
86
|
export type KeyOf<T extends object, TKey extends keyof T> = TKey;
|
|
87
|
-
export type HasKeys<T
|
|
88
|
-
export type IsEmpty<T
|
|
87
|
+
export type HasKeys<T> = keyof T extends never ? false : true;
|
|
88
|
+
export type IsEmpty<T> = HasKeys<T> extends false ? true : false;
|
|
89
89
|
export type Require<T, TCondition extends boolean> = TCondition extends true ? T : never;
|
|
90
90
|
export type IF<TCondition extends boolean, Then, Else = never> = TCondition extends true ? Then : Else;
|
|
91
91
|
export type Conditional<TCondition extends boolean, Then, Else = never> = IF<TCondition, Then, Else>;
|
package/dist/typeCore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeCore.d.ts","sourceRoot":"","sources":["../src/typeCore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typeCore.d.ts","sourceRoot":"","sources":["../src/typeCore.ts"],"names":[],"mappings":"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"}
|
package/dist/typeCore.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeCore.es.js","sources":["D:/Src/my/actdim/public/utico/src/typeCore.ts"],"sourcesContent":["// @filename: typeCore.ts\r\n\r\n// type SplitStringToUnion<T extends string, Separator extends string> = T extends `${infer First}${Separator}${infer Rest}`\r\n// ? First | SplitStringToUnion<Rest, Separator>\r\n// : T;\r\n\r\n// more useful version of Omit\r\n\r\nexport type Skip<T extends object, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; // FilterOut\r\n// export type Skip<T, K extends keyof T> = {\r\n// [P in keyof T as P extends K ? never : P]: T[P];\r\n// };\r\n\r\n// export type PickEx<T extends object, TKeys extends keyof T | Array<keyof T>> = {\r\n// [K in TKeys extends Array<keyof T> ? TKeys[number] : TKeys]: T[K];\r\n// };\r\n\r\nexport type Filter<T extends object, V> = {\r\n [K in keyof T as T[K] extends V ? K : never]: T[K];\r\n};\r\n\r\nexport type Diff<T, U> = Omit<T, keyof U>;\r\nexport type StrictDiff<T, U> = {\r\n [K in keyof T as K extends keyof U ? (T[K] extends U[K] ? (U[K] extends T[K] ? never : K) : K) : K]: T[K];\r\n};\r\n\r\n/** Mathematical (real) intersection */\r\nexport type CommonPart<T, U> = Pick<T, CommonKeys<T, U>>;\r\nexport type CommonPartEx<T extends object[]> =\r\n T extends [infer A extends object, infer B extends object, ...infer Rest extends object[]]\r\n ? CommonPartEx<[Pick<A, Extract<keyof A, keyof B>>, ...Rest]>\r\n : T extends [infer Only extends object]\r\n ? Only\r\n : unknown;\r\n\r\nexport type CommonPartFromSchema<T extends Record<string, object>> =\r\n keyof T extends infer K ?\r\n K extends any ?\r\n CommonPart<T[K & keyof T], CommonPartFromSchema<Omit<T, K & keyof T>>>\r\n : unknown\r\n : unknown;\r\n\r\nexport type CommonKeys<T, U> = Extract<keyof T, keyof U>;\r\nexport type CommonKeysEx<T extends object[]> =\r\n T extends [infer A extends object, infer B extends object, ...infer Rest extends object[]]\r\n ? CommonKeysEx<[{ [K in Extract<keyof A, keyof B>]: any }, ...Rest]>\r\n : T extends [infer Only extends object]\r\n ? keyof Only\r\n : never;\r\n\r\nexport type UnionToIntersection<U> =\r\n (U extends any ? (x: U) => void : never) extends (x: infer R) => void ? R : never;\r\n\r\nexport type ValueUnion<T> = T[keyof T];\r\n\r\nexport type TupleFromKeys<T, K extends readonly (keyof T)[]> = {\r\n [I in keyof K]: K[I] extends keyof T ? T[K[I]] : never\r\n};\r\n\r\nexport type Extend<T extends object, U extends object, K extends keyof U> = T & { [P in K]: U[K] };\r\n\r\n// Validation\r\nexport type ValueOf<T extends object> = T[keyof T];\r\nexport type OneOnly<T, Key extends keyof T> = { [key in Exclude<keyof T, Key>]: null } & Pick<T, Key>;\r\nexport type OneOfByKey<T> = { [key in keyof T]: OneOnly<T, key> };\r\nexport type OneOfType<T> = ValueOf<OneOfByKey<T>>;\r\n\r\n// Extract version\r\nexport type KeyOfType<FromType extends object, KeepType = any, Include = true> = {\r\n [K in keyof FromType]: FromType[K] extends KeepType ? (Include extends true ? K : never) : Include extends true ? never : K;\r\n}[keyof FromType];\r\n\r\nexport type Weaken<T, K extends keyof T> = {\r\n [P in keyof T]: P extends K ? any : T[P];\r\n};\r\n\r\nexport type Mutable<T extends object> = {\r\n -readonly [K in keyof T]: T[K];\r\n};\r\n\r\nexport type Constructor = new (...args: any[]) => any;\r\n// export type ConstructorParameters<TConstructor extends Constructor> = TConstructor extends new (...args: infer TArgs) => any ? TArgs : never;\r\n\r\n// Extracts class instance type from class constructor\r\nexport type ConstructorClass<TConstructor extends Constructor> = TConstructor extends new (...args: any[]) => infer TClass ? TClass : never;\r\n\r\n// This is what we want: to be able to create new class instances\r\n// either with or without \"new\" keyword\r\nexport type CallableConstructor<TConstructor extends Constructor> = TConstructor &\r\n ((...args: ConstructorParameters<TConstructor>) => ConstructorClass<TConstructor>);\r\n\r\n// ToUpperCase\r\nexport type ToUpper<T> = T extends string\r\n ? Uppercase<T>\r\n : {\r\n [K in keyof T as K extends string ? Uppercase<K> : K]: T[K];\r\n };\r\n\r\n// ToLowerCase\r\nexport type ToLower<T> = T extends string\r\n ? Lowercase<T>\r\n : {\r\n [K in keyof T as K extends string ? Lowercase<K> : K]: T[K];\r\n };\r\n\r\nexport type AddPrefix<T, TPrefix extends string> = T extends string\r\n ? `${TPrefix}${T}`\r\n : {\r\n [K in keyof T as AddPrefix<K, TPrefix>]: T[K];\r\n };\r\n\r\nexport type AddSuffix<T, TSuffix extends string> = T extends string\r\n ? `${T}${TSuffix}`\r\n : {\r\n [K in keyof T as AddSuffix<K, TSuffix>]: T[K];\r\n };\r\n\r\nexport type RemovePrefix<T, TPrefix extends string> = T extends string\r\n ? T extends `${TPrefix}${infer Tail}`\r\n ? RemovePrefix<Tail, TPrefix>\r\n : T // never?\r\n : {\r\n [K in keyof T as RemovePrefix<K, TPrefix>]: T[K];\r\n };\r\n\r\nexport type RemoveSuffix<T, TSuffix extends string> = T extends string\r\n ? T extends `${infer Head}${TSuffix}`\r\n ? RemoveSuffix<Head, TSuffix>\r\n : T // never?\r\n : {\r\n [K in keyof T as RemoveSuffix<K, TSuffix>]: T[K];\r\n };\r\n\r\nexport const getPrefixer = (prefix: string) => (value: string) => {\r\n return `${prefix}${value}`;\r\n};\r\n\r\nexport const getValuePrefixer =\r\n <T extends { [key: string]: string }>(prefix: string) =>\r\n (dict: T): T => {\r\n return Object.fromEntries(Object.keys(dict).map((k) => [k, `${prefix}${dict[k]}`])) as T;\r\n };\r\n\r\nexport const getKeyPrefixer =\r\n <T extends { [key: string]: any }>(prefix: string) =>\r\n (obj: T): object => {\r\n return Object.fromEntries(Object.keys(obj).map((k) => [`${prefix}${k}`, obj[k]]));\r\n };\r\n\r\n// export type MaybePromise<T> = T extends undefined ? void : T | PromiseLike<Awaited<T>>; // TODO: check\r\nexport type MaybePromise<T> = T extends undefined ? void : T | PromiseLike<T>;\r\n\r\nexport type Func<TArgs extends any[] = any[], T = any> = {\r\n (...args: TArgs): T;\r\n name?: string;\r\n};\r\n\r\nexport type Action<TArgs extends any[] = any[]> = Func<TArgs, void>;\r\n\r\nexport type AsyncFunc<TArgs extends any[] = any[], T = any> = Func<TArgs, PromiseLike<T>>;\r\n\r\n// use built-in ReturnType:\r\n// type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\r\n// my version:\r\n// export type ReturnType<TFunc> = TFunc extends Func<infer TArgs, infer TResult> ? TResult : never;\r\n\r\n// use built-in Awaited type:\r\n/*\r\n// Recursively unwraps the \"awaited type\" of a type. \r\n// Non-promise \"thenables\" should resolve to `never`. \r\n// This emulates the behavior of `await`.\r\ntype Awaited<T> = T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode\r\n T extends object & { then(onfulfilled: infer F, ...args: infer _): any; } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\r\n F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to `then` is callable, extracts the first argument\r\n Awaited<V> : // recursively unwrap the value\r\n never : // the argument to `then` was not callable\r\n T; // non-object or non-thenable\r\n*/\r\n\r\n// my simple version (PromiseType):\r\n// export type Awaited<TPromise> = TPromise extends PromiseLike<infer TResult> ? TResult : TPromise;\r\n\r\n// AsyncReturnType\r\nexport type AwaitedReturnType<TFunc extends Func> = Awaited<ReturnType<TFunc>>;\r\n\r\nexport type Factory<T = any, TArgs extends any[] = []> = Func<TArgs, T>;\r\n\r\nexport type IProvider<TFactory = Factory> = {\r\n get: TFactory;\r\n};\r\n\r\n// (Func)ParameterType\r\n// type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\r\n/** see also built-in Parameters type */\r\nexport type ParameterType<TFunc, TParamIndex extends number> = TFunc extends Func<infer TArgs extends any[], infer TResult>\r\n ? TArgs[TParamIndex]\r\n : never;\r\n\r\n// Lambda?\r\n// export type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T> | AsyncFunc<[], T>; // same\r\nexport type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T | PromiseLike<T>>;\r\n\r\nexport type Overwrite<Base extends object, Overrides extends object> = Omit<Base, keyof Overrides> & Overrides;\r\n// or\r\n// export type Overwrite<Base extends object, Overrides extends object> = Pick<Base, Exclude<keyof Base, keyof Overrides>> & Overrides;\r\n\r\nexport type Extends<T extends object, TBase extends object> = T extends TBase ? true : false;\r\n\r\n// more strict than Extract\r\nexport type RequireExtends<T extends TBase, TBase extends object> = T;\r\n\r\nexport type KeyOf<T extends object, TKey extends keyof T> = TKey;\r\n\r\nexport type HasKeys<T extends object> = keyof T extends never ? false : true;\r\n\r\nexport type IsEmpty<T extends object> = HasKeys<T> extends false ? true : false;\r\n\r\nexport type Require<T, TCondition extends boolean> = TCondition extends true ? T : never;\r\n\r\nexport type IF<TCondition extends boolean, Then, Else = never> = TCondition extends true ? Then : Else;\r\n\r\nexport type Conditional<TCondition extends boolean, Then, Else = never> = IF<TCondition, Then, Else>;\r\n\r\nexport type IsKeyOf<T, TKey extends object> = TKey extends keyof T ? true : false;\r\n\r\nexport type KeysOf<T extends object, TKeys extends keyof T | Array<keyof T>> = TKeys extends Array<keyof T> ? TKeys[number] : TKeys;\r\n\r\nexport type MaybeKeyOf<T extends object, K extends PropertyKey> = K extends keyof T ? K : never;\r\n\r\nexport type IsTuple<T> = T extends readonly [...infer Elements] ? (number extends Elements[\"length\"] ? false : true) : false;\r\n\r\n// for classes only:\r\n// export type ExtractInterface<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R\r\n// ? { [K in keyof R]: R[K] }\r\n// : never;\r\n\r\n// Struct(Copy), Shape, Interface \r\nexport type Struct<T> = { [K in keyof T]: T[K] };\r\n\r\ntype NonFunctionPropertyKeys<T> = {\r\n [K in keyof T]: T[K] extends (...args: any[]) => any ? never : K\r\n}[keyof T];\r\n\r\ntype NextDepthMap = {\r\n 0: 1;\r\n 1: 2;\r\n 2: 3;\r\n 3: 4;\r\n 4: 5;\r\n 5: 5;\r\n};\r\ntype NextDepth<D extends number> = D extends keyof NextDepthMap ? NextDepthMap[D] : 5;\r\n\r\nexport type KeyPath<T, D extends number = 0> =\r\n D extends 5 ? never :\r\n T extends readonly any[]\r\n ? `${number}` | `${number}.${KeyPath<T[number], NextDepth<D>>}`\r\n : T extends object\r\n ? {\r\n [K in NonFunctionPropertyKeys<T> & (string | number)]:\r\n T[K] extends readonly any[]\r\n ? `${K}` |\r\n `${K}.${number}` |\r\n `${K}.${number}.${KeyPath<T[K][number], NextDepth<D>>}`\r\n : T[K] extends object\r\n ? `${K}` | `${K}.${KeyPath<T[K], NextDepth<D>>}`\r\n : `${K}`;\r\n }[NonFunctionPropertyKeys<T> & (string | number)]\r\n : never;\r\n\r\nexport type KeyPathValue<T, P extends string> =\r\n P extends `${infer K}.${infer Rest}`\r\n ? K extends keyof T\r\n ? KeyPathValue<T[K], Rest>\r\n : T extends readonly any[]\r\n ? K extends `${number}`\r\n ? KeyPathValue<T[number], Rest>\r\n : never\r\n : never\r\n : P extends keyof T\r\n ? T[P]\r\n : T extends readonly any[]\r\n ? P extends `${number}`\r\n ? T[number]\r\n : never\r\n : never;\r\n\r\n// Slice\r\nexport type KeyPathValueMap<T> = {\r\n [K in KeyPath<T>]?: KeyPathValue<T, K>;\r\n};"],"names":["getPrefixer","prefix","value","getValuePrefixer","dict","k","getKeyPrefixer","obj"],"mappings":"AAqIO,MAAMA,IAAc,CAACC,MAAmB,CAACC,MACrC,GAAGD,CAAM,GAAGC,CAAK,IAGfC,IACT,CAAsCF,MAClC,CAACG,MACU,OAAO,YAAY,OAAO,KAAKA,CAAI,EAAE,IAAI,CAACC,MAAM,CAACA,GAAG,GAAGJ,CAAM,GAAGG,EAAKC,CAAC,CAAC,EAAE,CAAC,CAAC,GAGjFC,IACT,CAAmCL,MAC/B,CAACM,MACU,OAAO,YAAY,OAAO,KAAKA,CAAG,EAAE,IAAI,CAACF,MAAM,CAAC,GAAGJ,CAAM,GAAGI,CAAC,IAAIE,EAAIF,CAAC,CAAC,CAAC,CAAC;"}
|
|
1
|
+
{"version":3,"file":"typeCore.es.js","sources":["D:/Src/my/actdim/public/utico/src/typeCore.ts"],"sourcesContent":["// @filename: typeCore.ts\r\n\r\n// type SplitStringToUnion<T extends string, Separator extends string> = T extends `${infer First}${Separator}${infer Rest}`\r\n// ? First | SplitStringToUnion<Rest, Separator>\r\n// : T;\r\n\r\n/** more useful version of Omit */\r\nexport type Skip<T extends object, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; // FilterOut\r\n// export type Skip<T, K extends keyof T> = {\r\n// [P in keyof T as P extends K ? never : P]: T[P];\r\n// };\r\n\r\n// export type PickEx<T extends object, TKeys extends keyof T | Array<keyof T>> = {\r\n// [K in TKeys extends Array<keyof T> ? TKeys[number] : TKeys]: T[K];\r\n// };\r\n\r\nexport type Filter<T extends object, V> = {\r\n [K in keyof T as T[K] extends V ? K : never]: T[K];\r\n};\r\n\r\nexport type Diff<T, U> = Omit<T, keyof U>;\r\nexport type StrictDiff<T, U> = {\r\n [K in keyof T as K extends keyof U ? (T[K] extends U[K] ? (U[K] extends T[K] ? never : K) : K) : K]: T[K];\r\n};\r\n\r\n/** Mathematical (real) intersection */\r\nexport type CommonPart<T, U> = Pick<T, CommonKeys<T, U>>;\r\nexport type CommonPartEx<T extends object[]> =\r\n T extends [infer A extends object, infer B extends object, ...infer Rest extends object[]]\r\n ? CommonPartEx<[Pick<A, Extract<keyof A, keyof B>>, ...Rest]>\r\n : T extends [infer Only extends object]\r\n ? Only\r\n : unknown;\r\n\r\nexport type CommonPartFromSchema<T extends Record<string, object>> =\r\n keyof T extends infer K ?\r\n K extends any ?\r\n CommonPart<T[K & keyof T], CommonPartFromSchema<Omit<T, K & keyof T>>>\r\n : unknown\r\n : unknown;\r\n\r\nexport type CommonKeys<T, U> = Extract<keyof T, keyof U>;\r\nexport type CommonKeysEx<T extends object[]> =\r\n T extends [infer A extends object, infer B extends object, ...infer Rest extends object[]]\r\n ? CommonKeysEx<[{ [K in Extract<keyof A, keyof B>]: any }, ...Rest]>\r\n : T extends [infer Only extends object]\r\n ? keyof Only\r\n : never;\r\n\r\nexport type UnionToIntersection<U> =\r\n (U extends any ? (x: U) => void : never) extends (x: infer R) => void ? R : never;\r\n\r\nexport type ValueUnion<T> = T[keyof T];\r\n\r\nexport type TupleFromKeys<T, K extends readonly (keyof T)[]> = {\r\n [I in keyof K]: K[I] extends keyof T ? T[K[I]] : never\r\n};\r\n\r\nexport type Extend<T extends object, U extends object, K extends keyof U> = T & { [P in K]: U[K] };\r\n\r\n// Validation\r\nexport type ValueOf<T extends object> = T[keyof T];\r\nexport type OneOnly<T, Key extends keyof T> = { [key in Exclude<keyof T, Key>]: null } & Pick<T, Key>;\r\nexport type OneOfByKey<T> = { [key in keyof T]: OneOnly<T, key> };\r\nexport type OneOfType<T> = ValueOf<OneOfByKey<T>>;\r\n\r\n// Extract version\r\nexport type KeyOfType<FromType extends object, KeepType = any, Include = true> = {\r\n [K in keyof FromType]: FromType[K] extends KeepType ? (Include extends true ? K : never) : Include extends true ? never : K;\r\n}[keyof FromType];\r\n\r\nexport type Weaken<T, K extends keyof T> = {\r\n [P in keyof T]: P extends K ? any : T[P];\r\n};\r\n\r\nexport type Mutable<T extends object> = {\r\n -readonly [K in keyof T]: T[K];\r\n};\r\n\r\nexport type Constructor = new (...args: any[]) => any;\r\n// export type ConstructorParameters<TConstructor extends Constructor> = TConstructor extends new (...args: infer TArgs) => any ? TArgs : never;\r\n\r\n// Extracts class instance type from class constructor\r\nexport type ConstructorClass<TConstructor extends Constructor> = TConstructor extends new (...args: any[]) => infer TClass ? TClass : never;\r\n\r\n// This is what we want: to be able to create new class instances\r\n// either with or without \"new\" keyword\r\nexport type CallableConstructor<TConstructor extends Constructor> = TConstructor &\r\n ((...args: ConstructorParameters<TConstructor>) => ConstructorClass<TConstructor>);\r\n\r\n// ToUpperCase\r\nexport type ToUpper<T> = T extends string\r\n ? Uppercase<T>\r\n : {\r\n [K in keyof T as K extends string ? Uppercase<K> : K]: T[K];\r\n };\r\n\r\n// ToLowerCase\r\nexport type ToLower<T> = T extends string\r\n ? Lowercase<T>\r\n : {\r\n [K in keyof T as K extends string ? Lowercase<K> : K]: T[K];\r\n };\r\n\r\nexport type AddPrefix<T, TPrefix extends string> = T extends string\r\n ? `${TPrefix}${T}`\r\n : {\r\n [K in keyof T as AddPrefix<K, TPrefix>]: T[K];\r\n };\r\n\r\nexport type AddSuffix<T, TSuffix extends string> = T extends string\r\n ? `${T}${TSuffix}`\r\n : {\r\n [K in keyof T as AddSuffix<K, TSuffix>]: T[K];\r\n };\r\n\r\nexport type RemovePrefix<T, TPrefix extends string> = T extends string\r\n ? T extends `${TPrefix}${infer Tail}`\r\n ? RemovePrefix<Tail, TPrefix>\r\n : T // never?\r\n : {\r\n [K in keyof T as RemovePrefix<K, TPrefix>]: T[K];\r\n };\r\n\r\nexport type RemoveSuffix<T, TSuffix extends string> = T extends string\r\n ? T extends `${infer Head}${TSuffix}`\r\n ? RemoveSuffix<Head, TSuffix>\r\n : T // never?\r\n : {\r\n [K in keyof T as RemoveSuffix<K, TSuffix>]: T[K];\r\n };\r\n\r\nexport const getPrefixer = (prefix: string) => (value: string) => {\r\n return `${prefix}${value}`;\r\n};\r\n\r\nexport const getValuePrefixer =\r\n <T extends { [key: string]: string }>(prefix: string) =>\r\n (dict: T): T => {\r\n return Object.fromEntries(Object.keys(dict).map((k) => [k, `${prefix}${dict[k]}`])) as T;\r\n };\r\n\r\nexport const getKeyPrefixer =\r\n <T extends { [key: string]: any }>(prefix: string) =>\r\n (obj: T): object => {\r\n return Object.fromEntries(Object.keys(obj).map((k) => [`${prefix}${k}`, obj[k]]));\r\n };\r\n\r\n// export type MaybePromise<T> = T extends undefined ? void : T | PromiseLike<Awaited<T>>; // TODO: check\r\nexport type MaybePromise<T> = T extends undefined ? void : T | PromiseLike<T>;\r\n\r\nexport type Func<TArgs extends any[] = any[], T = any> = {\r\n (...args: TArgs): T;\r\n name?: string;\r\n};\r\n\r\nexport type Action<TArgs extends any[] = any[]> = Func<TArgs, void>;\r\n\r\nexport type AsyncFunc<TArgs extends any[] = any[], T = any> = Func<TArgs, PromiseLike<T>>;\r\n\r\n// use built-in ReturnType:\r\n// type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\r\n// my version:\r\n// export type ReturnType<TFunc> = TFunc extends Func<infer TArgs, infer TResult> ? TResult : never;\r\n\r\n// use built-in Awaited type:\r\n/*\r\n// Recursively unwraps the \"awaited type\" of a type. \r\n// Non-promise \"thenables\" should resolve to `never`. \r\n// This emulates the behavior of `await`.\r\ntype Awaited<T> = T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode\r\n T extends object & { then(onfulfilled: infer F, ...args: infer _): any; } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\r\n F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to `then` is callable, extracts the first argument\r\n Awaited<V> : // recursively unwrap the value\r\n never : // the argument to `then` was not callable\r\n T; // non-object or non-thenable\r\n*/\r\n\r\n// my simple version (PromiseType):\r\n// export type Awaited<TPromise> = TPromise extends PromiseLike<infer TResult> ? TResult : TPromise;\r\n\r\n// AsyncReturnType\r\nexport type AwaitedReturnType<TFunc extends Func> = Awaited<ReturnType<TFunc>>;\r\n\r\nexport type Factory<T = any, TArgs extends any[] = []> = Func<TArgs, T>;\r\n\r\nexport type IProvider<TFactory = Factory> = {\r\n get: TFactory;\r\n};\r\n\r\n// (Func)ParameterType\r\n// type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\r\n/** see also built-in Parameters type */\r\nexport type ParameterType<TFunc, TParamIndex extends number> = TFunc extends Func<infer TArgs extends any[], infer TResult>\r\n ? TArgs[TParamIndex]\r\n : never;\r\n\r\n// Lambda?\r\n// export type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T> | AsyncFunc<[], T>; // same\r\nexport type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T | PromiseLike<T>>;\r\n\r\nexport type Overwrite<Base extends object, Overrides extends object> = Omit<Base, keyof Overrides> & Overrides;\r\n// or\r\n// export type Overwrite<Base extends object, Overrides extends object> = Pick<Base, Exclude<keyof Base, keyof Overrides>> & Overrides;\r\n\r\nexport type Extends<T, TShape> = T extends TShape ? true : false;\r\n\r\n// more strict than Extract\r\nexport type RequireExtends<T extends TShape, TShape extends object> = T;\r\n\r\nexport type KeyOf<T extends object, TKey extends keyof T> = TKey;\r\n\r\nexport type HasKeys<T> = keyof T extends never ? false : true;\r\n\r\nexport type IsEmpty<T> = HasKeys<T> extends false ? true : false;\r\n\r\nexport type Require<T, TCondition extends boolean> = TCondition extends true ? T : never;\r\n\r\nexport type IF<TCondition extends boolean, Then, Else = never> = TCondition extends true ? Then : Else;\r\n\r\nexport type Conditional<TCondition extends boolean, Then, Else = never> = IF<TCondition, Then, Else>;\r\n\r\nexport type IsKeyOf<T, TKey extends object> = TKey extends keyof T ? true : false;\r\n\r\nexport type KeysOf<T extends object, TKeys extends keyof T | Array<keyof T>> = TKeys extends Array<keyof T> ? TKeys[number] : TKeys;\r\n\r\nexport type MaybeKeyOf<T extends object, K extends PropertyKey> = K extends keyof T ? K : never;\r\n\r\nexport type IsTuple<T> = T extends readonly [...infer Elements] ? (number extends Elements[\"length\"] ? false : true) : false;\r\n\r\n// for classes only:\r\n// export type ExtractInterface<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R\r\n// ? { [K in keyof R]: R[K] }\r\n// : never;\r\n\r\n// Struct(Copy), Shape, Interface \r\nexport type Struct<T> = { [K in keyof T]: T[K] };\r\n\r\ntype NonFunctionPropertyKeys<T> = {\r\n [K in keyof T]: T[K] extends (...args: any[]) => any ? never : K\r\n}[keyof T];\r\n\r\ntype NextDepthMap = {\r\n 0: 1;\r\n 1: 2;\r\n 2: 3;\r\n 3: 4;\r\n 4: 5;\r\n 5: 5;\r\n};\r\ntype NextDepth<D extends number> = D extends keyof NextDepthMap ? NextDepthMap[D] : 5;\r\n\r\nexport type KeyPath<T, D extends number = 0> =\r\n D extends 5 ? never :\r\n T extends readonly any[]\r\n ? `${number}` | `${number}.${KeyPath<T[number], NextDepth<D>>}`\r\n : T extends object\r\n ? {\r\n [K in NonFunctionPropertyKeys<T> & (string | number)]:\r\n T[K] extends readonly any[]\r\n ? `${K}` |\r\n `${K}.${number}` |\r\n `${K}.${number}.${KeyPath<T[K][number], NextDepth<D>>}`\r\n : T[K] extends object\r\n ? `${K}` | `${K}.${KeyPath<T[K], NextDepth<D>>}`\r\n : `${K}`;\r\n }[NonFunctionPropertyKeys<T> & (string | number)]\r\n : never;\r\n\r\nexport type KeyPathValue<T, P extends string> =\r\n P extends `${infer K}.${infer Rest}`\r\n ? K extends keyof T\r\n ? KeyPathValue<T[K], Rest>\r\n : T extends readonly any[]\r\n ? K extends `${number}`\r\n ? KeyPathValue<T[number], Rest>\r\n : never\r\n : never\r\n : P extends keyof T\r\n ? T[P]\r\n : T extends readonly any[]\r\n ? P extends `${number}`\r\n ? T[number]\r\n : never\r\n : never;\r\n\r\n// Slice\r\nexport type KeyPathValueMap<T> = {\r\n [K in KeyPath<T>]?: KeyPathValue<T, K>;\r\n};"],"names":["getPrefixer","prefix","value","getValuePrefixer","dict","k","getKeyPrefixer","obj"],"mappings":"AAoIO,MAAMA,IAAc,CAACC,MAAmB,CAACC,MACrC,GAAGD,CAAM,GAAGC,CAAK,IAGfC,IACT,CAAsCF,MAClC,CAACG,MACU,OAAO,YAAY,OAAO,KAAKA,CAAI,EAAE,IAAI,CAACC,MAAM,CAACA,GAAG,GAAGJ,CAAM,GAAGG,EAAKC,CAAC,CAAC,EAAE,CAAC,CAAC,GAGjFC,IACT,CAAmCL,MAC/B,CAACM,MACU,OAAO,YAAY,OAAO,KAAKA,CAAG,EAAE,IAAI,CAACF,MAAM,CAAC,GAAGJ,CAAM,GAAGI,CAAC,IAAIE,EAAIF,CAAC,CAAC,CAAC,CAAC;"}
|