openapi-metadata
Version:
Auto-Generate OpenAPI specifications from Typescript decorators
1 lines • 1.7 kB
Source Map (JSON)
{"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;;;;"}