@particle/make-enum
v5.0.0
Published
A smart enum that throws when accessing a value that does not exist
Downloads
2,194
Maintainers
Keywords
Readme
@particle/make-enum
Turn an array of values into an object that will throw an error when getting a non existing property to avoid typos in enum values
Note: relies on Proxy
which is a Javascript feature that cannot be polyfilled, so it's not safe to use in the browser.
Installation
npm install @particle/make-enum --save
const makeEnum = require('@particle/make-enum');
API
@particle/make-enum
module.exports(values) ⇒ Object ⏏
Turn an array of values into an object that will throw an error when getting a non existing property to avoid typos in enum values
Kind: Exported function
Returns: Object - The extended array object where enum values can be accessed as properties
| Param | Type | Description | | --- | --- | --- | | values | Array | The array of string values for the enum |
Example
const states = makeEnum(['new', 'in_progress']);
// states.new === 'new'
// states.inprogress throws
const nestedEnum = makeEnum(['animals.cow', 'animals', 'animals.eagle']);
// To compare with the string, the enum must be basted to a string
// nestedEnum.animals.toString() === 'animals'
// `${nestedEnum.animals.cow}` === 'animals.cow'
NOTE: Unfortunately, docs have a nasty habit of falling out of date. When in doubt, check usage in tests