@5x/enumjs

1.0.6 • Public • Published

enumjs

enum for javascript, inspired from https://obaranovskyi.medium.com/using-enums-in-pure-javascript-9c03853c1ab7

Installation

npm install --save @5x/enumjs

Usage

Define enum constants:

import Enum from '@5x/enumjs';

const roles = new Enum();
roles.defineEnumProperty('ADMIN', 'admin');
roles.defineEnumProperty('USER', 'user');

When you use roles.ADMIN, it will return admin.

You can futher define more proerties in every enum constant:

roles.defineEnumProperty(
  'ADMIN',
  'admin',
  {
    permissons: ['manage_users', 'self_access']
  }
);
roles.defineEnumProperty(
  'USER',
  'user',
  {
    permissons: ['self_access']
  }
);

Then you can call roles.getProp(roles.ADMIN) to get properties in roles.ADMIN:

roles.getProp(roles.ADMIN)
// return
// {
//   permissons: ['manage_users', 'self_access'],
//   value: 'admin',
// }

You can also use roles.getProps() to get array of all properties:

roles.props()
// return
// [
//   {
//     permissons: ['manage_users', 'self_access'],
//     value: 'admin',
//   },
//   {
//     permissons: ['self_access'],
//     value: 'user',
//   },
// ];

Other useful method:

roles.keys()
// reutrn ['ADMIN, 'USER']

roles.values()
// ['admin', 'user']

Package Sidebar

Install

npm i @5x/enumjs

Weekly Downloads

4

Version

1.0.6

License

MIT

Unpacked Size

9.88 kB

Total Files

6

Last publish

Collaborators

  • jack482653