@zayne-labs/toolkit-type-helpers 0.10.2 → 0.10.4

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.
@@ -72,7 +72,7 @@ type MergeTypes<TArrayOfTypes extends unknown[], TAccumulator = NonNullable<unkn
72
72
  */
73
73
  type UnionDiscriminator<TArrayOfTypes extends unknown[], TErrorMessages extends ErrorMessages<keyof MergeTypes<TArrayOfTypes>> = never, TAccumulator = never, TMergedProperties = MergeTypes<TArrayOfTypes>> = TArrayOfTypes extends [infer TFirstType, ...infer TRest] ? UnionDiscriminator<TRest, TErrorMessages, TAccumulator | AllowOnlyFirst<TFirstType, TMergedProperties, TErrorMessages>, TMergedProperties> : TAccumulator;
74
74
  type UnionVariant = "keys" | "values";
75
- type ExtractUnion<TObject, TVariant extends UnionVariant = "values"> = 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;
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
76
  type UnionToIntersection<TUnion> = (TUnion extends unknown ? (param: TUnion) => void : never) extends ((param: infer TParam) => void) ? TParam : never;
77
77
  //#endregion
78
78
  //#region src/guard.d.ts
@@ -94,6 +94,7 @@ declare const isFunction: <TFunction extends AnyFunction>(value: unknown) => val
94
94
  declare const isAsyncFunction: <TAsyncFunction extends AnyAsyncFunction>(value: unknown) => value is TAsyncFunction;
95
95
  declare const isFile: (value: unknown) => value is File;
96
96
  declare const isIterable: <TIterable>(obj: object) => obj is Iterable<TIterable>;
97
+ declare const isJsonString: (value: unknown) => value is string;
97
98
  //#endregion
98
99
  //#region src/assert.d.ts
99
100
  declare class AssertionError extends Error {
@@ -116,25 +117,24 @@ type DefineEnumOptions = {
116
117
  unionVariant?: UnionVariant;
117
118
  writeableLevel?: WriteableLevel;
118
119
  };
119
- declare const defineEnum: <const TValue extends object, TOptions extends DefineEnumOptions = DefineEnumOptions>(value: TValue, _options?: TOptions) => Prettify<Writeable<TValue, TOptions["writeableLevel"] extends WriteableLevel ? TOptions["writeableLevel"] : "shallow">> & {
120
- "~inferredUnion": ExtractUnion<TValue, TOptions["unionVariant"] extends UnionVariant ? TOptions["unionVariant"] : "values">;
120
+ type EnumWithInferredUnionType<TResult, TUnionVariant extends UnionVariant> = TResult & {
121
+ $inferUnion: ExtractUnion<TResult, TUnionVariant>;
121
122
  };
123
+ type DefaultDefineEnumOptions = {
124
+ unionVariant: "keys";
125
+ writeableLevel: "shallow";
126
+ };
127
+ declare const defineEnum: <const TValue extends object, TOptions extends DefineEnumOptions = DefaultDefineEnumOptions, TComputedWriteableLevel extends WriteableLevel = ([TOptions["writeableLevel"]] extends [WriteableLevel] ? TOptions["writeableLevel"] : DefaultDefineEnumOptions["writeableLevel"]), TComputedUnionVariant extends UnionVariant = ([TOptions["unionVariant"]] extends [UnionVariant] ? TOptions["unionVariant"] : DefaultDefineEnumOptions["unionVariant"])>(value: TValue, _options?: TOptions) => EnumWithInferredUnionType<Writeable<TValue, TComputedWriteableLevel>, TComputedUnionVariant>;
122
128
  type DefineEnumDeepOptions = Pick<DefineEnumOptions, "unionVariant">;
123
- declare const defineEnumDeep: <const TValue extends object, TOptions extends DefineEnumDeepOptions = DefineEnumDeepOptions>(value: TValue, _options?: TOptions) => (Writeable<TValue, (TOptions & {
129
+ declare const defineEnumDeep: <const TValue extends object, TOptions extends DefineEnumDeepOptions = DefineEnumDeepOptions>(value: TValue, _options?: TOptions) => EnumWithInferredUnionType<Writeable<TValue, [(TOptions & {
124
130
  writeableLevel: "deep";
125
- })["writeableLevel"] extends WriteableLevel ? (TOptions & {
131
+ })["writeableLevel"]] extends [WriteableLevel] ? (TOptions & {
126
132
  writeableLevel: "deep";
127
- })["writeableLevel"] : "shallow"> extends infer T ? { [Key in keyof T]: Writeable<TValue, (TOptions & {
133
+ })["writeableLevel"] : "shallow">, [(TOptions & {
128
134
  writeableLevel: "deep";
129
- })["writeableLevel"] extends WriteableLevel ? (TOptions & {
135
+ })["unionVariant"]] extends [UnionVariant] ? (TOptions & {
130
136
  writeableLevel: "deep";
131
- })["writeableLevel"] : "shallow">[Key] } : never) & {
132
- "~inferredUnion": ExtractUnion<TValue, (TOptions & {
133
- writeableLevel: "deep";
134
- })["unionVariant"] extends UnionVariant ? (TOptions & {
135
- writeableLevel: "deep";
136
- })["unionVariant"] : "values">;
137
- };
137
+ })["unionVariant"] : "keys">;
138
138
  //#endregion
139
- export { AnyAsyncFunction, AnyFunction, AnyNumber, AnyObject, AnyString, AssertionError, Awaitable, CallbackFn, EmptyObject, Equal, Expect, ExtractUnion, LiteralUnion, NonEmptyArray, NonFalsy, Prettify, PrettyOmit, PrettyPick, SelectorFn, UnionDiscriminator, UnionToIntersection, UnionVariant, UnknownObject, UnknownObjectWithAnyKey, UnmaskType, Writeable, WriteableLevel, assert, assertDefined, assertENV, defineEnum, defineEnumDeep, hasObjectPrototype, isArray, isAsyncFunction, isBoolean, isFile, isFormData, isFunction, isIterable, isNumber, isObject, isObjectAndNotArray, isPlainObject, isString, isSymbol };
139
+ export { AnyAsyncFunction, AnyFunction, AnyNumber, AnyObject, AnyString, AssertionError, Awaitable, CallbackFn, EmptyObject, Equal, Expect, ExtractUnion, LiteralUnion, NonEmptyArray, NonFalsy, Prettify, PrettyOmit, PrettyPick, SelectorFn, UnionDiscriminator, UnionToIntersection, UnionVariant, UnknownObject, UnknownObjectWithAnyKey, UnmaskType, Writeable, WriteableLevel, assert, assertDefined, assertENV, defineEnum, defineEnumDeep, hasObjectPrototype, isArray, isAsyncFunction, isBoolean, isFile, isFormData, isFunction, isIterable, isJsonString, isNumber, isObject, isObjectAndNotArray, isPlainObject, isString, isSymbol };
140
140
  //# sourceMappingURL=index.d.ts.map
package/dist/esm/index.js CHANGED
@@ -34,6 +34,15 @@ const isAsyncFunction = (value) => {
34
34
  };
35
35
  const isFile = (value) => value instanceof File;
36
36
  const isIterable = (obj) => Symbol.iterator in obj;
37
+ const isJsonString = (value) => {
38
+ if (!isString(value)) return false;
39
+ try {
40
+ JSON.parse(value);
41
+ return true;
42
+ } catch {
43
+ return false;
44
+ }
45
+ };
37
46
 
38
47
  //#endregion
39
48
  //#region src/assert.ts
@@ -69,5 +78,5 @@ const defineEnumDeep = (value, _options) => {
69
78
  };
70
79
 
71
80
  //#endregion
72
- export { AssertionError, assert, assertDefined, assertENV, defineEnum, defineEnumDeep, hasObjectPrototype, isArray, isAsyncFunction, isBoolean, isFile, isFormData, isFunction, isIterable, isNumber, isObject, isObjectAndNotArray, isPlainObject, isString, isSymbol };
81
+ export { AssertionError, assert, assertDefined, assertENV, defineEnum, defineEnumDeep, hasObjectPrototype, isArray, isAsyncFunction, isBoolean, isFile, isFormData, isFunction, isIterable, isJsonString, isNumber, isObject, isObjectAndNotArray, isPlainObject, isString, isSymbol };
73
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["value: unknown","obj: object","message?: string","value: TValue","variable: string | undefined","assert: AssertFn","input: unknown","messageOrOptions?: string | AssertOptions","value: TValue","_options?: TOptions"],"sources":["../../src/guard.ts","../../src/assert.ts","../../src/enum.ts"],"sourcesContent":["import type {\n\tAnyAsyncFunction,\n\tAnyFunction,\n\tUnknownObject,\n\tUnknownObjectWithAnyKey,\n} from \"./type-utils/common\";\n\nexport const isString = (value: unknown) => typeof value === \"string\";\n\nexport const isNumber = (value: unknown) => typeof value === \"number\";\n\nexport const isSymbol = (value: unknown) => typeof value === \"symbol\";\n\nexport const isBoolean = (value: unknown) => typeof value === \"boolean\";\n\nexport const isArray = <TArray>(value: unknown): value is TArray[] => Array.isArray(value);\n\nexport const isFormData = (value: unknown) => value instanceof FormData;\n\nexport const isObject = (value: unknown) => typeof value === \"object\" && value !== null;\n\nexport const isObjectAndNotArray = <TObject = UnknownObject>(value: unknown): value is TObject => {\n\treturn isObject(value) && !isArray(value);\n};\n\nexport const hasObjectPrototype = (value: unknown) => {\n\treturn Object.prototype.toString.call(value) === \"[object Object]\";\n};\n\n/**\n * @description Copied from TanStack Query's isPlainObject\n * @see https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L321\n */\nexport const isPlainObject = <TPlainObject extends UnknownObjectWithAnyKey = UnknownObject>(\n\tvalue: unknown\n): value is TPlainObject => {\n\tif (!hasObjectPrototype(value)) {\n\t\treturn false;\n\t}\n\n\t// If has no constructor\n\tconst constructor = (value as object | undefined)?.constructor;\n\tif (constructor === undefined) {\n\t\treturn true;\n\t}\n\n\t// If has modified prototype\n\tconst prototype = constructor.prototype as object;\n\tif (!hasObjectPrototype(prototype)) {\n\t\treturn false;\n\t}\n\n\t// If constructor does not have an Object-specific method\n\tif (!Object.hasOwn(prototype, \"isPrototypeOf\")) {\n\t\treturn false;\n\t}\n\n\t// Handles Objects created by Object.create(<arbitrary prototype>)\n\tif (Object.getPrototypeOf(value) !== Object.prototype) {\n\t\treturn false;\n\t}\n\n\t// It's probably a plain object at this point\n\treturn true;\n};\n\nexport const isFunction = <TFunction extends AnyFunction>(value: unknown): value is TFunction => {\n\treturn typeof value === \"function\";\n};\n\nexport const isAsyncFunction = <TAsyncFunction extends AnyAsyncFunction>(\n\tvalue: unknown\n): value is TAsyncFunction => {\n\treturn isFunction(value) && value.constructor.name === \"AsyncFunction\";\n};\n\nexport const isFile = (value: unknown): value is File => value instanceof File;\n\nexport const isIterable = <TIterable>(obj: object): obj is Iterable<TIterable> => Symbol.iterator in obj;\n","import { isString } from \"./guard\";\n\nexport class AssertionError extends Error {\n\toverride name = \"AssertionError\";\n\n\tconstructor(message?: string) {\n\t\tconst prefix = \"Assertion failed\";\n\n\t\tsuper(message ? `${prefix}: ${message}` : message);\n\t}\n}\n\nexport const assertDefined = <TValue>(value: TValue) => {\n\tif (value == null) {\n\t\tthrow new AssertionError(`The value passed is \"${value as null | undefined}!\"`);\n\t}\n\n\treturn value;\n};\n\nexport const assertENV = (variable: string | undefined, message?: string) => {\n\tif (variable === undefined) {\n\t\tthrow new AssertionError(message);\n\t}\n\n\treturn variable;\n};\n\ntype AssertOptions = {\n\tmessage: string;\n};\n\ntype AssertFn = {\n\t(condition: boolean, messageOrOptions?: string | AssertOptions): asserts condition;\n\n\t<TValue>(\n\t\tvalue: TValue,\n\t\tmessageOrOptions?: string | AssertOptions\n\t): asserts value is NonNullable<TValue>;\n};\n\nexport const assert: AssertFn = (input: unknown, messageOrOptions?: string | AssertOptions) => {\n\tif (input === false || input == null) {\n\t\tconst message = isString(messageOrOptions) ? messageOrOptions : messageOrOptions?.message;\n\n\t\tthrow new AssertionError(message);\n\t}\n};\n","import type { ExtractUnion, Prettify, UnionVariant, Writeable, WriteableLevel } from \"./type-utils\";\n\ntype DefineEnumOptions = {\n\tunionVariant?: UnionVariant;\n\twriteableLevel?: WriteableLevel;\n};\n\nexport const defineEnum = <\n\tconst TValue extends object,\n\tTOptions extends DefineEnumOptions = DefineEnumOptions,\n>(\n\tvalue: TValue,\n\t_options?: TOptions\n) => {\n\ttype UnionProp = {\n\t\t\"~inferredUnion\": ExtractUnion<\n\t\t\tTValue,\n\t\t\tTOptions[\"unionVariant\"] extends UnionVariant ? TOptions[\"unionVariant\"] : \"values\"\n\t\t>;\n\t};\n\n\treturn value as Prettify<\n\t\tWriteable<\n\t\t\tTValue,\n\t\t\tTOptions[\"writeableLevel\"] extends WriteableLevel ? TOptions[\"writeableLevel\"] : \"shallow\"\n\t\t>\n\t>\n\t\t& UnionProp;\n};\n\ntype DefineEnumDeepOptions = Pick<DefineEnumOptions, \"unionVariant\">;\n\nexport const defineEnumDeep = <\n\tconst TValue extends object,\n\tTOptions extends DefineEnumDeepOptions = DefineEnumDeepOptions,\n>(\n\tvalue: TValue,\n\t_options?: TOptions\n) => {\n\treturn defineEnum<TValue, TOptions & { writeableLevel: \"deep\" }>(value);\n};\n"],"mappings":";AAOA,MAAa,WAAW,CAACA,iBAA0B,UAAU;AAE7D,MAAa,WAAW,CAACA,iBAA0B,UAAU;AAE7D,MAAa,WAAW,CAACA,iBAA0B,UAAU;AAE7D,MAAa,YAAY,CAACA,iBAA0B,UAAU;AAE9D,MAAa,UAAU,CAASA,UAAsC,MAAM,QAAQ,MAAM;AAE1F,MAAa,aAAa,CAACA,UAAmB,iBAAiB;AAE/D,MAAa,WAAW,CAACA,iBAA0B,UAAU,YAAY,UAAU;AAEnF,MAAa,sBAAsB,CAA0BA,UAAqC;AACjG,QAAO,SAAS,MAAM,KAAK,QAAQ,MAAM;AACzC;AAED,MAAa,qBAAqB,CAACA,UAAmB;AACrD,QAAO,OAAO,UAAU,SAAS,KAAK,MAAM,KAAK;AACjD;;;;;AAMD,MAAa,gBAAgB,CAC5BA,UAC2B;AAC3B,MAAK,mBAAmB,MAAM,CAC7B,QAAO;CAIR,MAAM,cAAe,OAA8B;AACnD,KAAI,uBACH,QAAO;CAIR,MAAM,YAAY,YAAY;AAC9B,MAAK,mBAAmB,UAAU,CACjC,QAAO;AAIR,MAAK,OAAO,OAAO,WAAW,gBAAgB,CAC7C,QAAO;AAIR,KAAI,OAAO,eAAe,MAAM,KAAK,OAAO,UAC3C,QAAO;AAIR,QAAO;AACP;AAED,MAAa,aAAa,CAAgCA,UAAuC;AAChG,eAAc,UAAU;AACxB;AAED,MAAa,kBAAkB,CAC9BA,UAC6B;AAC7B,QAAO,WAAW,MAAM,IAAI,MAAM,YAAY,SAAS;AACvD;AAED,MAAa,SAAS,CAACA,UAAkC,iBAAiB;AAE1E,MAAa,aAAa,CAAYC,QAA4C,OAAO,YAAY;;;;AC5ErG,IAAa,iBAAb,cAAoC,MAAM;CACzC,AAAS,OAAO;CAEhB,YAAYC,SAAkB;EAC7B,MAAM,SAAS;AAEf,QAAM,WAAW,EAAE,OAAO,IAAI,QAAQ,IAAI,QAAQ;CAClD;AACD;AAED,MAAa,gBAAgB,CAASC,UAAkB;AACvD,KAAI,SAAS,KACZ,OAAM,IAAI,gBAAgB,uBAAuB,MAA0B;AAG5E,QAAO;AACP;AAED,MAAa,YAAY,CAACC,UAA8BF,YAAqB;AAC5E,KAAI,oBACH,OAAM,IAAI,eAAe;AAG1B,QAAO;AACP;AAeD,MAAaG,SAAmB,CAACC,OAAgBC,qBAA8C;AAC9F,KAAI,UAAU,SAAS,SAAS,MAAM;EACrC,MAAM,UAAU,SAAS,iBAAiB,GAAG,mBAAmB,kBAAkB;AAElF,QAAM,IAAI,eAAe;CACzB;AACD;;;;ACxCD,MAAa,aAAa,CAIzBC,OACAC,aACI;AAQJ,QAAO;AAOP;AAID,MAAa,iBAAiB,CAI7BD,OACAC,aACI;AACJ,QAAO,WAA0D,MAAM;AACvE"}
1
+ {"version":3,"file":"index.js","names":["value: unknown","obj: object","message?: string","value: TValue","variable: string | undefined","assert: AssertFn","input: unknown","messageOrOptions?: string | AssertOptions","value: TValue","_options?: TOptions"],"sources":["../../src/guard.ts","../../src/assert.ts","../../src/enum.ts"],"sourcesContent":["import type {\n\tAnyAsyncFunction,\n\tAnyFunction,\n\tUnknownObject,\n\tUnknownObjectWithAnyKey,\n} from \"./type-utils/common\";\n\nexport const isString = (value: unknown) => typeof value === \"string\";\n\nexport const isNumber = (value: unknown) => typeof value === \"number\";\n\nexport const isSymbol = (value: unknown) => typeof value === \"symbol\";\n\nexport const isBoolean = (value: unknown) => typeof value === \"boolean\";\n\nexport const isArray = <TArray>(value: unknown): value is TArray[] => Array.isArray(value);\n\nexport const isFormData = (value: unknown) => value instanceof FormData;\n\nexport const isObject = (value: unknown) => typeof value === \"object\" && value !== null;\n\nexport const isObjectAndNotArray = <TObject = UnknownObject>(value: unknown): value is TObject => {\n\treturn isObject(value) && !isArray(value);\n};\n\nexport const hasObjectPrototype = (value: unknown) => {\n\treturn Object.prototype.toString.call(value) === \"[object Object]\";\n};\n\n/**\n * @description Copied from TanStack Query's isPlainObject\n * @see https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L321\n */\nexport const isPlainObject = <TPlainObject extends UnknownObjectWithAnyKey = UnknownObject>(\n\tvalue: unknown\n): value is TPlainObject => {\n\tif (!hasObjectPrototype(value)) {\n\t\treturn false;\n\t}\n\n\t// If has no constructor\n\tconst constructor = (value as object | undefined)?.constructor;\n\tif (constructor === undefined) {\n\t\treturn true;\n\t}\n\n\t// If has modified prototype\n\tconst prototype = constructor.prototype as object;\n\tif (!hasObjectPrototype(prototype)) {\n\t\treturn false;\n\t}\n\n\t// If constructor does not have an Object-specific method\n\tif (!Object.hasOwn(prototype, \"isPrototypeOf\")) {\n\t\treturn false;\n\t}\n\n\t// Handles Objects created by Object.create(<arbitrary prototype>)\n\tif (Object.getPrototypeOf(value) !== Object.prototype) {\n\t\treturn false;\n\t}\n\n\t// It's probably a plain object at this point\n\treturn true;\n};\n\nexport const isFunction = <TFunction extends AnyFunction>(value: unknown): value is TFunction => {\n\treturn typeof value === \"function\";\n};\n\nexport const isAsyncFunction = <TAsyncFunction extends AnyAsyncFunction>(\n\tvalue: unknown\n): value is TAsyncFunction => {\n\treturn isFunction(value) && value.constructor.name === \"AsyncFunction\";\n};\n\nexport const isFile = (value: unknown): value is File => value instanceof File;\n\nexport const isIterable = <TIterable>(obj: object): obj is Iterable<TIterable> => Symbol.iterator in obj;\n\nexport const isJsonString = (value: unknown): value is string => {\n\tif (!isString(value)) {\n\t\treturn false;\n\t}\n\n\ttry {\n\t\tJSON.parse(value);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n","import { isString } from \"./guard\";\n\nexport class AssertionError extends Error {\n\toverride name = \"AssertionError\";\n\n\tconstructor(message?: string) {\n\t\tconst prefix = \"Assertion failed\";\n\n\t\tsuper(message ? `${prefix}: ${message}` : message);\n\t}\n}\n\nexport const assertDefined = <TValue>(value: TValue) => {\n\tif (value == null) {\n\t\tthrow new AssertionError(`The value passed is \"${value as null | undefined}!\"`);\n\t}\n\n\treturn value;\n};\n\nexport const assertENV = (variable: string | undefined, message?: string) => {\n\tif (variable === undefined) {\n\t\tthrow new AssertionError(message);\n\t}\n\n\treturn variable;\n};\n\ntype AssertOptions = {\n\tmessage: string;\n};\n\ntype AssertFn = {\n\t(condition: boolean, messageOrOptions?: string | AssertOptions): asserts condition;\n\n\t<TValue>(\n\t\tvalue: TValue,\n\t\tmessageOrOptions?: string | AssertOptions\n\t): asserts value is NonNullable<TValue>;\n};\n\nexport const assert: AssertFn = (input: unknown, messageOrOptions?: string | AssertOptions) => {\n\tif (input === false || input == null) {\n\t\tconst message = isString(messageOrOptions) ? messageOrOptions : messageOrOptions?.message;\n\n\t\tthrow new AssertionError(message);\n\t}\n};\n","import type { ExtractUnion, UnionVariant, Writeable, WriteableLevel } from \"./type-utils\";\n\ntype DefineEnumOptions = {\n\tunionVariant?: UnionVariant;\n\twriteableLevel?: WriteableLevel;\n};\n\ntype EnumWithInferredUnionType<TResult, TUnionVariant extends UnionVariant> = TResult & {\n\t$inferUnion: ExtractUnion<TResult, TUnionVariant>;\n};\n\ntype DefaultDefineEnumOptions = { unionVariant: \"keys\"; writeableLevel: \"shallow\" };\n\nexport const defineEnum = <\n\tconst TValue extends object,\n\tTOptions extends DefineEnumOptions = DefaultDefineEnumOptions,\n\tTComputedWriteableLevel extends WriteableLevel = [TOptions[\"writeableLevel\"]] extends [WriteableLevel] ?\n\t\tTOptions[\"writeableLevel\"]\n\t:\tDefaultDefineEnumOptions[\"writeableLevel\"],\n\tTComputedUnionVariant extends UnionVariant = [TOptions[\"unionVariant\"]] extends [UnionVariant] ?\n\t\tTOptions[\"unionVariant\"]\n\t:\tDefaultDefineEnumOptions[\"unionVariant\"],\n>(\n\tvalue: TValue,\n\t_options?: TOptions\n): EnumWithInferredUnionType<Writeable<TValue, TComputedWriteableLevel>, TComputedUnionVariant> => {\n\treturn value as never;\n};\n\ntype DefineEnumDeepOptions = Pick<DefineEnumOptions, \"unionVariant\">;\n\nexport const defineEnumDeep = <\n\tconst TValue extends object,\n\tTOptions extends DefineEnumDeepOptions = DefineEnumDeepOptions,\n>(\n\tvalue: TValue,\n\t_options?: TOptions\n) => {\n\ttype ModifiedOptions = TOptions & { writeableLevel: \"deep\" };\n\n\treturn defineEnum<TValue, ModifiedOptions>(value);\n};\n"],"mappings":";AAOA,MAAa,WAAW,CAACA,iBAA0B,UAAU;AAE7D,MAAa,WAAW,CAACA,iBAA0B,UAAU;AAE7D,MAAa,WAAW,CAACA,iBAA0B,UAAU;AAE7D,MAAa,YAAY,CAACA,iBAA0B,UAAU;AAE9D,MAAa,UAAU,CAASA,UAAsC,MAAM,QAAQ,MAAM;AAE1F,MAAa,aAAa,CAACA,UAAmB,iBAAiB;AAE/D,MAAa,WAAW,CAACA,iBAA0B,UAAU,YAAY,UAAU;AAEnF,MAAa,sBAAsB,CAA0BA,UAAqC;AACjG,QAAO,SAAS,MAAM,KAAK,QAAQ,MAAM;AACzC;AAED,MAAa,qBAAqB,CAACA,UAAmB;AACrD,QAAO,OAAO,UAAU,SAAS,KAAK,MAAM,KAAK;AACjD;;;;;AAMD,MAAa,gBAAgB,CAC5BA,UAC2B;AAC3B,MAAK,mBAAmB,MAAM,CAC7B,QAAO;CAIR,MAAM,cAAe,OAA8B;AACnD,KAAI,uBACH,QAAO;CAIR,MAAM,YAAY,YAAY;AAC9B,MAAK,mBAAmB,UAAU,CACjC,QAAO;AAIR,MAAK,OAAO,OAAO,WAAW,gBAAgB,CAC7C,QAAO;AAIR,KAAI,OAAO,eAAe,MAAM,KAAK,OAAO,UAC3C,QAAO;AAIR,QAAO;AACP;AAED,MAAa,aAAa,CAAgCA,UAAuC;AAChG,eAAc,UAAU;AACxB;AAED,MAAa,kBAAkB,CAC9BA,UAC6B;AAC7B,QAAO,WAAW,MAAM,IAAI,MAAM,YAAY,SAAS;AACvD;AAED,MAAa,SAAS,CAACA,UAAkC,iBAAiB;AAE1E,MAAa,aAAa,CAAYC,QAA4C,OAAO,YAAY;AAErG,MAAa,eAAe,CAACD,UAAoC;AAChE,MAAK,SAAS,MAAM,CACnB,QAAO;AAGR,KAAI;AACH,OAAK,MAAM,MAAM;AACjB,SAAO;CACP,QAAO;AACP,SAAO;CACP;AACD;;;;ACzFD,IAAa,iBAAb,cAAoC,MAAM;CACzC,AAAS,OAAO;CAEhB,YAAYE,SAAkB;EAC7B,MAAM,SAAS;AAEf,QAAM,WAAW,EAAE,OAAO,IAAI,QAAQ,IAAI,QAAQ;CAClD;AACD;AAED,MAAa,gBAAgB,CAASC,UAAkB;AACvD,KAAI,SAAS,KACZ,OAAM,IAAI,gBAAgB,uBAAuB,MAA0B;AAG5E,QAAO;AACP;AAED,MAAa,YAAY,CAACC,UAA8BF,YAAqB;AAC5E,KAAI,oBACH,OAAM,IAAI,eAAe;AAG1B,QAAO;AACP;AAeD,MAAaG,SAAmB,CAACC,OAAgBC,qBAA8C;AAC9F,KAAI,UAAU,SAAS,SAAS,MAAM;EACrC,MAAM,UAAU,SAAS,iBAAiB,GAAG,mBAAmB,kBAAkB;AAElF,QAAM,IAAI,eAAe;CACzB;AACD;;;;AClCD,MAAa,aAAa,CAUzBC,OACAC,aACkG;AAClG,QAAO;AACP;AAID,MAAa,iBAAiB,CAI7BD,OACAC,aACI;AAGJ,QAAO,WAAoC,MAAM;AACjD"}
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.10.2",
4
+ "version": "0.10.4",
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",