@ghostry/finity-core
Version:
Finite state management with exhaustiveness and transition enforcement for TypeScript.
2 lines • 2.02 kB
JavaScript
function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var n=0,e=Array(r);n<r;n++)e[n]=t[n];return e}function r(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function n(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var n,e,i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var a=[],o=!0,s=!1;try{for(i=i.call(t);!(o=(n=i.next()).done)&&(a.push(n.value),!r||a.length!==r);o=!0);}catch(t){s=!0,e=t}finally{try{o||null==i.return||i.return()}finally{if(s)throw e}}return a}}(t,r)||e(t,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e(r,n){if(r){if("string"==typeof r)return t(r,n);var e=Object.prototype.toString.call(r).slice(8,-1);if("Object"===e&&r.constructor&&(e=r.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return t(r,n)}}var i=function i(a,o){"use strict";var s=this;if(!(this instanceof i))throw TypeError("Cannot call a class as a function");r(this,"state",void 0),r(this,"cases",void 0),r(this,"case",void 0),r(this,"use",void 0),this.state=a,this.cases=o,this.case=function(r,n){var i;return s.cases=((function(r){if(Array.isArray(r))return t(r)})(i=s.cases)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(i)||e(i)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([[r,n]]),s},this.use=function(){var t=s.state(),r=s.cases.find(function(r){var e=n(r,2),i=e[0];return e[1],i.includes(t.kind)});if(r){var e=n(r,2);return(e[0],e[1])(t)}throw Error("[finity] Invalid state switch!")}};export{i as ExhaustiveSwitchInstance};
//# sourceMappingURL=ExhaustiveSwitch.js.map