{"version":3,"sources":["../../source/non-primitive/non-primitive.ts"],"names":["z","NON_PRIMITIVE_NAMES","NON_PRIMITIVE_NAME_SCHEMA","FUNCTION_SCHEMA","OBJECT_SCHEMA","NON_PRIMITIVE_SCHEMAS","validateNonPrimitiveName","name","isNonPrimitiveName","getNonPrimitiveName","value","typeName","validateNonPrimitive","isNonPrimitive"],"mappings":"AACA,OAAS,KAAAA,MAAS,MAGX,IAAMC,EAAsB,CAClC,WACA,QACD,EAEaC,EAA4BF,EAAE,KAAKC,CAAmB,EAUtDE,EAAkBH,EAAE,SAAS,EAC7BI,EAAgBJ,EAAE,OAAO,CAAC,CAAC,EAE3BK,EAAwB,CACpC,SAAUF,EACV,OAAQC,CACT,EAEO,SAASE,EAAyBC,EAAiD,CACzFL,EAA0B,MAAMK,CAAI,CACrC,CAEO,SAASC,EAAmBD,EAAyC,CAC3E,OAAOL,EAA0B,UAAUK,CAAI,EAAE,OAClD,CAEO,SAASE,EAAgDC,EAAgBC,EAAgC,CAC/G,IAAMJ,EAAOI,GAAY,OAAOD,EAEhC,OAAAJ,EAAyBC,CAAI,EAEtBA,CACR,CAEO,SAASK,EACfF,EACAC,EACoC,CACpCN,EAAsBI,EAAoBC,EAAOC,CAAQ,CAAC,EAAE,MAAMD,CAAK,CACxE,CAEO,SAASG,EAA2CH,EAAgBC,EAAwC,CAClH,OAAON,EAAsBI,EAAoBC,EAAOC,CAAQ,CAAC,EAAE,UAAUD,CAAK,EAAE,OACrF","sourcesContent":["/* eslint-disable unicorn/prefer-number-properties, unicorn/no-null */\nimport { z } from \"zod\";\n\n/* prettier-ignore */\nexport const NON_PRIMITIVE_NAMES = [\n\t\"function\",\n\t\"object\",\n] as const;\n\nexport const NON_PRIMITIVE_NAME_SCHEMA = z.enum(NON_PRIMITIVE_NAMES);\n\nexport interface NonPrimitives {\n\tfunction: (..._args: unknown[]) => unknown;\n\tobject: object;\n}\n\nexport type NonPrimitiveName = keyof NonPrimitives;\nexport type NonPrimitive = NonPrimitives[NonPrimitiveName];\n\nexport const FUNCTION_SCHEMA = z.function();\nexport const OBJECT_SCHEMA = z.object({});\n\nexport const NON_PRIMITIVE_SCHEMAS = {\n\tfunction: FUNCTION_SCHEMA,\n\tobject: OBJECT_SCHEMA,\n} as const;\n\nexport function validateNonPrimitiveName(name: unknown): asserts name is NonPrimitiveName {\n\tNON_PRIMITIVE_NAME_SCHEMA.parse(name);\n}\n\nexport function isNonPrimitiveName(name: unknown): name is NonPrimitiveName {\n\treturn NON_PRIMITIVE_NAME_SCHEMA.safeParse(name).success;\n}\n\nexport function getNonPrimitiveName<T extends NonPrimitiveName>(value: unknown, typeName?: T): NonPrimitiveName {\n\tconst name = typeName ?? typeof value;\n\n\tvalidateNonPrimitiveName(name);\n\n\treturn name;\n}\n\nexport function validateNonPrimitive<T extends NonPrimitiveName>(\n\tvalue: unknown,\n\ttypeName: T,\n): asserts value is NonPrimitives[T] {\n\tNON_PRIMITIVE_SCHEMAS[getNonPrimitiveName(value, typeName)].parse(value);\n}\n\nexport function isNonPrimitive<T extends NonPrimitiveName>(value: unknown, typeName: T): value is NonPrimitives[T] {\n\treturn NON_PRIMITIVE_SCHEMAS[getNonPrimitiveName(value, typeName)].safeParse(value).success;\n}\n"]}