@neumatter/enum
v1.1.1
Published
A module for building Enums.
Downloads
2
Maintainers
Readme
Enum
Table of Contents
Install
npm i @neumatter/enum
Building Enums
import Enum from '@neumatter/enum'
class Color extends Enum {
static Blue = new Color()
static Green = new Color()
static Red = new Color()
}
// Builds the objects and freezes all objects within Enum to prevent changes.
Color.build()
Color.Blue.is('Blue') // returns true
Color.Blue.is(0) // returns true
Color.Blue.is(Color.Blue) // returns true
Color.get('Blue') // returns { key: 'Blue', value: 0 }
Color.get(0) // returns { key: 'Blue', value: 0 }
Color.getKey('Blue') // returns 'Blue'
Color.getKey(0) // returns 'Blue'
Color.getValue('Blue') // returns 0
Color.getValue(0) // returns 0
Color.Blue.toString() // returns '0'
Color.Blue.toJSON() // returns 0
import Enum from '@neumatter/enum'
// Useful if needing to deserialize Enum
class TmpColor extends Enum {}
// No need to call Enum.build when using Enum.initialize
const Color = TmpColor.initialize({
Blue: 0,
Green: 1,
Red: 2
})
Color.Blue.is('Blue') // returns true
Color.Blue.is(0) // returns true
Color.Blue.is(Color.Blue) // returns true
Color.get('Blue') // returns { key: 'Blue', value: 0 }
Color.get(0) // returns { key: 'Blue', value: 0 }
Color.getKey('Blue') // returns 'Blue'
Color.getKey(0) // returns 'Blue'
Color.getValue('Blue') // returns 0
Color.getValue(0) // returns 0
Color.Blue.toString() // returns '0'
Color.Blue.toJSON() // returns 0