enum-to-array
v2.0.1
Published
Convert Typescript Enums to a strongly typed array.
Readme
Contents
Install
npm i enum-to-arrayExample
import { enumToArray } from 'enum-to-array';
enum MyEnum {
FOO = 'BAR',
ABC = 123,
DUP = FOO,
}
console.log(enumToArray(MyEnum));
// [
// { key: 'FOO', value: 'BAR' },
// { key: 'ABC', value: 123 },
// { key: 'DUP', value: 'BAR' },
// ]Usage
enum-to-array is an ESM module. It must be imported. To load from a CJS module, use dynamic import: const { enumToArray } = await import('enum-to-array');.
const enum is not supported because there is no runtime object to pass. This can be partially resolved by enabling preserveConstEnums in TypeScript config.
TypeScript's reverse mappings for numeric enums add extra entries to the enum object (e.g. { FOO: 0, 0: 'FOO' }). All three functions filter these out automatically, returning only the forward key→value pairs.
API
enumToArray(enumDict)
Returns key-value pairs for all enum members in declaration order.
Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| enumDict | Record<string, unknown> | — | Required. The enum object to convert. |
Returns { key: string; value: EnumValue }[] — array of { key, value } pairs, strongly typed to the enum's key and value union types. Numeric reverse-mapping entries are excluded.
console.log(enumToArray(MyEnum));
// [{ key: 'FOO', value: 'BAR' }, { key: 'ABC', value: 123 }, { key: 'DUP', value: 'BAR' }]enumToValues(enumDict, options?)
Returns only the values of the enum in declaration order. TypeScript narrows the return type to the enum's value union type.
Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| enumDict | Record<string, unknown> | — | Required. The enum object to convert. |
| options | object | {} | Optional. |
| options.unique | boolean | false | When true, duplicate values are removed; the first occurrence is kept. |
Returns EnumValue[] — array of enum values, typed to the enum's value union type.
console.log(enumToValues(MyEnum));
// ['BAR', 123, 'BAR']
console.log(enumToValues(MyEnum, { unique: true }));
// ['BAR', 123]enumToKeys(enumDict)
Returns only the keys of the enum in declaration order.
Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| enumDict | Record<string, unknown> | — | Required. The enum object to convert. |
Returns (keyof Enum)[] — array of enum key strings, typed to the enum's key union type.
console.log(enumToKeys(MyEnum));
// ['FOO', 'ABC', 'DUP']