Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

enumify-albinodrought

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

enumify-albinodrought

A JavaScript library for enums. To be used by transpiled ES6 (e.g. via Babel).

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

Enumify

A JavaScript library for enums. To be used by transpiled ES6 (e.g. via Babel).

The approach taken by Enumify is heavily inspired by Java enums.

The basics

Install:

npm install enumify

Use:

import {Enum} from 'enumify';

class Color extends Enum {}
Color.initEnum(['RED', 'GREEN', 'BLUE']);

console.log(Color.RED); // Color.RED
console.log(Color.GREEN instanceof Color); // true

new Color();
    // Error: Enum classes can’t be instantiated

Properties of enum classes

Enums get a static property enumValues, which contains an Array with all enum values:

for (const c of Color.enumValues) {
    console.log(c);
}
// Output:
// Color.RED
// Color.GREEN
// Color.BLUE

The inherited tool method enumValueOf() maps names to values:

console.log(Color.enumValueOf('RED') === Color.RED); // true
true

Properties of enum values

Enumify adds two properties to every enum value:

  • name: the name of the enum value.

    > Color.BLUE.name
    'BLUE'
    
  • ordinal: the position of the enum value within the Array enumValues.

    > Color.BLUE.ordinal
    2
    

Adding properties to enum values

initEnum() also accepts an object as its parameter. That enables you to add properties to enum values:

class TicTacToeColor extends Enum {}

// Alas, data properties don’t work, because the enum
// values (TicTacToeColor.X etc.) don’t exist when
// the object literals are evaluated.
TicTacToeColor.initEnum({
    O: {
        get inverse() { return TicTacToeColor.X },
    },
    X: {
        get inverse() { return TicTacToeColor.O },
    },
});

console.log(TicTacToeColor.O.inverse); // TicTacToeColor.X

More information

  • The directory test/ contains examples.

FAQs

Package last updated on 18 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc