vanilla-enum

A Vanilla JavaScript library to work with Enums

Usage no npm install needed!

<script type="module">
  import vanillaEnum from 'https://cdn.skypack.dev/vanilla-enum';
</script>

README



Instalation

npm install --save vanilla-enum
# or with yarn
yarn add vanilla-enum

Basic usage

Enum(object[, options])

import Enum from 'vanilla-enum'

const GENDER = new Enum({
  Male: {
    value: 1,
    description: "Male 🙋‍♂️"
  },
  Female: {
    value: 2,
    description: "Female 🙋‍♀️"
  }
}, {
  ignoreCase: false // default
})

GENDER.Male // 1
GENDER.getDescription(2) // "Female 🙋‍♀️"
GENDER.Male.toString() // "Male 🙋‍♂️"
GENDER.Female.is('Female 🙋‍♀️') // true
GENDER.Female.is('FEMALE 🙋‍♀️') // false
GENDER.Female.is('FEMALE 🙋‍♀️', { ignoreCase: true }) // true

Options

name type default description
ignoreCase boolean false Ignore case when using the is function

Custom properties

All properties added at the enum item object have getters

import Enum from 'vanilla-enum'

const GENDER = new Enum({
  Male: {
    value: 1,
    description: "🙋‍♂️",
    isSelected: true
  },
  Female: {
    value: 2,
    description: "🙋‍♀️"
  }
})

GENDER.getIsSelected(GENDER.Male) // true
GENDER.getIsSelected(GENDER.Female) // undefined

License

Vanilla Enum uses the MIT license.