@zayne-labs/toolkit-type-helpers 0.9.33 → 0.9.35
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 +4 -3
- package/package.json +1 -1
package/dist/esm/index.d.ts
CHANGED
@@ -38,12 +38,13 @@ type WriteableVariantUnion = "deep" | "shallow";
|
|
38
38
|
* @template TObject - The object type to make writeable
|
39
39
|
* @template TVariant - The level of writeable transformation ("shallow" | "deep")
|
40
40
|
*/
|
41
|
+
type ArrayOrObject = Record<number | string | symbol, unknown> | unknown[];
|
41
42
|
type Writeable<TObject, TVariant extends WriteableVariantUnion = "shallow"> = TObject extends readonly [...infer TTupleItems] ? TVariant extends "deep" ? [
|
42
43
|
...{
|
43
|
-
[Key in keyof TTupleItems]: TTupleItems[Key] extends
|
44
|
+
[Key in keyof TTupleItems]: TTupleItems[Key] extends ArrayOrObject ? Writeable<TTupleItems[Key], TVariant> : TTupleItems[Key];
|
44
45
|
}
|
45
|
-
] : [...TTupleItems] : TObject extends ReadonlyArray<infer TArrayItem> ? TVariant extends "deep" ? Array<TArrayItem extends
|
46
|
-
-readonly [Key in keyof TObject]: TVariant extends "shallow" ? TObject[Key] : TVariant extends "deep" ? TObject[Key] extends
|
46
|
+
] : [...TTupleItems] : TObject extends ReadonlyArray<infer TArrayItem> ? TVariant extends "deep" ? Array<TArrayItem extends ArrayOrObject ? Writeable<TArrayItem, TVariant> : TArrayItem> : TArrayItem[] : TObject extends ArrayOrObject ? {
|
47
|
+
-readonly [Key in keyof TObject]: TVariant extends "shallow" ? TObject[Key] : TVariant extends "deep" ? TObject[Key] extends ArrayOrObject ? Writeable<TObject[Key], TVariant> : TObject[Key] : never;
|
47
48
|
} : TObject;
|
48
49
|
|
49
50
|
type ErrorMessages<TType extends number | string | symbol = never> = Partial<Record<"$all" | number | symbol | (AnyString | TType), unknown>> | null;
|
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.9.
|
4
|
+
"version": "0.9.35",
|
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",
|