fpes
Version:
Functional Programming for EcmaScript(Javascript)
1 lines • 10.3 kB
JavaScript
var pattern;pattern=function(){var t={228:function(t){t.exports=function(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=new Array(n);r<n;r++)e[r]=t[r];return e}},646:function(t,n,r){var e=r(228);t.exports=function(t){if(Array.isArray(t))return e(t)}},506:function(t){t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}},575:function(t){t.exports=function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}},913:function(t){function n(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}t.exports=function(t,r,e){return r&&n(t.prototype,r),e&&n(t,e),t}},754:function(t){function n(r){return t.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},n(r)}t.exports=n},205:function(t,n,r){var e=r(489);t.exports=function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),n&&e(t,n)}},318:function(t){t.exports=function(t){return t&&t.__esModule?t:{default:t}}},860:function(t){t.exports=function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}},206:function(t){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},585:function(t,n,r){var e=r(8),u=r(506);t.exports=function(t,n){return!n||"object"!==e(n)&&"function"!=typeof n?u(t):n}},489:function(t){function n(r,e){return t.exports=n=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t},n(r,e)}t.exports=n},319:function(t,n,r){var e=r(646),u=r(860),o=r(379),i=r(206);t.exports=function(t){return e(t)||u(t)||o(t)||i()}},8:function(t){function n(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=n=function(t){return typeof t}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(r)}t.exports=n},379:function(t,n,r){var e=r(228);t.exports=function(t,n){if(t){if("string"==typeof t)return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,n):void 0}}},202:function(t,n,r){"use strict";var e=r(318),u=e(r(205)),o=e(r(585)),i=e(r(754)),f=e(r(319)),a=e(r(8)),c=e(r(913)),s=e(r(575));function l(t){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,e=(0,i.default)(t);if(n){var u=(0,i.default)(this).constructor;r=Reflect.construct(e,arguments,u)}else r=e.apply(this,arguments);return(0,o.default)(this,r)}}function p(t,n){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,n){if(t){if("string"==typeof t)return y(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?y(t,n):void 0}}(t))||n&&t&&"number"==typeof t.length){r&&(t=r);var e=0,u=function(){};return{s:u,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f:u}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,f=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return i=t.done,t},e:function(t){f=!0,o=t},f:function(){try{i||null==r.return||r.return()}finally{if(f)throw o}}}}function y(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=new Array(n);r<n;r++)e[r]=t[r];return e}var h=function t(n,r){(0,s.default)(this,t),this.matches=n,this.effect=r},v=function(){function t(){(0,s.default)(this,t)}return(0,c.default)(t,[{key:"matches",value:function(){throw new Error("No implementation")}}]),t}();function m(t){return isNaN(t)||""===t.toString().trim()}function d(t,n){return new h((function(n){return t===n}),n)}function b(t){return new h((function(t){return!m(t)}),(function(n){return t(+n)}))}function g(t){return new h(m,(function(n){return t(+n)}))}function w(t){return new h((function(t){return"string"==typeof t}),(function(n){return t(+n)}))}function O(t){return new h((function(t){return t&&"object"===(0,a.default)(t)&&!Array.isArray(t)}),t)}function x(t){return new h((function(t){return t&&Array.isArray(t)}),t)}function T(t,n){return new h((function(n){return n instanceof t}),n)}function A(t){return new h((function(t){return null==t}),t)}function C(t){return T(Function,t)}function S(t){return T(h,t)}function j(t){return T(I,t)}function P(t){return T(D,t)}function M(t,n){return new h((function(n){return B.matches(n)&&t.matches.apply(t,(0,f.default)(n))||t.matches(n)}),n)}function N(t,n){return new h((function(n){return"string"==typeof t&&(t=new RegExp(t)),t.test(n)}),n)}function k(t){return new h(t,(function(){return!0}))}function E(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return k((function(t){var r,e=!0,u=p(n);try{for(u.s();!(r=u.n()).done;){var o=r.value;e=e&&o.matches(t)}}catch(t){u.e(t)}finally{u.f()}return e}))}function _(t){return new h((function(){return!0}),t)}function R(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),e=1;e<n;e++)r[e-1]=arguments[e];for(var u=0,o=r;u<o.length;u++){var i=o[u];if(i.matches(t))return i.effect(t)}throw new Error("Cannot match ".concat(JSON.stringify(t)))}var I=function(t){(0,u.default)(r,t);var n=l(r);function r(){var t;(0,s.default)(this,r),t=n.call(this);for(var e=arguments.length,u=new Array(e),o=0;o<e;o++)u[o]=arguments[o];return t.patterns=u,t}return(0,c.default)(r,[{key:"matches",value:function(t){return R.apply(void 0,[t].concat((0,f.default)(this.patterns)))}},{key:"matchFor",value:function(t){return this.matches(t)}}]),r}(v),F=function t(n){(0,s.default)(this,t),this.type=n;for(var r=arguments.length,e=new Array(r>1?r-1:0),u=1;u<r;u++)e[u-1]=arguments[u];this.values=e},D=function(t){(0,u.default)(r,t);var n=l(r);function r(){return(0,s.default)(this,r),n.apply(this,arguments)}return(0,c.default)(r,[{key:"effect",value:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(this.matches.apply(this,n))return new F(this,n)}},{key:"apply",value:function(){return this.effect.apply(this,arguments)}}]),r}(v),q=function(t){(0,u.default)(r,t);var n=l(r);function r(){var t;(0,s.default)(this,r),t=n.call(this);for(var e=arguments.length,u=new Array(e),o=0;o<e;o++)u[o]=arguments[o];return t.types=u,t}return(0,c.default)(r,[{key:"matches",value:function(){var t=this.innerMatches.apply(this,arguments);return!!t}},{key:"effect",value:function(){var t=this.innerMatches.apply(this,arguments);if(t)return t.effect.apply(t,arguments)}},{key:"innerMatches",value:function(){var t,n=p(this.types);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r.matches.apply(r,arguments))return r}}catch(t){n.e(t)}finally{n.f()}}}]),r}(D),U=function(t){(0,u.default)(r,t);var n=l(r);function r(){var t;(0,s.default)(this,r),t=n.call(this);for(var e=arguments.length,u=new Array(e),o=0;o<e;o++)u[o]=arguments[o];return t.types=u,t}return(0,c.default)(r,[{key:"matches",value:function(){if(arguments.length!=this.types.length)return!1;for(var t=0;t<arguments.length;t++)if(!this.types[t].matches(t<0||arguments.length<=t?void 0:arguments[t]))return!1;return!0}}]),r}(D),W=b((function(){return!0})),$=w((function(){return!0})),J=g((function(){return!0})),z=O((function(){return!0})),B=x((function(){return!0})),G=A((function(){return!0})),H=C((function(){return!0})),K=S((function(){return!0})),L=j((function(){return!0})),Q=P((function(){return!0}));t.exports={either:R,Pattern:h,PatternMatching:I,inCaseOfEqual:d,inCaseOfNumber:b,inCaseOfString:w,inCaseOfNaN:g,inCaseOfObject:O,inCaseOfArray:x,inCaseOfClass:T,inCaseOfNull:A,inCaseOfFunction:C,inCaseOfPattern:S,inCaseOfPatternMatching:j,inCaseOfCompType:P,inCaseOfCompTypeMatchesWithSpread:M,inCaseOfRegex:N,otherwise:_,SumType:q,ProductType:U,CompType:D,TypeNumber:W,TypeString:$,TypeNaN:J,TypeObject:z,TypeArray:B,TypeNull:G,TypeFunction:H,TypePattern:K,TypePatternMatching:L,TypeCompType:Q,TypeCompTypeMatchesWithSpread:function(t){return M(t,(function(){return!0}))},TypeEqualTo:function(t){return d(t,(function(){return!0}))},TypeClassOf:function(t){return T(t,(function(){return!0}))},TypeRegexMatches:function(t){return N(t,(function(){return!0}))},TypeInCaseOf:k,TypeMatchesAllPatterns:E,TypeADT:function t(n){for(var r=[],e=0,u=[function(t){var n=$;return t===n||t===String||n.matches(t)?n:void 0},function(t){var n=W;return t===n||t===Number||n.matches(t)?n:void 0},function(t){return t===H||t===Function?H:void 0},function(t){return H.matches(t)?k(t):void 0},function(t){return K.matches(t)?t:void 0},function(t){return L.matches(t)?k((function(n){return t.matchFor(n)})):void 0},function(t){return Q.matches(t)?t:void 0},function(t){var n=G;return t===n||n.matches(t)?n:void 0},function(t){var n=k((function(t){return!(z.matches(t)||B.matches(t))&&J.matches(t)}));return t===J||n.matches(t)?n:void 0}];e<u.length;e++){var o=(0,u[e])(n);if(o)return o}if(B.matches(n)){var i=n.map((function(n){return t(n)}));i.push(_((function(){return!1})));var a=k((function(t){return R.apply(void 0,[t].concat((0,f.default)(i)))}));r.push(B),r.push(k((function(t){return t.map((function(t){return a.matches(t)})).reduce((function(t,n){return n&&t}),!0)})))}else if(z.matches(n)){var c=[];for(var s in n)n.hasOwnProperty(s)&&function(){var r=s;c.push(k((function(e){return t(n[r]).matches(e[r])})))}();r.push(z),r.push(E.apply(void 0,c))}return E.apply(void 0,r)}}}},n={};return function r(e){if(n[e])return n[e].exports;var u=n[e]={exports:{}};return t[e](u,u.exports,r),u.exports}(202)}();