{"version":3,"file":"enum.mjs","sources":["../../../src/utils/enum.ts"],"sourcesContent":["import type { EnumTypeValue } from '../types.js'\n\n/**\n * Returns primitive type from values of an enum.\n */\nexport function getEnumType(values: (string | number)[]): 'string' | 'number' {\n  return values.some((v) => typeof v === 'string') ? 'string' : 'number'\n}\n\n/**\n * Returns values of an enum.\n */\nexport function getEnumValues(enumType: EnumTypeValue) {\n  if (Array.isArray(enumType)) {\n    return enumType\n  }\n\n  // Enums with numeric values\n  //   enum Size {\n  //     SMALL = 1,\n  //     BIG = 2\n  //   }\n  // are transpiled to include a reverse mapping\n  //   const Size = {\n  //     \"1\": \"SMALL\",\n  //     \"2\": \"BIG\",\n  //     \"SMALL\": 1,\n  //     \"BIG\": 2,\n  //   }\n  const numericValues = Object.values(enumType)\n    .filter((value) => typeof value === 'number')\n    .map((value: any) => value.toString())\n\n  return Object.keys(enumType)\n    .filter((key) => !numericValues.includes(key))\n    .map((key) => enumType[key as any]) as (string | number)[]\n}\n"],"names":[],"mappings":"AAKO,SAAS,YAAY,MAAA,EAAkD;AAC5E,EAAA,OAAO,MAAA,CAAO,KAAK,CAAC,CAAA,KAAM,OAAO,CAAA,KAAM,QAAQ,IAAI,QAAA,GAAW,QAAA;AAChE;AAKO,SAAS,cAAc,QAAA,EAAyB;AACrD,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC3B,IAAA,OAAO,QAAA;AAAA,EACT;AAcA,EAAA,MAAM,gBAAgB,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,CACzC,OAAO,CAAC,KAAA,KAAU,OAAO,KAAA,KAAU,QAAQ,CAAA,CAC3C,GAAA,CAAI,CAAC,KAAA,KAAe,KAAA,CAAM,UAAU,CAAA;AAEvC,EAAA,OAAO,OAAO,IAAA,CAAK,QAAQ,EACxB,MAAA,CAAO,CAAC,QAAQ,CAAC,aAAA,CAAc,QAAA,CAAS,GAAG,CAAC,CAAA,CAC5C,GAAA,CAAI,CAAC,GAAA,KAAQ,QAAA,CAAS,GAAU,CAAC,CAAA;AACtC;;;;"}