Skip to content

JacobLey/enum-to-array

Repository files navigation

Enum to Array

Convert Typescript Enums to a strongly typed array.

npm package Github CI License Quality

Contents

Introduction

Enum to array is a light module for converting a typescript enum to an array of keys or values.

Thanks to reverse mappings this is a little bit trickier than Object.keys or Object.values

Install

npm i enum-to-array

Example

import { enumToValues } from 'enum-to-values';

enum MyEnum {
    FOO = 'BAR',
    ABC = 123,
}
console.log(enumToArray(MyEnum));
// [{ key: 'FOO', value: 'BAR' }, { key: 'ABC', value: 123 }]

Usage

Enum To Array is an ESM module. That means it must be imported. To load from a CJS module, use dynamic import const { enumToArray } = await import('enum-to-array');.

Due to the nature of const enums, those are not usable with this library as there is nothing to pass at runtime.

This can be partially resolved by using preserveConstEnums.

API

Enum To Array exports three functions:

enumToArray

Lists key-value pairs of enum, in order that they occur.

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' },
// ]

enumToValues

Lists values of enum, in order that they occur.

import { enumToValues } from 'enum-to-array';

console.log(enumToValues(MyEnum));
// ['BAR', 123, 'BAR']

Optionally de-dupe values with { unique: true } provided as a second parameter.

console.log(enumToValues(MyEnum, { unique: true }));
// ['BAR', 123]

enumToKeys

Lists keys of enum, in order that they occur.

import { enumToKeys } from 'enum-to-array';

console.log(enumToKeys(MyEnum));
// ['FOO', 'ABC', 'DUP']

About

Convert Typescript Enums to a strongly typed array.

Resources

License

Stars

Watchers

Forks

Packages

No packages published