enum-fp
Version:
Functional enum type for javascript with simple pattern matching
1 lines • 1.4 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"T",{enumerable:true,get:function get(){return _Type.default}});exports.default=exports.createConstructor=void 0;var _utils=require("./utils");var _Type=_interopRequireWildcard(require("./Type"));function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};if(desc.get||desc.set){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}}newObj.default=obj;return newObj}}var createConstructor=function createConstructor(Type,_ref){var name=_ref.name,props=_ref.props;return function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}if(props?!(0,_Type.validateArgs)(props,args):false)throw new TypeError("Invalid number of args passed to constructor ".concat(name));var self={args:args,name:name,props:props,is:function is(otherType){return[otherType,otherType.name].indexOf(name)!==-1},match:function match(pattern){return Type.match(self,pattern)}};return self}};exports.createConstructor=createConstructor;var _default=(0,_utils.createEnumFactory)({createConstructor:createConstructor});exports.default=_default;
;