enum-to-array
TypeScript icon, indicating that this package has built-in type declarations

1.1.10 • Public • Published

enum-to-array

Convert Typescript Enums to a strongly typed array.

npm package License

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 { enumToArray } from 'enum-to-array';

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']

Readme

Keywords

Package Sidebar

Install

npm i enum-to-array

Weekly Downloads

8

Version

1.1.10

License

MIT

Unpacked Size

7.64 kB

Total Files

5

Last publish

Collaborators

  • jacobley