{"version":3,"file":"enum.cjs","sources":["../../../src/loaders/enum.ts"],"sourcesContent":["import { OpenAPIV3 } from 'openapi-types'\nimport { EnumMetadataStorage } from '../metadata/enum.js'\nimport { EnumTypeValue, TypeLoaderFn } from '../types.js'\nimport { getSchemaPath } from '../utils/schema.js'\nimport { getEnumType, getEnumValues } from '../utils/enum.js'\n\nexport const EnumTypeLoader: TypeLoaderFn = async (context, value) => {\n  if (typeof value !== 'object' || value === null) return\n\n  const metadata = EnumMetadataStorage.getMetadata(value)\n\n  if (!metadata) return\n\n  const { name, object, ...rest } = metadata\n\n  const ref = getSchemaPath(name)\n\n  const enumValues = getEnumValues(object as EnumTypeValue)\n  const enumType = getEnumType(enumValues)\n\n  const schema: OpenAPIV3.SchemaObject = {\n    type: enumType,\n    enum: enumValues,\n    ...rest,\n  }\n\n  context.schemas[metadata.name] = schema\n\n  return { $ref: ref }\n}\n"],"names":["EnumMetadataStorage","getSchemaPath","getEnumValues","getEnumType","schema"],"mappings":";;;;;;AAMO,MAAM,cAAA,GAA+B,OAAO,OAAA,EAAS,KAAA,KAAU;AACpE,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,EAAM;AAEjD,EAAA,MAAM,QAAA,GAAWA,yBAAA,CAAoB,WAAA,CAAY,KAAK,CAAA;AAEtD,EAAA,IAAI,CAAC,QAAA,EAAU;AAEf,EAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAG,MAAK,GAAI,QAAA;AAElC,EAAA,MAAM,GAAA,GAAMC,qBAAc,IAAI,CAAA;AAE9B,EAAA,MAAM,UAAA,GAAaC,sBAAc,MAAuB,CAAA;AACxD,EAAA,MAAM,QAAA,GAAWC,oBAAY,UAAU,CAAA;AAEvC,EAAA,MAAMC,QAAA,GAAiC;AAAA,IACrC,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,UAAA;AAAA,IACN,GAAG;AAAA,GACL;AAEA,EAAA,OAAA,CAAQ,OAAA,CAAQ,QAAA,CAAS,IAAI,CAAA,GAAIA,QAAA;AAEjC,EAAA,OAAO,EAAE,MAAM,GAAA,EAAI;AACrB;;;;"}