monad-state
Version:
The State Monad
2 lines (1 loc) • 8.19 kB
JavaScript
!function(){function n(t,o,u){function r(i,c){if(!o[i]){if(!t[i]){var f="function"==typeof require&&require;if(!c&&f)return f(i,!0);if(e)return e(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var s=o[i]={exports:{}};t[i][0].call(s.exports,function(n){return r(t[i][1][n]||n)},s,s.exports,n,t,o,u)}return o[i].exports}for(var e="function"==typeof require&&require,i=0;i<u.length;i++)r(u[i]);return r}return n}()({1:[function(n,t,o){monadState=n("../src")},{"../src":7}],2:[function(n,t,o){(()=>{"use strict";const o=n("stringify-anything"),u=(n,t,o)=>Object.defineProperty(o,n,{value:t}),r=(n,t)=>u("name",n,t),e=(n,t)=>u("length",n,t),i=n=>{throw Error(n)},c=(n,t,u)=>{"function"!=typeof n&&i(`${o(n)} should be a function`),"number"!=typeof t&&i(`${o(t)} should be a number`),u instanceof Array||i(`${o(u)} should be an Array`)},f=(n,t)=>o(n)+(t.length?`(${t.map(o).join(",")})`:""),a=(n,t=n.length,o=[])=>{return c(n,t,o),r(f(n,o),e(t,(...u)=>{const r=o.concat(u.length?u:[void 0]);return r.length>=t?n.apply(null,r):e(t-r.length,a(n,t,r))}))};t.exports=a})()},{"stringify-anything":6}],3:[function(n,t,o){(()=>{"use strict";const o=n("fun-curry"),{inputs:inputs}=n("guarded"),{any:any,tuple:tuple,arrayOf:arrayOf,objectOf:objectOf,fun:fun,string:string,object:object,record:record}=n("fun-type"),u=n=>n,r=n=>()=>n,e=(n,t,o)=>w(t).reduce((u,r)=>m(r,n(h(r,t),h(r,o)),u),{}),i=({output:output,f:f,inputs:inputs},n)=>m(output,f(f(inputs,n)),n),c=(n,t)=>p(t=>n.indexOf(t)===-1,t),f=(n,t)=>p(t=>n.indexOf(t)!==-1,t),a=(n,t)=>y(d(r,n),t),s=(n,t)=>w(t).reduce((o,u)=>n(h(u,t))?m(u,h(u,t),o):o,{}),p=(n,t)=>w(t).reduce((o,u)=>n(u)?m(u,h(u,t),o):o,{}),y=(n,t)=>[...w(n),...w(t)].reduce((o,r)=>m((h(r,n)||u)(r),h(r,t),o),{}),l=(n,t)=>[...w(n),...w(t)].reduce((o,r)=>m(r,(h(r,n)||u)(h(r,t)),o),{}),d=(n,t)=>w(t).reduce((o,u)=>m(u,n(h(u,t)),o),{}),g=(n,t)=>w(t).reduce((o,u)=>m(n(u),h(u,t),o),{}),h=(n,t)=>t[n],m=(n,t,o)=>[...w(o),n].reduce((u,r)=>{return u[r]=r===n?t:h(r,o),u},{}),b=(n,t,o)=>m(n,t(h(n,o)),o),O=(n,t)=>j((n,t)=>void 0!==t?t:n,n,t),E=(n,t)=>O(t,n),j=(n,t,o)=>[...w(t),...w(o)].reduce((u,r)=>m(r,n(h(r,t),h(r,o)),u),{}),x=()=>({}),v=n=>n.reduce((n,[t,o])=>m(t,o,n),{}),P=n=>w(n).map(t=>[t,h(t,n)]),k=(n,t)=>({[n]:t}),K=n=>w(n).map(t=>h(t,n)),w=Object.keys,M={keep:f,drop:c,keys:w,values:K,reKey:a,of:k,ofPairs:v,empty:x,concat:j,defaults:O,merge:E,map:d,mapKeys:g,ap:l,apKeys:y,get:h,set:m,update:b,filterKeys:p,filter:s,transition:i,zipWith:e,toPairs:P},q=d(inputs,{keep:tuple([arrayOf(string),object]),drop:tuple([arrayOf(string),object]),keys:tuple([object]),values:tuple([object]),reKey:tuple([objectOf(string),object]),of:tuple([string,any]),ofPairs:tuple([arrayOf(tuple([string,any]))]),concat:tuple([fun,object,object]),defaults:tuple([object,object]),merge:tuple([object,object]),map:tuple([fun,object]),mapKeys:tuple([fun,object]),ap:tuple([objectOf(fun),object]),apKeys:tuple([objectOf(fun),object]),get:tuple([string,object]),set:tuple([string,any,object]),update:tuple([string,fun,object]),filterKeys:tuple([fun,object]),filter:tuple([fun,object]),transition:tuple([record({inputs:arrayOf(string),f:fun,output:string}),object]),zipWith:tuple([fun,object,object]),toPairs:tuple([object])});t.exports=d(o,l(q,M))})()},{"fun-curry":2,"fun-type":4,guarded:5}],4:[function(n,t,o){(()=>{"use strict";const o=n("fun-curry"),{inputs:inputs,output:output}=n("guarded"),u=n=>n,r=Object.keys,e=n=>r(n).map(t=>n[t]),i=(n,t)=>r(t).reduce((o,u)=>{return o[u]=n(t[u]),o},{}),c=(n,t)=>r(t).reduce((o,r)=>{return o[r]=(n[r]||u)(t[r]),o},{}),f=n=>n.reduce((n,t)=>n&&t,!0),a=n=>t=>o=>n(t(o)),s=n=>t=>typeof t===n,p=()=>!0,y=s("boolean"),l=n=>d(n)&&Math.floor(n)===n&&Math.abs(n)!==1/0,d=s("number"),g=s("string"),h=s("function"),m=(n,t)=>t instanceof n,b=o(m)(Array),O=(n,t)=>b(t)&&f(t.map(t=>n(t))),E=(n,t)=>b(t)&&t.length===n,j=(n,t,o)=>E(n,o)&&O(t,o),x=(n,t)=>E(n.length,t)&&f(n.map((n,o)=>n(t[o]))),v=n=>b(n)&&n.length>0&&O(o(E)(n[0].length),n),P=(n,t)=>v(t)&&O(o(j)(t[0].length,n),t),k=n=>s("object")(n)&&null!==n,K=(n,t)=>k(t)&&f(e(t).map(t=>n(t))),w=(n,t)=>k(t)&&r(n).reduce((o,u)=>o&&n[u](t[u]),!0),M=(n,t)=>w(n,t)&&E(r(n).length,r(t)),q=n=>k(n)&&Object.getPrototypeOf(n)===Object.prototype,A=o(m)(RegExp),F=(n,t,o)=>t.reduce((t,u)=>t||n(u,o),!1),N=(n,t)=>t.length<2||!F(n,t.slice(1),t[0])&&N(n,t.slice(1)),D=(n,t,o)=>!o.length||o.length<=t.length&&!F(n,o.slice(1),o[0])&&F(n,t,o[0])&&D(n,t,o.slice(1)),S=(n,t,o)=>o.reduce((n,t)=>n.concat(t),[]).length===t.length&&D(n,t,o.reduce((n,t)=>n.concat(t),[])),z=(n,t,o,u)=>u.length===t&&S(n,o,u),R={bool:y,num:d,string:g,object:k,pojo:q,array:b,vector:E,matrix:v,fun:h,record:M,hasFields:w,tuple:x,objectOf:K,arrayOf:O,vectorOf:j,matrixOf:P,regExp:A,instanceOf:m,any:p,member:F,integer:l,distinct:N,subset:D,partition:S,nPartition:z},U=o(E),W=o(x),_=o(O),C=o(K),J=i(a(output(y)),i(inputs,{bool:U(1),num:U(1),integer:U(1),string:U(1),object:U(1),pojo:U(1),array:U(1),vector:W([d,p]),fun:U(1),record:W([C(h),p]),hasFields:W([C(h),p]),tuple:W([_(h),p]),objectOf:W([h,p]),arrayOf:W([h,p]),vectorOf:W([d,h,p]),matrixOf:W([h,p]),regExp:U(1),instanceOf:W([h,p]),any:U(1),member:W([h,b,p]),distinct:W([h,b]),subset:W([h,b,b]),partition:W([h,b,_(b)]),nPartition:W([h,d,b,_(b)])}));t.exports=i(o,c(J,R))})()},{"fun-curry":2,guarded:5}],5:[function(n,t,o){(()=>{"use strict";const o=n("stringify-anything"),u=n("fun-curry"),r=n=>0===n.length,e=n=>"number"==typeof n,i=n=>"function"==typeof n,c=(n,t)=>Object.keys(t).reduce((o,u)=>{return o[u]=n(t[u]),o},{}),f=n=>`\`${o(n)}\``,a=n=>{throw n},s="A contract with a guarded function has been broken!\n",p=(n,t,o)=>n(t)?t:a(o),y=(n,t,o)=>Object.defineProperty(o,n,Object.defineProperty(Object.getOwnPropertyDescriptor(o,n),"value",{value:t})),l=(n,t)=>y("length",n.length,y("name",n.name,t)),d=(n,t,...o)=>{return p(i,n,Error(s+`${f(n)} should be a function`)),p(i,t,Error(s+`${f(t)} should be a function`)),p(r,o,Error(s+`Extra arguments passed to io: ${f(o)}`)),l(t,(...o)=>{const r=t(...o);return p(u(n)(o),r,Error(s+`(inputs -> output) pair (${f(o)} ->`+` ${f(r)}) from function ${f(t)}`+` failed predicate ${f(n)}`)),r})},g=(n,t,...o)=>{return p(i,n,Error(s+`${f(n)} should be a function`)),p(i,t,Error(s+`${f(t)} should be a function`)),p(r,o,Error(s+`Extra arguments passed to inputs: ${f(o)}`)),l(t,(...o)=>{return p(n,o,Error(s+`inputs ${f(o)} to function ${f(t)}`+` failed predicate ${f(n)}`)),t(...o)})},h=(n,t,o,...u)=>{return p(e,n,Error(s+`${f(n)} should be a number`)),p(i,t,Error(s+`${f(t)} should be a function`)),p(i,o,Error(s+`${f(o)} should be a function`)),p(r,u,Error(s+`Extra arguments passed to inputN: ${f(u)}`)),l(o,(...u)=>{return p(t,u[n],Error(s+`input ${n} ${f(u[n])} to function`+` ${f(o)} failed predicate ${f(t)}`)),o(...u)})},m=(n,t,...o)=>h(0,n,t,...o),b=(n,t,...o)=>{return p(i,n,Error(s+`${f(n)} should be a function`)),p(i,t,Error(s+`${f(t)} should be a function`)),p(r,o,Error(s+`Extra arguments passed to output: ${f(o)}`)),l(t,(...o)=>{const u=t(...o);return p(n,u,Error(s+`output ${f(u)} of function ${f(t)}`+` with arguments ${f(o)} failed predicate ${f(n)}`)),u})},O={io:d,inputs:g,inputN:h,input:m,output:b};t.exports=c(u,O)})()},{"fun-curry":2,"stringify-anything":6}],6:[function(n,t,o){(()=>{"use strict";const n=n=>null===n||"boolean"==typeof n||"number"==typeof n||"string"==typeof n,o=t=>n(t)?JSON.stringify(t):void 0===t?"undefined":t instanceof Function?t.name||"=>":t instanceof RegExp||t instanceof Error?t.toString():t instanceof Array?`[${t.map(o).join(",")}]`:`{${Object.keys(t).join(",")}}`;t.exports=o})()},{}],7:[function(n,t,o){(()=>{"use strict";const{inputs:inputs}=n("guarded"),{ap:ap,map:omap}=n("fun-object"),{any:any,fun:fun,tuple:tuple}=n("fun-type"),o=n("fun-curry"),u=(n,t)=>[n,t],r=(n,t,o)=>e(t,(t,o)=>u(n(t),o),o),e=(n,t,o)=>(([n,o])=>t(n,o))(n(o)),i=(n,t,o,u)=>e(t,(t,u)=>r(o=>n(t,o),o,u),u),c=(n,t)=>t(n)[0],f={of:u,map:r,chain:e,liftM2:i,run:c},a=omap(inputs,{of:tuple([any,any]),map:tuple([fun,fun,any]),chain:tuple([fun,fun,any]),liftM2:tuple([fun,fun,fun,any]),run:tuple([any,fun])});t.exports=omap(o,ap(a,f))})()},{"fun-curry":2,"fun-object":3,"fun-type":4,guarded:5}]},{},[1]);