0.0.6 • Published 10 months ago
enum-for v0.0.6
enum-for
Tiny library to get all values/keys of a Typescript enum.
Install
- With
yarn
:yarn add enum-for
- With
npm
:npm install --save enum-for
API reference
import {getAllEnumKeys, getAllEnumValues, getAllEnumEntries} from 'enum-for'
getAllEnumKeys
returns all keys of the enum objectgetAllEnumValues
returns all values of the enum objectgetAllEnumEntries
returns all entries (key, value) of the enum object
Source code
The source code of the project is very simple (3 LOCs). You can copy and use it directly in your project.
However, I recommend installing this package instead, because it is well tested.
exports.getAllEnumKeys = enumType => Object.keys(enumType).filter(key => isNaN(Number(key)))
exports.getAllEnumValues = enumType => exports.getAllEnumKeys(enumType).map(key => enumType[key])
exports.getAllEnumEntries = enumType => exports.getAllEnumKeys(enumType).map(key => [key, enumType[key]])
Example
import {getAllEnumKeys, getAllEnumValues, getAllEnumEntries} from 'enum-for'
enum MyEnum {
foo = 0,
bar = '1',
'1foo' = 2,
'2foo' = '3'
}
console.log(getAllEnumKeys(MyEnum))
console.log(getAllEnumValues(MyEnum))
console.log(getAllEnumEntries(MyEnum))
console.log(Object.keys(MyEnum))
console.log(Object.values(MyEnum))
console.log(Object.entries(MyEnum))
This script will print. Note that the results returned from Object.keys
, Object.values
are incorrect.
[ 'foo', 'bar', '1foo', '2foo' ]
[ 0, '1', 2, '3' ]
[ [ 'foo', 0 ], [ 'bar', '1' ], [ '1foo', 2 ], [ '2foo', '3' ] ]
[ '0', '2', 'foo', 'bar', '1foo', '2foo' ]
[ 'foo', '1foo', 0, '1', 2, '3' ]
[ [ '0', 'foo' ], [ '2', '1foo' ], [ 'foo', 0 ], [ 'bar', '1' ], [ '1foo', 2 ], [ '2foo', '3' ] ]