Skip to content

pgalias/js-enumify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-enumify Build Status Coverage Status

js-enumify introduces Enum Type to JavaScript. Works well on node and browser environments.

Installing

  • npm install js-enumify

Usage

  • 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'

Testing

  • npm test

Changelog

See Changelog

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

Enum lib

Resources

License

Stars

Watchers

Forks

Packages

No packages published