@zayne-labs/toolkit-type-helpers 0.12.4 → 0.12.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/dist/esm/index.d.ts +7 -7
- package/package.json +6 -6
package/dist/esm/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ type UnmaskType<TType> = {
|
|
|
4
4
|
_: TType;
|
|
5
5
|
}["_"];
|
|
6
6
|
type NonFalsy<TType> = TType extends "" | 0 | 0n | false | null | undefined ? never : TType;
|
|
7
|
-
type PrettyOmit<TObject, Key extends keyof TObject> = Prettify<Omit<TObject, Key>>;
|
|
8
|
-
type PrettyPick<TObject, Key extends keyof TObject> = Prettify<Pick<TObject, Key>>;
|
|
7
|
+
type PrettyOmit<TObject, Key$1 extends keyof TObject> = Prettify<Omit<TObject, Key$1>>;
|
|
8
|
+
type PrettyPick<TObject, Key$1 extends keyof TObject> = Prettify<Pick<TObject, Key$1>>;
|
|
9
9
|
type CallbackFn<in TParams, out TResult = void> = (...params: TParams[]) => TResult;
|
|
10
10
|
type SelectorFn<TStore, TResult> = (state: TStore) => TResult;
|
|
11
11
|
type NonEmptyArray<TArrayItem> = [TArrayItem, ...TArrayItem[]];
|
|
@@ -28,13 +28,13 @@ type AnyString = string & Record<never, never>;
|
|
|
28
28
|
* @see [typescript issue](https://github.com/microsoft/TypeScript/issues/29729#issuecomment-471566609)
|
|
29
29
|
*/
|
|
30
30
|
type AnyNumber = number & Record<never, never>;
|
|
31
|
-
type LiteralUnion<TUnion extends TBase, TBase = string> = TUnion | (TBase & Record<never, never>);
|
|
31
|
+
type LiteralUnion<TUnion$1 extends TBase, TBase = string> = TUnion$1 | (TBase & Record<never, never>);
|
|
32
32
|
type Expect<TType extends true> = TType;
|
|
33
33
|
type GetGenericFn<TType> = <TGenericFnParam>() => TGenericFnParam extends TType ? true : false;
|
|
34
34
|
type Equal<TTypeOne, TTypeTwo> = GetGenericFn<TTypeOne> extends GetGenericFn<TTypeTwo> ? true : false;
|
|
35
35
|
//#endregion
|
|
36
36
|
//#region src/type-utils/writeable.d.ts
|
|
37
|
-
type ArrayOrObject = Record<number | string | symbol, unknown> | unknown[];
|
|
37
|
+
type ArrayOrObject = Record<number | string | symbol, unknown> | unknown[] | readonly unknown[];
|
|
38
38
|
type WriteableLevel = "deep" | "shallow";
|
|
39
39
|
/**
|
|
40
40
|
* Makes all properties in an object type writeable (removes readonly modifiers).
|
|
@@ -42,7 +42,7 @@ type WriteableLevel = "deep" | "shallow";
|
|
|
42
42
|
* @template TObject - The object type to make writeable
|
|
43
43
|
* @template TVariant - The level of writeable transformation ("shallow" | "deep")
|
|
44
44
|
*/
|
|
45
|
-
type Writeable<TObject, TLevel extends WriteableLevel = "shallow"> = TObject extends
|
|
45
|
+
type Writeable<TObject, TLevel extends WriteableLevel = "shallow"> = TObject extends ArrayOrObject ? { -readonly [Key in keyof TObject]: TLevel extends "deep" ? NonNullable<TObject[Key]> extends ArrayOrObject ? Writeable<TObject[Key], "deep"> : TObject[Key] : TObject[Key] } : TObject;
|
|
46
46
|
//#endregion
|
|
47
47
|
//#region src/type-utils/union.d.ts
|
|
48
48
|
type ErrorMessages<TType extends number | string | symbol = never> = Partial<Record<"$all" | number | symbol | (AnyString | TType), unknown>> | null;
|
|
@@ -53,7 +53,7 @@ type ErrorMessages<TType extends number | string | symbol = never> = Partial<Rec
|
|
|
53
53
|
* @template TSecondType The second type. Properties of this type will be disallowed.
|
|
54
54
|
* @template TErrorMessages An object of custom messages to display on the properties of the second type that are disallowed.
|
|
55
55
|
*/
|
|
56
|
-
type AllowOnlyFirst<TFirstType, TSecondType, TErrorMessages extends ErrorMessages = never> = Prettify<TFirstType & { [Key in keyof Omit<TSecondType, keyof TFirstType>]?: Key extends keyof TErrorMessages ? TErrorMessages[Key] : "$all" extends keyof TErrorMessages ? TErrorMessages["$all"] : TErrorMessages extends null ? TErrorMessages : never }>;
|
|
56
|
+
type AllowOnlyFirst<TFirstType$1, TSecondType, TErrorMessages extends ErrorMessages = never> = Prettify<TFirstType$1 & { [Key in keyof Omit<TSecondType, keyof TFirstType$1>]?: Key extends keyof TErrorMessages ? TErrorMessages[Key] : "$all" extends keyof TErrorMessages ? TErrorMessages["$all"] : TErrorMessages extends null ? TErrorMessages : never }>;
|
|
57
57
|
/**
|
|
58
58
|
* Merges all types in an array of types into one type.
|
|
59
59
|
*
|
|
@@ -73,7 +73,7 @@ type MergeTypes<TArrayOfTypes extends unknown[], TAccumulator = NonNullable<unkn
|
|
|
73
73
|
type UnionDiscriminator<TArrayOfTypes extends unknown[], TErrorMessages extends ErrorMessages<keyof MergeTypes<TArrayOfTypes>> = never, TAccumulator = never, TMergedProperties = MergeTypes<TArrayOfTypes>> = TArrayOfTypes extends [infer TFirstType, ...infer TRestOfTypes] ? UnionDiscriminator<TRestOfTypes, TErrorMessages, TAccumulator | AllowOnlyFirst<TFirstType, TMergedProperties, TErrorMessages>, TMergedProperties> : TAccumulator;
|
|
74
74
|
type UnionVariant = "keys" | "values";
|
|
75
75
|
type ExtractUnion<TObject, TVariant extends UnionVariant = "keys"> = TObject extends Array<infer TUnion> | ReadonlyArray<infer TUnion> | Set<infer TUnion> ? TUnion : TObject extends Record<infer TKeys, infer TValues> ? TVariant extends "keys" ? TKeys : Prettify<Writeable<TValues, "deep">> : never;
|
|
76
|
-
type UnionToIntersection<TUnion> = (TUnion extends unknown ? (param: TUnion) => void : never) extends ((param: infer TParam) => void) ? TParam : never;
|
|
76
|
+
type UnionToIntersection<TUnion$1> = (TUnion$1 extends unknown ? (param: TUnion$1) => void : never) extends ((param: infer TParam) => void) ? TParam : never;
|
|
77
77
|
//#endregion
|
|
78
78
|
//#region src/guard.d.ts
|
|
79
79
|
declare const isString: (value: unknown) => value is string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zayne-labs/toolkit-type-helpers",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.12.
|
|
4
|
+
"version": "0.12.6",
|
|
5
5
|
"description": "A collection of utility functions, types and composables used by my other projects. Nothing too fancy but can be useful.",
|
|
6
6
|
"author": "Ryan Zayne",
|
|
7
7
|
"license": "MIT",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"@size-limit/esbuild-why": "^11.2.0",
|
|
36
36
|
"@size-limit/preset-small-lib": "^11.2.0",
|
|
37
37
|
"@total-typescript/ts-reset": "^0.6.1",
|
|
38
|
-
"@types/node": "^24.
|
|
39
|
-
"@zayne-labs/tsconfig": "0.
|
|
38
|
+
"@types/node": "^24.9.1",
|
|
39
|
+
"@zayne-labs/tsconfig": "0.11.4",
|
|
40
40
|
"clsx": "^2.1.1",
|
|
41
41
|
"concurrently": "^9.2.1",
|
|
42
42
|
"cross-env": "^10.1.0",
|
|
43
|
-
"publint": "^0.3.
|
|
43
|
+
"publint": "^0.3.15",
|
|
44
44
|
"size-limit": "^11.2.0",
|
|
45
|
-
"tsdown": "^0.15.
|
|
45
|
+
"tsdown": "^0.15.10",
|
|
46
46
|
"typescript": "5.9.3",
|
|
47
|
-
"vitest": "
|
|
47
|
+
"vitest": "4.0.3"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public",
|