Enum.js 751 B

12345678910111213141516171819202122232425262728293031
  1. var Class = require('./Class');
  2. var freeze = require('./freeze');
  3. var isArr = require('./isArr');
  4. var each = require('./each');
  5. var keys = require('./keys');
  6. exports = Class({
  7. initialize: function Enum(map) {
  8. if (isArr(map)) {
  9. this.size = map.length;
  10. each(
  11. map,
  12. function(member, val) {
  13. this[member] = val;
  14. },
  15. this
  16. );
  17. } else {
  18. this.size = keys(map).length;
  19. each(
  20. map,
  21. function(val, member) {
  22. this[member] = val;
  23. },
  24. this
  25. );
  26. }
  27. freeze(this);
  28. }
  29. });
  30. module.exports = exports;