3.0.0 • Published 8 years ago

enumobj v3.0.0

Weekly downloads
7
License
MIT
Repository
github
Last release
8 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

8 years ago

2.1.0

8 years ago

2.0.4

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago