enum-js

0.1.4 • Public • Published

Enum.js

Simple Enumerable object in javascript.

Usage

Creating custom Enum

Enum.extend function expect two parameters:

  • first is a static properties aka Enum constants,
  • second is a custom prototype methods.
 
var HTTPCodeEnum = Enum.extend({
    CONTINUE:         "100",
    OK:               "200",
    MULTIPLE_CHOISES: "300",
    BAD_REQUEST:      "400",
    INTERNAL_ERROR:   "500"
});
 

You can also pass in first object:

  • static functions, that will can be accessed like MyEnum.myFunction()
  • static objects,
  • static values, needed for internal usage. To prevent parsing them as Enum constant, add double underscore as prefix, like: __myInternalValue

Enum throws error in some usual cases. So there is an ability to use custom Errors for your custom Enums, to catch them upper and check with instanceOf function:

 
var HTTPCodeEnum = Enum.extend({
    ... // constants
 
    __error: MyOwnError // reference to your Error constructor
});
 

If __error does not present in first parameter object, then Enum will use its own EnumError constructor. Anyway, u can always get the reference to the Error function via Enum.__error

Simple usage
 
function ajaxCallback(data) {
    if (data.code == HTTPCodeEnum.OK) {
        // ...
    }
}
 
Enum usage:
 
function ajaxCallback(data) {
 
    // Throws a EnumError if catch non existing code
    var status = new HTTPCodeEnum(data.code);
 
    // Returns mapped message
    // getMessage must be implemented in HTTPCodeEnum.prototype
    console.log(status.getMessage());
}
 
// Exceptions handling
 
function indexController() {
    try {
        var request = $.ajax(...).done(ajaxCallback);
    } catch(e) {
        if (instanceof HTTPCodeEnum.__error) {
            console.log('Catched non existing HTTP code!', e.message);
        }
    }
}
 

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.4
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.4
    2

Package Sidebar

Install

npm i enum-js

Weekly Downloads

1

Version

0.1.4

License

MIT

Last publish

Collaborators

  • gobwas