3.0.0 • Published 9 years ago

enumobj v3.0.0

Weekly downloads
7
License
MIT
Repository
github
Last release
9 years ago

enumobj

Build Status Code Climate Code Coverage npm Version JS Standard

Define enum objects

Installation

npm install enumobj --save

Usage

Basic usage

#!/usr/bin/env node

'use strict'

const enumobj = require('enumobj')

let levels = enumobj({
  TRACE: 0,
  DEBUG: 1,
  INFO: 2,
  ERROR: 3,
  FATAL: 4
})

console.log(levels) // -> {TRACE: 0, DEBUG: 1, INFO: 2, ERROR: 3, FATAL: 4}

function doSomething (level) {
  switch (level) {
    case levels.TRACE:
      /* ... */
      break;
    default:
      break;
  }
}

//--------------
// Get enum size
//--------------
console.log(levels.size()) // -> 5

//--------------
// Get a enum value
//--------------
console.log(levels.INFO) // -> 2
console.log(levels.get("INFO")) // -> 2
console.log(levels.get("_UNKNOWN_")) // -> undefined

//--------------
// Check key contained
//--------------
console.log(levels.has("ERROR")) // -> true
console.log(levels.has("_UNKNOWN_")) // -> false

//--------------
// Get key for value
//--------------
console.log(levels.has(0)) // -> "TRACE"
console.log(levels.has(100)) // -> undefined

Add Descriptions

#!/usr/bin/env node
'use strict'

const enumobj = require('enumobj')

let roles = enumobj({
  ADMIN: { $val: 1, $desc: "Nothing is off limits." },
  STAFF: { $val: 2, $desc: "Can view admin area, but not edit." },
  CUSTOMER: { $val: 3, $desc: "Can not access admin area." }
})

console.log(roles) // -> {ADMIN: 1, STAFF: 2, CUSTOMER:3}

console.log(roles.get('ADMIN')) // -> 1
console.log(roles.desc('ADMIN')) // -> "Nothing is off limits."

License

This software is released under the MIT License.

3.0.0

9 years ago

2.1.0

10 years ago

2.0.4

10 years ago

2.0.3

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago