@politie/sherlock-utils
Version:
Utility functions that are designed to work with Sherlock. His toolbelt.
2 lines • 3.73 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@politie/sherlock"),n=require("tslib");function t(){return new Map}var e="__cachedProxy",u=function(r){function t(n){var t=r.call(this)||this;return t.fn=n,t}return n.__extends(t,r),t.prototype.calculateCurrentValue=function(){return this.fn()},t.prototype.changed=function(){r.prototype.checkForChanges.call(this)},t}(r.PullDataSource);function o(r){return i(r.getState())}function i(n){return n===r.unresolved?{errored:!1,resolved:!1}:n instanceof r.ErrorWrapper?{error:n.error,errored:!0,resolved:!0}:{value:n,errored:!1,resolved:!0}}function f(n){return n.errored?new r.ErrorWrapper(n.error):n.resolved?n.value:r.unresolved}function c(r){return r.mapState(i)}function s(r,n){n.resolved?n.errored?r.setError(n.error):r.set(n.value):r.unset()}var a=x((function(r){return!r})),v=x((function(r){return!!r})),p=x((function(r){return null!=r}));function x(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.derive((function(){for(var e,u=0,o=t;u<o.length;u++){var i=o[u];if(e=r.unwrap(i),n(e))break}return e}))}}function l(n){if(r.isDerivable(n))return n.get();if(Array.isArray(n))return n.map(l);if(r.utils.isPlainObject(n)){for(var t={},e=0,u=Object.keys(n);e<u.length;e++){var o=u[e];t[o]=l(n[o])}return t}return n}exports.FunctionDataSource=u,exports.and=a,exports.copyState=function(r,n){s(n,o(r))},exports.dematerialize=function(r){return r.map(f)},exports.derivableCache=function(n){var u=(n.mapFactory||t)(),o=n.delayedEviction,i=n.derivableFactory,f={get:function(n){var t=u.get(n);if(t)return t.getState();var f=r._internal.independentTracking((function(){return i(n)})),c=r.isSettableDerivable(f)?r.lens({get:function(){return f.get()},set:function(r){return f.set(r)}},r.atom(0)):r.atom(0).derive((function(){return f.get()}));o&&c.autoCache();var s=c.getState();return c.connected&&(c[e]=this,u.set(n,c),c.connected$.react((function(){return u.delete(n)}),{skipFirst:!0,once:!0})),s},set:function(n,t){var e=u.get(t)||i(t);if(!r.isSettableDerivable(e))throw r._internal.augmentStack(Error("Cached derivable is not settable"),e);e.set(n)}};return function(n){if(!r.isDerivable(n)){var t=u.get(n);if(t)return t[e]}return r.lens(f,n)}},exports.firstNotNull=p,exports.fromPromise=function(n){var t=r.atom.unresolved();return n.then((function(r){return t.setFinal(r)}),(function(n){return t.setFinal(new r.ErrorWrapper(n))})),t},exports.fromStateObject=f,exports.getStateObject=o,exports.lift=function(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return new r._internal.Derivation(n,t)}},exports.materialize=c,exports.or=v,exports.pairwise=function(r,n){var t=n;return function(n){var e=r.call(this,n,t);return t=n,e}},exports.peek=function(n){return r._internal.independentTracking((function(){return n.get()}))},exports.peekState=function(n){return r._internal.independentTracking((function(){return n.getState()}))},exports.peekValue=function(n){return r._internal.independentTracking((function(){return n.value}))},exports.scan=function(r,n){var t=n;return function(n){return t=r.call(this,t,n)}},exports.setStateObject=s,exports.struct=function(n){if(r.isDerivable(n))return n;if(!Array.isArray(n)&&!r.utils.isPlainObject(n))throw Error('"struct" only accepts Derivables, plain Objects and Arrays');return r.derive(l,n)},exports.syncState=function(r,n,t){return c(r).react((function(r){return s(n,r)}),t)},exports.template=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r.derive((function(){for(var e="",u=0;u<n.length;u++)e+=n[u],u<t.length&&(e+=r.unwrap(t[u]));return e}))},exports.toStateObject=i;
//# sourceMappingURL=sherlock-utils.cjs.min.js.map