Giter VIP home page Giter VIP logo

enum-to-array's Introduction

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

enum-to-array's People

Contributors

jacobley avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.