0.0.6 • Published 2 years 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'getAllEnumKeysreturns all keys of the enum objectgetAllEnumValuesreturns all values of the enum objectgetAllEnumEntriesreturns 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' ] ]