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({
...
__error: MyOwnError
});
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) {
var status = new HTTPCodeEnum(data.code);
console.log(status.getMessage());
}
function indexController() {
try {
var request = $.ajax(...).done(ajaxCallback);
} catch(e) {
if (e instanceof HTTPCodeEnum.__error) {
console.log('Catched non existing HTTP code!', e.message);
}
}
}