import type { BaseEnum, EnumValues, PothosEnumValueConfig, SchemaTypes } from '../types'; export function normalizeEnumValues( values: EnumValues, ): Record> { const result: Record> = {}; if (Array.isArray(values)) { for (const key of values) { result[String(key)] = { pothosOptions: {}, }; } } else { for (const [key, value] of Object.entries(values)) { if (value && typeof value === 'object') { result[key] = { ...value, pothosOptions: value as PothosSchemaTypes.EnumValueConfig, }; } else if (typeof value === 'string') { result[value] = { pothosOptions: {}, }; } } } return result; } export function valuesFromEnum( Enum: BaseEnum, values?: Record, 'value'>>, ): Record> { const result: Record> = {}; for (const key of Object.keys(Enum).filter((key) => typeof Enum[Enum[key]] !== 'number')) { result[key] = { value: Enum[key], pothosOptions: {}, ...values?.[key], }; } return result; }