Enumer
A JavaScript library for enums. To be used by transpiled ES6 (e.g. via Babel).
Enumer is a based on Enumify by Axel Rauschmayer (http://www.2ality.com/2016/01/enumify.html)
The basics
Install:
npm install enumer
Use:
import {Enum} from 'enumer';
class Color extends Enum {}
Color.initEnum(['RED', 'GREEN', 'BLUE']);
console.log(Color.RED);
console.log(Color.GREEN instanceof Color);
new Color();
Properties of enum classes
Enums get a static property enumValues
, which contains an Array with all enum values:
for (const c of Color.enumValues) {
console.log(c);
}
The inherited tool method enumValueOf()
maps names to values:
console.log(Color.enumValueOf('RED') === Color.RED);
true
Properties of enum values
Enumer adds two properties to every enum value:
Adding properties to enum values
initEnum()
also accepts an object as its parameter. That enables you to add properties to enum values:
class TicTacToeColor extends Enum {}
TicTacToeColor.initEnum({
O: {
get inverse() { return TicTacToeColor.X },
},
X: {
get inverse() { return TicTacToeColor.O },
},
});
console.log(TicTacToeColor.O.inverse);
More information
- The directory
test/
contains examples.