zodselect 1.3.1 → 1.3.2
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/types.d.ts +6 -1
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `U` merged into `T`, as types: keys in both merge deeply when both sides are objects, and by their elements when
|
|
3
|
+
* both are arrays, kept `null` or `undefined` where a side may be; otherwise they widen to `T[K] | U[K]`.
|
|
4
|
+
*/
|
|
1
5
|
export type DeepMerge<T, U> = {
|
|
2
|
-
[K in keyof T | keyof U]: K extends keyof T ? K extends keyof U ?
|
|
6
|
+
[K in keyof T | keyof U]: K extends keyof T ? K extends keyof U ? DeepMergeValue<T[K], U[K]> : T[K] : K extends keyof U ? U[K] : never;
|
|
3
7
|
};
|
|
4
8
|
export type DeepMergeAll<T> = T extends readonly any[] ? T extends [infer First, ...infer Rest] ? Rest extends [] ? First : DeepMerge<First, DeepMergeAll<Rest>> : unknown : T;
|
|
9
|
+
type DeepMergeValue<T, U> = [NonNullable<T>, NonNullable<U>] extends [infer A, infer B] ? [A] extends [never] ? T | U : [B] extends [never] ? T | U : [Extract<A | B, ((...args: never[]) => unknown) | Date>] extends [never] ? [A, B] extends [readonly (infer AItem)[], readonly (infer BItem)[]] ? DeepMergeValue<AItem, BItem>[] | Extract<T | U, null | undefined> : [A, B] extends [object, object] ? [Extract<A | B, readonly unknown[]>] extends [never] ? DeepMerge<A, B> | Extract<T | U, null | undefined> : T | U : T | U : T | U : never;
|
|
5
10
|
export type IsAny<T, TTrue = true, TFalse = false> = 0 extends (1 & T) ? TTrue : TFalse;
|
|
6
11
|
export type IsEqual<T, U, TTrue = true, TFalse = false> = (<V>() => V extends T ? 1 : 2) extends (<V>() => V extends U ? 1 : 2) ? TTrue : TFalse;
|
|
7
12
|
export type IsJsonType<T, TDeep extends boolean = true, TTrue = true, TFalse = false> = T extends JsonType ? TTrue : T extends Function ? TFalse : T extends Array<infer U> ? TDeep extends false ? TTrue : IsJsonType<U, TDeep, TTrue, TFalse> : T extends object ? TDeep extends false ? TTrue : {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zodselect",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "Type-safe selection utility built on top of Zod. Allows for strongly typed field selection, schema merging, and runtime refinement for frontend or backend use.",
|
|
5
5
|
"author": "SecureDataSystems",
|
|
6
6
|
"license": "MIT",
|