UNPKG

@augment-vir/common

Version:

A collection of augments, helpers types, functions, and classes for any JavaScript environment.

12 lines (11 loc) 1.04 kB
import { type EnumBaseType, type MaybePromise } from '@augment-vir/core'; /** * Creates an object that maps all values of an enum to the provided `Values` type. * * @category Object * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type EnumMap<Enum extends EnumBaseType, Value> = Required<Enum>[keyof Enum] extends PropertyKey ? Record<Required<Enum>[keyof Enum], Value> : 'ERROR: invalid enum'; export declare function mapEnumToObject<const Enum extends EnumBaseType, const Value>(enumInput: Enum, callback: (enumValue: Required<Enum>[keyof Enum]) => Promise<Value>): Promise<EnumMap<Enum, Value>>; export declare function mapEnumToObject<const Enum extends EnumBaseType, const Value>(enumInput: Enum, callback: (enumValue: Required<Enum>[keyof Enum], wholeEnum: Enum) => Value): Value extends Promise<any> ? Promise<any> extends Value ? Promise<EnumMap<Enum, Awaited<Value>>> : MaybePromise<EnumMap<Enum, Awaited<Value>>> : EnumMap<Enum, Value>;