UNPKG

@politie/sherlock-utils

Version:

Utility functions that are designed to work with Sherlock. His toolbelt.

2 lines 3.5 kB
import{isDerivable as r,lens as n,_internal as t,isSettableDerivable as u,atom as e,PullDataSource as i,ErrorWrapper as o,unresolved as f,derive as c,unwrap as a,utils as v}from"@politie/sherlock";import{__extends as s}from"tslib";function l(){return new Map}var h="__cachedProxy";function d(i){var o=(i.mapFactory||l)(),f=i.delayedEviction,c=i.derivableFactory,a={get:function(r){var i=o.get(r);if(i)return i.getState();var a=t.independentTracking((function(){return c(r)})),v=u(a)?n({get:function(){return a.get()},set:function(r){return a.set(r)}},e(0)):e(0).derive((function(){return a.get()}));f&&v.autoCache();var s=v.getState();return v.connected&&(v[h]=this,o.set(r,v),v.connected$.react((function(){return o.delete(r)}),{skipFirst:!0,once:!0})),s},set:function(r,n){var e=o.get(n)||c(n);if(!u(e))throw t.augmentStack(Error("Cached derivable is not settable"),e);e.set(r)}};return function(t){if(!r(t)){var u=o.get(t);if(u)return u[h]}return n(a,t)}}var p=function(r){function n(n){var t=r.call(this)||this;return t.fn=n,t}return s(n,r),n.prototype.calculateCurrentValue=function(){return this.fn()},n.prototype.changed=function(){r.prototype.checkForChanges.call(this)},n}(i);function b(r){var n=e.unresolved();return r.then((function(r){return n.setFinal(r)}),(function(r){return n.setFinal(new o(r))})),n}function w(r){return function(){for(var n=[],u=0;u<arguments.length;u++)n[u]=arguments[u];return new t.Derivation(r,n)}}function y(r,n){var t=n;return function(n){var u=r.call(this,n,t);return t=n,u}}function m(r){return t.independentTracking((function(){return r.getState()}))}function k(r){return t.independentTracking((function(){return r.get()}))}function A(r){return t.independentTracking((function(){return r.value}))}function g(r,n){var t=n;return function(n){return t=r.call(this,t,n)}}function j(r){return x(r.getState())}function x(r){return r===f?{errored:!1,resolved:!1}:r instanceof o?{error:r.error,errored:!0,resolved:!0}:{value:r,errored:!1,resolved:!0}}function E(r){return r.errored?new o(r.error):r.resolved?r.value:f}function O(r){return r.mapState(x)}function _(r){return r.map(E)}function C(r,n){n.resolved?n.errored?r.setError(n.error):r.set(n.value):r.unset()}function D(r,n,t){return O(r).react((function(r){return C(n,r)}),t)}function F(r,n){C(n,j(r))}var M=z((function(r){return!r})),P=z((function(r){return!!r})),q=z((function(r){return null!=r}));function z(r){return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return c((function(){for(var t,u=0,e=n;u<e.length;u++){var i=e[u];if(t=a(i),r(t))break}return t}))}}function B(n){if(r(n))return n;if(!Array.isArray(n)&&!v.isPlainObject(n))throw Error('"struct" only accepts Derivables, plain Objects and Arrays');return c(G,n)}function G(n){if(r(n))return n.get();if(Array.isArray(n))return n.map(G);if(v.isPlainObject(n)){for(var t={},u=0,e=Object.keys(n);u<e.length;u++){var i=e[u];t[i]=G(n[i])}return t}return n}function H(r){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return c((function(){for(var t="",u=0;u<r.length;u++)t+=r[u],u<n.length&&(t+=a(n[u]));return t}))}export{p as FunctionDataSource,M as and,F as copyState,_ as dematerialize,d as derivableCache,q as firstNotNull,b as fromPromise,E as fromStateObject,j as getStateObject,w as lift,O as materialize,P as or,y as pairwise,k as peek,m as peekState,A as peekValue,g as scan,C as setStateObject,B as struct,D as syncState,H as template,x as toStateObject}; //# sourceMappingURL=sherlock-utils.esm.min.js.map