{"version":3,"sources":["../../source/constructor/constructor.ts"],"names":["extractObjectName","value","matches","getObjectConstructorName","constructorName","getPrimitiveConstructorName","name","getConstructorName"],"mappings":"AAAA,SAASA,EAAkBC,EAAuB,CAEjD,IAAMC,EAAUD,EAAM,SAAS,EAAE,MAAM,4BAA4B,EAEnE,GAAIC,GAAWA,EAAQ,CAAC,EACvB,OAAOA,EAAQ,CAAC,EAEhB,MAAM,IAAI,MAAM,sBAAsB,CAExC,CAEA,SAASC,EAAyBF,EAA8B,CAC/D,GAAIA,EAAO,CACV,IAAMG,EAAkBH,EAAM,YAAY,KAE1C,OAAOG,IAAoB,SAAWJ,EAAkBC,CAAK,EAAIG,MAEjE,OAAO,MAET,CAEA,SAASC,EAA4BJ,EAAwB,CAC5D,IAAMK,EAAO,OAAOL,EAEpB,OAAOK,EAAK,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,CACnD,CAEO,SAASC,EAAmBN,EAAwB,CAE1D,OAAQ,OAAOA,EAAO,CAErB,IAAK,WAAY,OAAOA,EAAM,KAC9B,IAAK,SAAU,OAAOE,EAAyBF,CAAK,EACpD,IAAK,YAAa,MAAO,YACzB,QAAS,OAAOI,EAA4BJ,CAAK,CAElD,CACD","sourcesContent":["function extractObjectName(value: object): string {\n\t// eslint-disable-next-line unicorn/better-regex\n\tconst matches = value.toString().match(/(?<=\\[object )(\\w+)(?!=\\])/);\n\n\tif (matches && matches[0]) {\n\t\treturn matches[0];\n\t} else {\n\t\tthrow new Error(\"RegExp did not work.\");\n\t}\n}\n\nfunction getObjectConstructorName(value: object | null): string {\n\tif (value) {\n\t\tconst constructorName = value.constructor.name;\n\n\t\treturn constructorName === \"Object\" ? extractObjectName(value) : constructorName;\n\t} else {\n\t\treturn \"null\";\n\t}\n}\n\nfunction getPrimitiveConstructorName(value: unknown): string {\n\tconst name = typeof value;\n\n\treturn name.charAt(0).toUpperCase() + name.slice(1);\n}\n\nexport function getConstructorName(value: unknown): string {\n\t/* prettier-ignore */\n\tswitch (typeof value) {\n\t\t/* eslint-disable unicorn/switch-case-braces */\n\t\tcase \"function\": return value.name;\n\t\tcase \"object\": return getObjectConstructorName(value);\n\t\tcase \"undefined\": return \"undefined\";\n\t\tdefault: return getPrimitiveConstructorName(value);\n\t\t/* eslint-enable unicorn/switch-case-braces */\n\t}\n}\n"]}