import { GiraphQLEnumValueConfig, SchemaTypes } from '../types'; import { BaseEnum, EnumValues } from '..'; export function normalizeEnumValues( values: EnumValues, ): Record> { const result: Record> = {}; if (Array.isArray(values)) { values.forEach((key) => { result[String(key)] = { giraphqlOptions: {}, }; }); } else { Object.entries(values).forEach(([key, value]) => { if (value && typeof value === 'object') { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment result[key] = { ...value, giraphqlOptions: value as GiraphQLSchemaTypes.EnumValueConfig, }; } else if (typeof value === 'string') { result[value] = { giraphqlOptions: {}, }; } }); } return result; } export function valuesFromEnum( Enum: BaseEnum, ): Record> { const result: Record> = {}; Object.keys(Enum) .filter((key) => typeof Enum[Enum[key]] !== 'number') .forEach((key) => { result[key] = { value: Enum[key], giraphqlOptions: {}, }; }); return result; }