callbag-state
Advanced tools
Comparing version 0.1.0 to 0.1.1
@@ -1,1 +0,1 @@ | ||
var callbagState=function(t){"use strict";function n(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function e(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,n){if(!t)return;if("string"==typeof t)return r(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return r(t,n)}(t)||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.")}()}function r(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function u(t){return!t||!t.subs}function i(t,n,r){e(r).forEach((function(e){r.indexOf(e)>=0&&e(t,n)}))}function o(t){return null==t||"number"==typeof t||"string"==typeof t||"boolean"==typeof t||t instanceof Date}function a(t,n){if(t!==n){if(!o(t)&&!o(n)){var e={subs:{}},r=new Set,u=!1;for(var i in t){r.add(i);var f=a(t[i],n[i]);f&&(e.subs[i]=f,u=!0)}for(var c in n)r.has(c)||(e.subs[c]=a(t[c],n[c]),u=!0);return u?e:void 0}return t instanceof Date&&n instanceof Date&&+t!=+n||t!==n?{from:t,to:n}:void 0}}function f(t){if(u(t.trace)&&t.trace){var n=a(t.trace.from,t.trace.to);if(n)return{value:t.value,trace:n}}return t}function c(t,e,r){var o=[],a=t,l=void 0,v=function(t){i(2,t,o),o.length=0,l=void 0},s=function(t,n){if(0===t){var r=n;o.push(r),r(0,(function(t){if(2===t){var n=o.indexOf(r);n>=0&&o.splice(n,1),0===o.length&&l&&l(2)}})),1===o.length&&e(0,(function(t,n){if(0===t)l=n;else if(1===t){var e=f(n);e.value!==a&&(a=e.value),i(1,e,o)}else 2===t&&v(n)}))}},d=function(t,n){if(0===t){var e=n;s(0,(function(t,n){0===t?(e(0,n),e(1,a)):1===t?e(1,n.value):2===t&&e(2,n)}))}else 1===t?r(1,{value:n,trace:{from:a,to:n}}):2===t&&(r(2,n),v(n))};return d.get=function(){return a},d.set=function(t){return d(1,t)},d.clear=function(){return d(2)},d.downstream=function(){return s},d.upstream=function(){return r},d.sub=function(t){var e,i,o,f=c(a?a[t]:void 0,(e=s,i=t,o=function(){return f.get()},function(t,n){if(0===t){var r=void 0;e(0,(function(t,e){var a;if(0===t)r=e;else if(1===t){var f=e,c=f.value?f.value[i]:void 0;(u(f.trace)&&c!==o()||!u(f.trace)&&i in(null===(a=f.trace)||void 0===a?void 0:a.subs))&&n(1,{value:c,trace:u(f.trace)?void 0:f.trace.subs[i]})}else 2===t&&n(2,e)})),n(0,(function(t,n){r&&r(t,n)}))}}),function(t,e,r){return function(u,i){if(1===u){var o=i;r&&(r[e]=o.value),t(1,{value:r,trace:{subs:n({},e,o.trace)}})}else 2===u&&i&&t(2,i)}}(r,t,a));return f},d}function l(t){var n,e=(n=void 0,function(t,e){0===t?n||(n=e)(0,(function(t){2===t&&(n=void 0)})):n&&(n(t,e),2===t&&(n=void 0))});return c(t,e,e)}return t.change=function(t,n){var e=a(t,n);if(e)return{value:n,trace:e}},t.default=l,t.isLeaf=u,t.makeState=c,t.postTrace=f,t.state=l,t.trace=a,Object.defineProperty(t,"__esModule",{value:!0}),t}({}); | ||
var callbagState=function(t){"use strict";function e(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function n(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}(t)||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.")}()}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function o(t){return!t||!t.subs}function u(t,e,r){n(r).forEach((function(n){r.indexOf(n)>=0&&n(t,e)}))}function i(t){return null==t||"number"==typeof t||"string"==typeof t||"boolean"==typeof t||t instanceof Date}function a(t,e){if(t!==e){if(!i(t)&&!i(e)){var n={subs:{}},r=new Set,o=!1;for(var u in t){r.add(u);var f=a(t[u],e[u]);f&&(n.subs[u]=f,o=!0)}for(var c in e)r.has(c)||(n.subs[c]=a(t[c],e[c]),o=!0);return o?n:void 0}return t instanceof Date&&e instanceof Date&&+t!=+e||t!==e?{from:t,to:e}:void 0}}function f(t){if(o(t.trace)&&t.trace){var e=a(t.trace.from,t.trace.to);if(e)return{value:t.value,trace:e}}return t}function c(t,n,r){var i=[],a=t,l=void 0,s=function(t){u(2,t,i),i.length=0,l=void 0},v=function(t,e){if(0===t){var r=e;i.push(r),r(0,(function(t){if(2===t){var e=i.indexOf(r);e>=0&&i.splice(e,1),0===i.length&&l&&l(2)}})),1===i.length&&n(0,(function(t,e){if(0===t)l=e;else if(1===t){var n=f(e);n.value!==a&&(a=n.value),u(1,n,i)}else 2===t&&s(e)}))}},d=function(t,e){if(0===t){var n=e;v(0,(function(t,e){0===t?(n(0,e),n(1,a)):1===t?n(1,e.value):2===t&&n(2,e)}))}else 1===t?r(1,{value:e,trace:{from:a,to:e}}):2===t&&(r(2,e),s(e))};return d.get=function(){return a},d.set=function(t){return d(1,t)},d.clear=function(){return d(2)},d.downstream=function(){return v},d.upstream=function(){return r},d.sub=function(t){var n,u,i,f=c(a?a[t]:void 0,(n=v,u=t,i=function(){return f.get()},function(t,e){if(0===t){var r=void 0;n(0,(function(t,n){var a;if(0===t)r=n;else if(1===t){var f=n,c=f.value?f.value[u]:void 0;(o(f.trace)&&c!==i()||!o(f.trace)&&u in(null===(a=f.trace)||void 0===a?void 0:a.subs))&&e(1,{value:c,trace:o(f.trace)?void 0:f.trace.subs[u]})}else 2===t&&e(2,n)})),e(0,(function(t,e){r&&r(t,e)}))}}),function(t,n,r){return function(o,u){if(1===o){var i=u;r&&(r[n]=i.value),t(1,{value:r,trace:{subs:e({},n,i.trace)}})}else 2===o&&u&&t(2,u)}}(r,t,a));return f},d}function l(t){var e,n=(e=void 0,function(t,n){0===t?e||(e=n)(0,(function(t){2===t&&(e=void 0)})):e&&(e(t,n),2===t&&(e=void 0))});return c(t,n,n)}return t.change=function(t,e){var n=a(t,e);if(n)return{value:e,trace:n}},t.default=l,t.isLeaf=o,t.isState=function(t){return t&&"function"==typeof t&&2===t.length&&t.get&&"function"==typeof t.get&&0===t.get.length&&t.set&&"function"==typeof t.set&&1===t.set.length&&t.clear&&"function"==typeof t.clear&&0===t.clear.length&&t.downstream&&"function"==typeof t.downstream&&0===t.downstream.length&&t.upstream&&"function"==typeof t.upstream&&0===t.upstream.length&&t.sub&&"function"==typeof t.sub&&1===t.sub.length},t.makeState=c,t.postTrace=f,t.state=l,t.trace=a,Object.defineProperty(t,"__esModule",{value:!0}),t}({}); |
@@ -1,1 +0,1 @@ | ||
var callbagState=function(e){"use strict";function t(e){return!e||!e.subs}function n(e,t,n){[...n].forEach((r=>{n.indexOf(r)>=0&&r(e,t)}))}function r(e){return null==e||"number"==typeof e||"string"==typeof e||"boolean"==typeof e||e instanceof Date}function o(e,t){if(e!==t){if(!r(e)&&!r(t)){const n={subs:{}},r=new Set;let a=!1;for(const c in e){r.add(c);const u=o(e[c],t[c]);u&&(n.subs[c]=u,a=!0)}for(const c in t)r.has(c)||(n.subs[c]=o(e[c],t[c]),a=!0);return a?n:void 0}return e instanceof Date&&t instanceof Date&&+e!=+t||e!==t?{from:e,to:t}:void 0}}function a(e){if(t(e.trace)&&e.trace){const t=o(e.trace.from,e.trace.to);if(t)return{value:e.value,trace:t}}return e}function c(e,r,o){const u=[];let s=e,i=void 0;const f=e=>{n(2,e,u),u.length=0,i=void 0},l=(e,t)=>{if(0===e){const e=t;u.push(e),e(0,(t=>{if(2===t){const t=u.indexOf(e);t>=0&&u.splice(t,1),0===u.length&&i&&i(2)}})),1===u.length&&r(0,((e,t)=>{if(0===e)i=t;else if(1===e){const e=a(t);e.value!==s&&(s=e.value),n(1,e,u)}else 2===e&&f(t)}))}},v=(e,t)=>{if(0===e){const e=t;l(0,((t,n)=>{0===t?(e(0,n),e(1,s)):1===t?e(1,n.value):2===t&&e(2,n)}))}else 1===e?o(1,{value:t,trace:{from:s,to:t}}):2===e&&(o(2,t),f(t))};return v.get=()=>s,v.set=e=>v(1,e),v.clear=()=>v(2),v.downstream=()=>l,v.upstream=()=>o,v.sub=e=>{const n=c(s?s[e]:void 0,(r=l,a=e,u=()=>n.get(),(e,n)=>{if(0!==e)return;let o=void 0;r(0,((e,r)=>{var c;if(0===e)o=r;else if(1===e){const e=r,o=e.value?e.value[a]:void 0;(t(e.trace)&&o!==u()||!t(e.trace)&&a in(null===(c=e.trace)||void 0===c?void 0:c.subs))&&n(1,{value:o,trace:t(e.trace)?void 0:e.trace.subs[a]})}else 2===e&&n(2,r)})),n(0,((e,t)=>{o&&o(e,t)}))}),function(e,t,n){return(r,o)=>{if(1===r){const r=o;n&&(n[t]=r.value),e(1,{value:n,trace:{subs:{[t]:r.trace}}})}else 2===r&&o&&e(2,o)}}(o,e,s));var r,a,u;return n},v}function u(e){const t=function(){let e=void 0;return(t,n)=>{0===t?e||(e=n,e(0,(t=>{2===t&&(e=void 0)}))):e&&(e(t,n),2===t&&(e=void 0))}}();return c(e,t,t)}return e.change=function(e,t){const n=o(e,t);if(n)return{value:t,trace:n}},e.default=u,e.isLeaf=t,e.makeState=c,e.postTrace=a,e.state=u,e.trace=o,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); | ||
var callbagState=function(t){"use strict";function e(t){return!t||!t.subs}function n(t,e,n){[...n].forEach((o=>{n.indexOf(o)>=0&&o(t,e)}))}function o(t){return null==t||"number"==typeof t||"string"==typeof t||"boolean"==typeof t||t instanceof Date}function r(t,e){if(t!==e){if(!o(t)&&!o(e)){const n={subs:{}},o=new Set;let u=!1;for(const s in t){o.add(s);const a=r(t[s],e[s]);a&&(n.subs[s]=a,u=!0)}for(const s in e)o.has(s)||(n.subs[s]=r(t[s],e[s]),u=!0);return u?n:void 0}return t instanceof Date&&e instanceof Date&&+t!=+e||t!==e?{from:t,to:e}:void 0}}function u(t){if(e(t.trace)&&t.trace){const e=r(t.trace.from,t.trace.to);if(e)return{value:t.value,trace:e}}return t}function s(t,o,r){const a=[];let c=t,i=void 0;const f=t=>{n(2,t,a),a.length=0,i=void 0},l=(t,e)=>{if(0===t){const t=e;a.push(t),t(0,(e=>{if(2===e){const e=a.indexOf(t);e>=0&&a.splice(e,1),0===a.length&&i&&i(2)}})),1===a.length&&o(0,((t,e)=>{if(0===t)i=e;else if(1===t){const t=u(e);t.value!==c&&(c=t.value),n(1,t,a)}else 2===t&&f(e)}))}},v=(t,e)=>{if(0===t){const t=e;l(0,((e,n)=>{0===e?(t(0,n),t(1,c)):1===e?t(1,n.value):2===e&&t(2,n)}))}else 1===t?r(1,{value:e,trace:{from:c,to:e}}):2===t&&(r(2,e),f(e))};return v.get=()=>c,v.set=t=>v(1,t),v.clear=()=>v(2),v.downstream=()=>l,v.upstream=()=>r,v.sub=t=>{const n=s(c?c[t]:void 0,(o=l,u=t,a=()=>n.get(),(t,n)=>{if(0!==t)return;let r=void 0;o(0,((t,o)=>{var s;if(0===t)r=o;else if(1===t){const t=o,r=t.value?t.value[u]:void 0;(e(t.trace)&&r!==a()||!e(t.trace)&&u in(null===(s=t.trace)||void 0===s?void 0:s.subs))&&n(1,{value:r,trace:e(t.trace)?void 0:t.trace.subs[u]})}else 2===t&&n(2,o)})),n(0,((t,e)=>{r&&r(t,e)}))}),function(t,e,n){return(o,r)=>{if(1===o){const o=r;n&&(n[e]=o.value),t(1,{value:n,trace:{subs:{[e]:o.trace}}})}else 2===o&&r&&t(2,r)}}(r,t,c));var o,u,a;return n},v}function a(t){const e=function(){let t=void 0;return(e,n)=>{0===e?t||(t=n,t(0,(e=>{2===e&&(t=void 0)}))):t&&(t(e,n),2===e&&(t=void 0))}}();return s(t,e,e)}return t.change=function(t,e){const n=r(t,e);if(n)return{value:e,trace:n}},t.default=a,t.isLeaf=e,t.isState=function(t){return t&&"function"==typeof t&&2===t.length&&t.get&&"function"==typeof t.get&&0===t.get.length&&t.set&&"function"==typeof t.set&&1===t.set.length&&t.clear&&"function"==typeof t.clear&&0===t.clear.length&&t.downstream&&"function"==typeof t.downstream&&0===t.downstream.length&&t.upstream&&"function"==typeof t.upstream&&0===t.upstream.length&&t.sub&&"function"==typeof t.sub&&1===t.sub.length},t.makeState=s,t.postTrace=u,t.state=a,t.trace=r,Object.defineProperty(t,"__esModule",{value:!0}),t}({}); |
export { makeState } from './state'; | ||
export { trace, change, postTrace } from './trace'; | ||
export { Change, ChangeTrace, ChangeTraceLeaf, ChangeTraceNode, isLeaf, Downstream, Upstream, State } from './types'; | ||
export { Change, ChangeTrace, ChangeTraceLeaf, ChangeTraceNode, isLeaf, Downstream, Upstream, State, isState } from './types'; | ||
export declare function state<T>(t: T | undefined): import("./types").State<T>; | ||
export default state; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.state = exports.isLeaf = exports.postTrace = exports.change = exports.trace = exports.makeState = void 0; | ||
exports.state = exports.isState = exports.isLeaf = exports.postTrace = exports.change = exports.trace = exports.makeState = void 0; | ||
var state_1 = require("./state"); | ||
@@ -12,2 +12,3 @@ Object.defineProperty(exports, "makeState", { enumerable: true, get: function () { return state_1.makeState; } }); | ||
Object.defineProperty(exports, "isLeaf", { enumerable: true, get: function () { return types_1.isLeaf; } }); | ||
Object.defineProperty(exports, "isState", { enumerable: true, get: function () { return types_1.isState; } }); | ||
var state_2 = require("./state"); | ||
@@ -14,0 +15,0 @@ var bouncer_1 = require("./util/bouncer"); |
@@ -1,2 +0,2 @@ | ||
import { Source, Sink, START, DATA, END } from 'callbag'; | ||
import { Source, Sink, START, DATA, END, Callbag } from 'callbag'; | ||
export declare type ChangeTraceLeaf<T> = { | ||
@@ -30,4 +30,5 @@ from: T | undefined; | ||
}; | ||
export declare function isState<T>(cb: Callbag<any, T>): cb is State<T>; | ||
export declare const _Start = 0; | ||
export declare const _Data = 1; | ||
export declare const _End = 2; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports._End = exports._Data = exports._Start = exports.isLeaf = void 0; | ||
exports._End = exports._Data = exports._Start = exports.isState = exports.isLeaf = void 0; | ||
function isLeaf(c) { | ||
@@ -8,2 +8,12 @@ return !c || !c.subs; | ||
exports.isLeaf = isLeaf; | ||
function isState(cb) { | ||
return cb && typeof cb === 'function' && cb.length === 2 | ||
&& cb.get && typeof cb.get === 'function' && cb.get.length === 0 | ||
&& cb.set && typeof cb.set === 'function' && cb.set.length === 1 | ||
&& cb.clear && typeof cb.clear === 'function' && cb.clear.length === 0 | ||
&& cb.downstream && typeof cb.downstream === 'function' && cb.downstream.length === 0 | ||
&& cb.upstream && typeof cb.upstream === 'function' && cb.upstream.length === 0 | ||
&& cb.sub && typeof cb.sub === 'function' && cb.sub.length === 1; | ||
} | ||
exports.isState = isState; | ||
exports._Start = 0; | ||
@@ -10,0 +20,0 @@ exports._Data = 1; |
export { makeState } from './state'; | ||
export { trace, change, postTrace } from './trace'; | ||
export { Change, ChangeTrace, ChangeTraceLeaf, ChangeTraceNode, isLeaf, Downstream, Upstream, State } from './types'; | ||
export { Change, ChangeTrace, ChangeTraceLeaf, ChangeTraceNode, isLeaf, Downstream, Upstream, State, isState } from './types'; | ||
export declare function state<T>(t: T | undefined): import("./types").State<T>; | ||
export default state; |
export { makeState } from './state'; | ||
export { trace, change, postTrace } from './trace'; | ||
export { isLeaf } from './types'; | ||
export { isLeaf, isState } from './types'; | ||
import { makeState } from './state'; | ||
@@ -5,0 +5,0 @@ import { bouncer } from './util/bouncer'; |
@@ -1,2 +0,2 @@ | ||
import { Source, Sink, START, DATA, END } from 'callbag'; | ||
import { Source, Sink, START, DATA, END, Callbag } from 'callbag'; | ||
export declare type ChangeTraceLeaf<T> = { | ||
@@ -30,4 +30,5 @@ from: T | undefined; | ||
}; | ||
export declare function isState<T>(cb: Callbag<any, T>): cb is State<T>; | ||
export declare const _Start = 0; | ||
export declare const _Data = 1; | ||
export declare const _End = 2; |
export function isLeaf(c) { | ||
return !c || !c.subs; | ||
} | ||
export function isState(cb) { | ||
return cb && typeof cb === 'function' && cb.length === 2 | ||
&& cb.get && typeof cb.get === 'function' && cb.get.length === 0 | ||
&& cb.set && typeof cb.set === 'function' && cb.set.length === 1 | ||
&& cb.clear && typeof cb.clear === 'function' && cb.clear.length === 0 | ||
&& cb.downstream && typeof cb.downstream === 'function' && cb.downstream.length === 0 | ||
&& cb.upstream && typeof cb.upstream === 'function' && cb.upstream.length === 0 | ||
&& cb.sub && typeof cb.sub === 'function' && cb.sub.length === 1; | ||
} | ||
export const _Start = 0; | ||
@@ -5,0 +14,0 @@ export const _Data = 1; |
{ | ||
"name": "callbag-state", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"description": "Callbag-based State Management", | ||
@@ -5,0 +5,0 @@ "main": "dist/es5/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
74490
828