@bemedev/typings 1.1.5 → 1.1.6
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/lib/types.d.ts +20 -12
- package/package.json +3 -2
package/lib/types.d.ts
CHANGED
|
@@ -85,18 +85,17 @@ type ReduceTupleU<T extends AnyArray> = T extends [
|
|
|
85
85
|
infer First,
|
|
86
86
|
...infer Rest extends AnyArray
|
|
87
87
|
] ? [Undefiny<First>, ...ReduceTupleU<Rest>] : T[number] extends never ? [] : T['length'] extends 0 ? [] : number extends T['length'] ? T : Undefiny<T[number]>[];
|
|
88
|
-
type EmptyObject =
|
|
88
|
+
export type EmptyObject = Record<string, never>;
|
|
89
89
|
type __TransformUnion<T extends UnionCustom> = T extends UnionCustom<infer TCustom> ? Omit<T, typeof UNION> extends infer Ot ? Equals<Ot, EmptyObject> extends true ? TransformT<TCustom[number]> : TransformT<TCustom[number]> & TransformT<Ot> : never : never;
|
|
90
|
-
type HasUndefined<T> = unknown extends T ? false : EmptyObject extends
|
|
91
|
-
type
|
|
90
|
+
type HasUndefined<T> = unknown extends T ? false : Equals<EmptyObject, T> extends true ? false : OptionalHelperClass extends T ? true : false;
|
|
91
|
+
type _UndefinyObject<T extends object> = {
|
|
92
92
|
[K in keyof T as HasUndefined<T[K]> extends true ? never : K]: Undefiny<T[K]>;
|
|
93
93
|
} & {
|
|
94
94
|
[K in keyof T as HasUndefined<T[K]> extends true ? K : never]?: Undefiny<T[K]>;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
} : never;
|
|
95
|
+
};
|
|
96
|
+
type UndefinyObject<T extends object> = _UndefinyObject<T>;
|
|
98
97
|
type Undefiny<T, U = Exclude<T, OptionalHelperClass>> = U extends AnyArray ? ReduceTupleU<U> : U extends TrueObject ? UndefinyObject<U> : U;
|
|
99
|
-
type TransformT<T> = EmptyObject extends
|
|
98
|
+
type TransformT<T> = Equals<EmptyObject, T> extends true ? EmptyObject : Equals<ObjectMapS, T> extends true ? object : PrimitiveObjectT extends T ? PrimitiveObject : T extends Types ? TransformTypes<T> : T extends ArrayCustom<infer A> ? TransformT<A>[] : T extends UnionCustom ? __TransformUnion<T> : T extends SoRaCustom<infer TSoA> ? SoRa<TransformT<TSoA>> : T extends SoaCustom<infer TSoA> ? SoA<TransformT<TSoA>> : T extends Custom<infer TCustom> ? TCustom : T extends AnyArray<ObjectT> ? ReduceTuple2<T> : T extends PartialCustom<infer TPartial> ? Partial<TransformT<TPartial>> : T extends Optional<infer TOptional> ? TransformT<TOptional> | OptionalHelperClass : Undefiny<{
|
|
100
99
|
[K in keyof T]: TransformT<T[K]>;
|
|
101
100
|
}>;
|
|
102
101
|
export type StandardHelper<T1 = any, T2 = any> = {
|
|
@@ -116,17 +115,26 @@ export type PrimitiveObject = SoRa<Primitive | PrimitiveObjectMap>;
|
|
|
116
115
|
export interface PrimitiveObjectMap {
|
|
117
116
|
[key: Keys]: PrimitiveObject;
|
|
118
117
|
}
|
|
119
|
-
|
|
118
|
+
type _inferO<T extends ObjectT = ObjectT> = ObjectT extends T ? unknown : T extends Optional<infer U> ? TransformT<U> | undefined : TransformT<T>;
|
|
119
|
+
type ReduceArraySimple<T extends any[]> = T extends [
|
|
120
|
+
infer First,
|
|
121
|
+
...infer Rest extends any[]
|
|
122
|
+
] ? [Simplify<First>, ...ReduceArraySimple<Rest>] : number extends T['length'] ? Simplify<T[number]>[] : T;
|
|
123
|
+
export type Simplify<T> = unknown extends T ? T : T extends Primitive ? T : T extends any[] ? ReduceArraySimple<T> : T extends TrueObject ? {
|
|
124
|
+
[K in keyof T]: Simplify<T[K]>;
|
|
125
|
+
} : T & {};
|
|
126
|
+
export type inferO<T extends POS> = Simplify<_inferO<T>>;
|
|
120
127
|
export type inferSh<T extends ObjectT = ObjectT> = _Sh<T, inferO<T>>;
|
|
121
|
-
|
|
128
|
+
type _inferT<T extends StandardOutput = StandardOutput> = Exclude<T[typeof STANDARD_KEY]['types'], undefined>['output'];
|
|
129
|
+
export type inferT<T extends StandardOutput = StandardOutput> = _inferT<T>;
|
|
122
130
|
export type ProduceObject<T extends ObjectT = ObjectT> = T;
|
|
123
131
|
export type FnBasic<Main extends Fn, Tr extends object> = Tr & Main;
|
|
124
132
|
type ReduceTupleSafePre<T extends ReadonlyArray<ObjectT>> = T extends readonly [
|
|
125
133
|
infer First extends ObjectT,
|
|
126
134
|
...infer Rest extends ReadonlyArray<ObjectT>
|
|
127
135
|
] ? readonly [SafePre<First>, ...ReduceTupleSafePre<Rest>] : [];
|
|
128
|
-
type _SafePre<T extends ObjectT> = PrimitiveObjectT extends T ? PrimitiveObjectT : PrimitiveT extends T ? PrimitiveT : T extends Types ? T : T extends PartialCustom<infer TPartial> ? Partial<
|
|
129
|
-
[K in keyof T]:
|
|
130
|
-
}
|
|
136
|
+
type _SafePre<T extends ObjectT> = PrimitiveObjectT extends T ? PrimitiveObjectT : PrimitiveT extends T ? PrimitiveT : T extends Types ? T : T extends PartialCustom<infer TPartial> ? Partial<_SafePre<TPartial>> : T extends ArrayCustom<infer A> ? _SafePre<A>[] : T extends Optional<infer TOptional> ? _SafePre<TOptional> | undefined : T extends SoRaCustom<infer TSoRa> ? SoRa<_SafePre<TSoRa>> : T extends SoaCustom<infer TSoA> ? SoA<_SafePre<TSoA>> : T extends Custom ? T : T extends AnyArray<ObjectT> ? ReduceTupleSafePre<T> : PrimitiveObjectMapS extends T ? PrimitiveObjectMapS : ObjectMapS extends T ? ObjectMapS : {
|
|
137
|
+
[K in keyof T]: T[K] extends infer Tk extends ObjectT ? _SafePre<Tk> : T[K];
|
|
138
|
+
};
|
|
131
139
|
export type SafePre<T extends ObjectT> = Extract<_SafePre<T>, ObjectT>;
|
|
132
140
|
export * from './standard.types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bemedev/typings",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Typings by variables",
|
|
5
5
|
"author": {
|
|
6
6
|
"email": "bri_lvi@icloud.com",
|
|
@@ -68,10 +68,11 @@
|
|
|
68
68
|
"node": ">=24"
|
|
69
69
|
},
|
|
70
70
|
"scripts": {
|
|
71
|
+
"prune": "pnpm store prune",
|
|
71
72
|
"build": "pnpm rm:lib && pnpm run rolldown",
|
|
72
73
|
"_ci": "pnpm clean --lockfile && pnpm run config:off && pnpm run lint && pnpm run test",
|
|
73
74
|
"ci": "CI_START=$(date +%s) && pnpm run _ci && pnpm run p-q && echo \"\n✅ CI takes $(($(date +%s) - CI_START))s\n\"",
|
|
74
|
-
"ci:admin": "CI_START=$(date +%s) && pnpm run rm && pnpm run upgrade:fast && pnpm run _ci && echo \"\n✅ Admin CI takes $(($(date +%s) - CI_START))s\n\"",
|
|
75
|
+
"ci:admin": "CI_START=$(date +%s) && pnpm run prune && pnpm run rm && pnpm run upgrade:fast && pnpm run _ci && echo \"\n✅ Admin CI takes $(($(date +%s) - CI_START))s\n\"",
|
|
75
76
|
"clean": "pnpm run rm && pnpm run config",
|
|
76
77
|
"config": "pnpm install",
|
|
77
78
|
"config:off": "pnpm run config --offline",
|