Enumeration Prototype
JavaScript's Enumeration implementation
Enumeration is a two-way bound collection of keys related to values and values
to keys.
Table of Contents
Installation
npm
npm install @yurkimus/enumeration
urls
"@yurkimus/enumeration": "npm:@yurkimus/enumeration"
"@yurkimus/enumeration": "github:yurkimus/enumeration"
"@yurkimus/enumeration": "https://raw.githubusercontent.com/yurkimus/enumeration/main/source/index.js"
Exports
Enumeration
Definition
EnumerationInit ::
| Set
| [ keys: [] ]
| [ keys: [], values: [] ]
| { key: value }
| Map<key, value>
| Enumeration
Enumeration :: EnumerationInit -> Enumeration { key <=> value }
Enumeration.prototype.of :: EnumerationInit -> Enumeration { key <=> value }
Enumeration.prototype.has :: key -> boolean
Enumeration.prototype.get :: key ->
| *
| ReferenceError
Enumeration.prototype.keys :: () -> iterableIterator<*>
Enumeration.prototype.values :: () -> iterableIterator<*>
Enumeration.prototype.entries :: () -> iterableIterator<[*, *]>
Enumeration.prototype[Symbol.iterator] :: () -> iterableIterator<[*, *]>
Example
let Colors = new Enumeration(new Set(['Red', 'Green', 'Blue']))
let CSSColors = Colors
.bindValues(['red', 'green', 'blue'])
let RGBs = Colors
.bindValues(['rgb(255 0 0)', 'rgb(0 128 0)', 'rgb(0 0 255)'])
.bindKeys(['R', 'G', 'B'])
console.log('Colors', Colors)
console.log('CSSColors', CSSColors)
console.log('RGBs', RGBs)
console.log("RGBs.has('R')", RGBs.has('R'))
console.log("RGBs.has('Red')", RGBs.has('Red'))
console.log("RGBs.has('rgb(255 0 0)')", RGBs.has('rgb(255 0 0)'))
console.log("RGBs.get('R')", RGBs.get('R'))
console.log("RGBs.get('Red')", RGBs.get('Red'))
console.log("RGBs.get('rgb(255 0 0)')", RGBs.get('rgb(255 0 0)'))
let MediaTypes = new Enumeration([
['javascript', 'javascript'],
['text/javascript', 'application/javascript'],
]).bindKeys(['js', 'js'])
console.log('MediaTypes', MediaTypes)
console.log("MediaTypes.has('javascript')", MediaTypes.has('javascript'))
console.log("MediaTypes.has('js')", MediaTypes.has('js'))
console.log(
"MediaTypes.has('text/javascript')",
MediaTypes.has('text/javascript'),
)
console.log(
"MediaTypes.has('application/javascript')",
MediaTypes.has('application/javascript'),
)
console.log("MediaTypes.get('javascript')", MediaTypes.get('javascript'))
console.log("MediaTypes.get('js')", MediaTypes.get('js'))
console.log('[...RGBs.keys()]', [...RGBs.keys()])
console.log('[...RGBs.values()]', [...RGBs.values()])
console.log('[...RGBs.entries()]', [...RGBs.entries()])
console.log('[...RGBs]', [...RGBs])
License
MIT