js-enumify Build Status Coverage Status
js-enumify introduces Enum Type to JavaScript. Works well on node and browser environments.
npm install js-enumify
- Creating enum
import Enum from 'js-enumify'; // or const Enum = require('js-enumify'); class SomeEnum extends Enum { static get FOO() {return 'foo';} static get BAR() {return 320;} static get BAZ() {return false;} static get ARR() {return ['a', 2, undefined];} static get FUN() {return (a) => a + 1;} static get OBJ() {return {a:1, b:3};} }
- Getting enum value
SomeEnum.FOO; // 'foo' SomeEnum.take(SomeEnum.FOO); // Foo { key: 'FOO', value: 'foo' }
- Getting all enums
SomeEnum.all() // [Foo { key: 'FOO', value: 'foo' }, Foo { key: 'BAR', value: 320 }, Foo { key: 'BAZ', value: false }]
- Getting all enum keys
SomeEnum.keys() // ['FOO', 'BAR', 'BAZ']
- Getting all enum values
SomeEnum.values() // ['foo', 320, false]
- Checking if current enum is equal to given one
const foo = SomeEnum.take(SomeEnum.BAR); foo.is(SomeEnum.BAR) // true foo.is(320) // true foo.is(SomeEnum.BAR) // false
- Checking if current enum value is equal to one of given ones
const foo = SomeEnum.take(SomeEnum.BAR); foo.oneOf([SomeEnum.BAR, undefined, 'foo']); // true foo.oneOf([SomeEnum.BAZ, false, 'foo']); // false
- Parsing enum value to string
const foo = SomeEnum.take(SomeEnum.BAR); foo.toString(); // '320' String(foo); // '320' foo + ''; // '320'
npm test
See Changelog
This project is licensed under the MIT License - see the LICENSE.md file for details