@bemedev/typings 1.1.4 → 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 +26 -14
- package/package.json +4 -3
package/lib/types.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export type IntersectionCustom<T extends ObjectMapS[]> = T extends [
|
|
|
66
66
|
...infer Rest extends ObjectMapS[]
|
|
67
67
|
] ? First & IntersectionCustom<Rest> : unknown;
|
|
68
68
|
type _ObjectT = __ObjectT | Optional | ArrayCustom;
|
|
69
|
-
export type PrimitiveObjectT = SoRa<
|
|
69
|
+
export type PrimitiveObjectT = SoRa<PrimitiveT | PrimitiveObjectMapS | ArrayCustom<PrimitiveT | PrimitiveObjectMapS> | Optional<PrimitiveT | PrimitiveObjectMapS> | UnionCustom<(PrimitiveObjectMapS | PrimitiveT)[]> | PartialCustom<PrimitiveObjectMapS>>;
|
|
70
70
|
export interface PrimitiveObjectMapS {
|
|
71
71
|
[key: Keys]: PrimitiveObjectT;
|
|
72
72
|
}
|
|
@@ -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 : OptionalHelperClass extends T ? true : false;
|
|
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
|
-
|
|
98
|
-
type
|
|
99
|
-
type TransformT<T> = Equals<ObjectMapS, T> extends true ? object : 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<{
|
|
95
|
+
};
|
|
96
|
+
type UndefinyObject<T extends object> = _UndefinyObject<T>;
|
|
97
|
+
type Undefiny<T, U = Exclude<T, OptionalHelperClass>> = U extends AnyArray ? ReduceTupleU<U> : U extends TrueObject ? UndefinyObject<U> : U;
|
|
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> = {
|
|
@@ -112,17 +111,30 @@ export type StandardOutput<T = any> = {
|
|
|
112
111
|
};
|
|
113
112
|
};
|
|
114
113
|
};
|
|
115
|
-
export type
|
|
114
|
+
export type PrimitiveObject = SoRa<Primitive | PrimitiveObjectMap>;
|
|
115
|
+
export interface PrimitiveObjectMap {
|
|
116
|
+
[key: Keys]: PrimitiveObject;
|
|
117
|
+
}
|
|
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>>;
|
|
116
127
|
export type inferSh<T extends ObjectT = ObjectT> = _Sh<T, inferO<T>>;
|
|
117
|
-
|
|
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>;
|
|
118
130
|
export type ProduceObject<T extends ObjectT = ObjectT> = T;
|
|
119
131
|
export type FnBasic<Main extends Fn, Tr extends object> = Tr & Main;
|
|
120
132
|
type ReduceTupleSafePre<T extends ReadonlyArray<ObjectT>> = T extends readonly [
|
|
121
133
|
infer First extends ObjectT,
|
|
122
134
|
...infer Rest extends ReadonlyArray<ObjectT>
|
|
123
135
|
] ? readonly [SafePre<First>, ...ReduceTupleSafePre<Rest>] : [];
|
|
124
|
-
type _SafePre<T extends ObjectT> = PrimitiveObjectT extends T ? PrimitiveObjectT : PrimitiveT extends T ? PrimitiveT : T extends Types ? T : T extends PartialCustom<infer TPartial> ? Partial<
|
|
125
|
-
[K in keyof T]:
|
|
126
|
-
}
|
|
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
|
+
};
|
|
127
139
|
export type SafePre<T extends ObjectT> = Extract<_SafePre<T>, ObjectT>;
|
|
128
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
|
-
"_ci": "pnpm run config:off && pnpm run lint && pnpm run test",
|
|
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",
|