{"version":3,"sources":["../../source/keys/keys.ts","../../source/schema/schema.ts","../../source/schema/empty/empty.ts"],"names":["z","isNonPrimitive","validateNonPrimitive","EMPTY_OBJECT_SCHEMA","validateObject","value","OBJECT_KEY_SCHEMA","RENAMER_SCHEMA","renameObjectKeys","object","renamer","handleRename","key","index"],"mappings":"AAAA,OAAS,KAAAA,MAAS,MCAlB,OAAS,kBAAAC,EAAgB,wBAAAC,MAA4B,8CCCrD,OAAS,KAAAF,MAAS,MAEX,IAAMG,EAAsBH,EAAE,OAAOA,EAAE,UAAU,CAAC,EDDlD,SAASI,EAAeC,EAAyC,CACvEH,EAAqBG,EAAO,QAAQ,CACrC,CDAO,IAAMC,EAAoBN,EAAE,OAAO,EAAE,GAAGA,EAAE,OAAO,CAAC,EAAE,GAAGA,EAAE,OAAO,CAAC,EAElEO,EAAiBP,EAAE,SAAS,EAAE,KAAKM,EAAmBN,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,QAAQM,CAAiB,EAIrG,SAASE,EACfC,EACAC,EACwB,CACxBN,EAAeK,CAAM,EACrBF,EAAe,MAAMG,CAAO,EAE5B,SAASC,EAAaC,EAAaC,EAAe,CACjD,OAAOP,EAAkB,MAAMI,EAAQE,EAAKC,CAAK,CAAC,CACnD,CAEA,OAAO,OAAO,YACZ,OAAO,QAAQJ,CAAM,EAA6B,IAAI,CAAC,CAACG,EAAKP,CAAK,EAAGQ,IAAU,CAC/EF,EAAaC,EAAKC,CAAK,EACvBR,CACD,CAAC,CACF,CACD","sourcesContent":["import { z } from \"zod\";\n\nimport { validateObject } from \"../schema/schema.ts\";\n\nexport const OBJECT_KEY_SCHEMA = z.number().or(z.string()).or(z.symbol());\n\nconst RENAMER_SCHEMA = z.function().args(OBJECT_KEY_SCHEMA, z.number().optional()).returns(OBJECT_KEY_SCHEMA);\n\nexport type ObjectKey = number | string | symbol;\n\nexport function renameObjectKeys<OldKey extends ObjectKey, Value, NewKey extends ObjectKey>(\n\tobject: Record<OldKey, Value>,\n\trenamer: (key: OldKey, index: number) => NewKey,\n): Record<NewKey, Value> {\n\tvalidateObject(object);\n\tRENAMER_SCHEMA.parse(renamer);\n\n\tfunction handleRename(key: OldKey, index: number) {\n\t\treturn OBJECT_KEY_SCHEMA.parse(renamer(key, index));\n\t}\n\n\treturn Object.fromEntries(\n\t\t(Object.entries(object) as Array<[OldKey, Value]>).map(([key, value], index) => [\n\t\t\thandleRename(key, index),\n\t\t\tvalue,\n\t\t]),\n\t) as Record<NewKey, Value>;\n}\n","import { isNonPrimitive, validateNonPrimitive } from \"@terminal-nerds/snippets-type/non-primitive\";\n\nexport function validateObject(value: unknown): asserts value is object {\n\tvalidateNonPrimitive(value, \"object\");\n}\n\nexport function isObject(value: unknown): value is object {\n\treturn isNonPrimitive(value, \"object\");\n}\n\nexport * from \"./empty/empty.ts\";\n","import type { EmptyObject } from \"type-fest\";\nimport { z } from \"zod\";\n\nexport const EMPTY_OBJECT_SCHEMA = z.record(z.undefined());\n\nexport type { EmptyObject } from \"type-fest\";\n\nexport function validateEmptyObject(value: object): asserts value is EmptyObject {\n\tEMPTY_OBJECT_SCHEMA.parse(value);\n}\n\nexport function isObjectEmpty(value: object): value is EmptyObject {\n\treturn EMPTY_OBJECT_SCHEMA.safeParse(value).success;\n}\n"]}