@jslibrary/enumeration

0.0.5 • Public • Published

Enumeration

An useful concept of Enumeration in JavaScript!


🌟 About the Project

This project was created in order to provide an useful and helpful JavaSciprt Enumeration for developers.

You can use it for comparisons in code and also are able to generate an array that can be easily binded in a select component, for example.

🧰 Getting Started

⚙️ Installation

Install enumeration with npm

  npm install @jslibrary/enumeration

👀 Usage

First of all, you have to create your enumerations. There are two suggested ways for doing it:

1 - Extending Enumeration class.

or

2 - Using a new instance of Enumeration.

1 - Extending Enumeration class ...

import { Enumeration } from '@jslibrary/enumeration'

Class Gender extends Enumeration {
  constructor() {
    super()

    this.add('M', 'Male', 'MALE')
    this.add('F', 'Female', 'FEMALE')
  }
}

export default new Gender()

2 - Using a new Instance of Enumeration ...

import { Enumeration } from '@jslibrary/enumeration'

const enumeration = new Enumeration()

enumeration.add('M', 'Male', 'MALE')
enumeration.add('F', 'Female', 'FEMALE')

export default enumeration

After this, you are ready to use your own enumeration in your code

Using my own Enumeration ...

import Gender from './Gender'

if (person.gender === Gender.Female) {
  ...
}

If you need a JSON to populate a select with this options, you can call .toJSON() method. The result is something like this:

[
  {value: 'M', variable: 'Male', text: 'MALE'},
  {value: 'F', variable: 'Female', text: 'FEMALE'}
]

Binding this JOSN on a select component the result is this:

<v-select
  label="GENDER"
  v-model="person.gender"
  :items="Gender.toJSON()"
>
</v-select>



It's ok if you need to use another type of value like number, for example. This class is flexible!

...
  this.add(1, 'Male', 'MALE')
  this.add(2, 'Female', 'FEMALE')
...

/@jslibrary/enumeration/

    Package Sidebar

    Install

    npm i @jslibrary/enumeration

    Weekly Downloads

    1

    Version

    0.0.5

    License

    ISC

    Unpacked Size

    15.1 kB

    Total Files

    15

    Last publish

    Collaborators

    • carlosalexandre1985