Socket
Socket
Sign inDemoInstall

@typescript-tea/core

Package Overview
Dependencies
0
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.5.1 to 0.6.0

8

CHANGELOG.md

@@ -8,4 +8,10 @@ # Change Log

## [Unreleased](https://github.com/typescript-tea/core/compare/v0.5.1...master)
## [Unreleased](https://github.com/typescript-tea/core/compare/v0.6.0...master)
## [0.6.0](https://github.com/typescript-tea/core/compare/v0.5.1...0.6.0) - 2022-07-05
### Added
- Do not call view()/render() when state has not changed (#14)
## [0.5.1](https://github.com/typescript-tea/core/compare/v0.5.0...0.5.1) - 2021-05-23

@@ -12,0 +18,0 @@

2

dist/core.js

@@ -1,2 +0,2 @@

function r(r){var t=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var n=t[r];if(!n)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return n}}function t(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function n(r,t){return void 0===t?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:t}}function e(r,t,n,o,i){if(void 0===i&&(i=void 0),"__internal"===o.home){var a=o;switch(a.type){case"Batched":return void a.list.flatMap(function(o){return e(r,t,n,o,i)});case"Mapped":return void e(r,t,n,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(o.home);t[o.home]||(t[o.home]={cmds:[],subs:[]}),(n?t[o.home].cmds:t[o.home].subs).push(i?(n?u.mapCmd:u.mapSub)(i,o):o)}}var o={__proto__:null,run:function(t,n,o,i){void 0===i&&(i=[]);var a,u=r(i),f=t.update,c=t.view,s=t.subscriptions,p={},l=[],v=!1,h=!1,d=[];function m(){if(v&&!h){for(h=!0;d.length>0;){var r=d.shift();r.dispatch(r.action)}h=!1}}function _(r){v&&g(f(r,a))}var b=function(r){return function(t){w(function(r){return function(t){if(v){var n=u(r),e=b(r);p[r]=n.onSelfAction(y,e,t,p[r])}}}(r),t)}},y=function(r){w(_,r)};function w(r,t){v&&(d.push({dispatch:r,action:t}),m())}function g(r){a=r[0];var t=r[1],n=s&&s(a),f={};t&&e(u,f,!0,t),n&&e(u,f,!1,n);var l=i,v=Array.isArray(l),h=0;for(l=v?l:l[Symbol.iterator]();;){var d,m;if(v){if(h>=l.length)break;m=l[h++]}else{if((h=l.next()).done)break;m=h.value}var _=m.home,w=null!=(d=f[_])?d:{cmds:[],subs:[]},g=w.cmds,k=w.subs,E=u(_);p[_]=E.onEffects(y,b(_),g,k,p[_])}o(c({state:a,dispatch:y}))}return function(){var r=i,t=Array.isArray(r),n=0;for(r=t?r:r[Symbol.iterator]();;){var e;if(t){if(n>=r.length)break;e=r[n++]}else{if((n=r.next()).done)break;e=n.value}l.push(e.setup(y,b(e.home)))}}(),v=!0,g(t.init(n)),m(),function(){v&&(v=!1,function(){var r=l,t=Array.isArray(r),n=0;for(r=t?r:r[Symbol.iterator]();;){var e;if(t){if(n>=r.length)break;e=r[n++]}else{if((n=r.next()).done)break;e=n.value}e()}}())}}},i=new Map;function a(r){return{type:"Ok",value:r}}function u(r){return{type:"Err",error:r}}var f=o,c={__proto__:null,map:function(r,t){var n=i.get(t),e=n&&n.get(r);if(e)return e;var o=function(n){return t(r(n))};return n||(n=new Map,i.set(t,n)),n.set(r,o),o}},s={__proto__:null,batch:function(r){return t(r)},map:function(r,t){return n(r,t)}},p={__proto__:null,Ok:a,Err:u,mapError:function(r,t){switch(t.type){case"Ok":return a(t.value);case"Err":return u(r(t.error));default:throw new Error("Invalid result type "+t)}}};exports.Cmd={__proto__:null,batch:function(r){return t(r)},map:function(r,t){return n(r,t)}},exports.Dispatch=c,exports.Program=f,exports.Result=p,exports.Sub=s,exports.createGetEffectManager=r;
function r(r){var t=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var n=t[r];if(!n)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return n}}function t(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function n(r,t){return void 0===t?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:t}}function e(r,t,n,o,i){if(void 0===i&&(i=void 0),"__internal"===o.home){var a=o;switch(a.type){case"Batched":return void a.list.flatMap(function(o){return e(r,t,n,o,i)});case"Mapped":return void e(r,t,n,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(o.home);t[o.home]||(t[o.home]={cmds:[],subs:[]}),(n?t[o.home].cmds:t[o.home].subs).push(i?(n?u.mapCmd:u.mapSub)(i,o):o)}}var o={__proto__:null,run:function(t,n,o,i){void 0===i&&(i=[]);var a,u=r(i),f=t.update,c=t.view,s=t.subscriptions,p={},l=[],v=!1,h=!1,d=[],m={};function _(){if(v&&!h){for(h=!0;d.length>0;){var r=d.shift();r.dispatch(r.action)}h=!1}}function b(r){v&&k(f(r,a))}var y=function(r){return function(t){g(function(r){return function(t){if(v){var n=u(r),e=y(r);p[r]=n.onSelfAction(w,e,t,p[r])}}}(r),t)}},w=function(r){g(b,r)};function g(r,t){v&&(d.push({dispatch:r,action:t}),_())}function k(r){a=r[0];var t=r[1],n=s&&s(a),f={};t&&e(u,f,!0,t),n&&e(u,f,!1,n);var l=i,v=Array.isArray(l),h=0;for(l=v?l:l[Symbol.iterator]();;){var d,_;if(v){if(h>=l.length)break;_=l[h++]}else{if((h=l.next()).done)break;_=h.value}var b=_.home,g=null!=(d=f[b])?d:{cmds:[],subs:[]},k=g.cmds,E=g.subs,M=u(b);p[b]=M.onEffects(w,y(b),k,E,p[b])}a!==m&&(m=a,o(c({state:a,dispatch:w})))}return function(){var r=i,t=Array.isArray(r),n=0;for(r=t?r:r[Symbol.iterator]();;){var e;if(t){if(n>=r.length)break;e=r[n++]}else{if((n=r.next()).done)break;e=n.value}l.push(e.setup(w,y(e.home)))}}(),v=!0,k(t.init(n)),_(),function(){v&&(v=!1,function(){var r=l,t=Array.isArray(r),n=0;for(r=t?r:r[Symbol.iterator]();;){var e;if(t){if(n>=r.length)break;e=r[n++]}else{if((n=r.next()).done)break;e=n.value}e()}}())}}},i=new Map;function a(r){return{type:"Ok",value:r}}function u(r){return{type:"Err",error:r}}var f=o,c={__proto__:null,map:function(r,t){var n=i.get(t),e=n&&n.get(r);if(e)return e;var o=function(n){return t(r(n))};return n||(n=new Map,i.set(t,n)),n.set(r,o),o}},s={__proto__:null,batch:function(r){return t(r)},map:function(r,t){return n(r,t)}},p={__proto__:null,Ok:a,Err:u,mapError:function(r,t){switch(t.type){case"Ok":return a(t.value);case"Err":return u(r(t.error));default:throw new Error("Invalid result type "+t)}}};exports.Cmd={__proto__:null,batch:function(r){return t(r)},map:function(r,t){return n(r,t)}},exports.Dispatch=c,exports.Program=f,exports.Result=p,exports.Sub=s,exports.createGetEffectManager=r;
//# sourceMappingURL=core.js.map

@@ -1,2 +0,2 @@

function r(r){var n=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var t=n[r];if(!t)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return t}}function n(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function t(r,n){return void 0===n?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:n}}function e(r,n,t,o,i){if(void 0===i&&(i=void 0),"__internal"===o.home){var a=o;switch(a.type){case"Batched":return void a.list.flatMap(function(o){return e(r,n,t,o,i)});case"Mapped":return void e(r,n,t,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(o.home);n[o.home]||(n[o.home]={cmds:[],subs:[]}),(t?n[o.home].cmds:n[o.home].subs).push(i?(t?u.mapCmd:u.mapSub)(i,o):o)}}var o={__proto__:null,run:function(n,t,o,i){void 0===i&&(i=[]);var a,u=r(i),f=n.update,c=n.view,s=n.subscriptions,l={},p=[],v=!1,h=!1,d=[];function m(){if(v&&!h){for(h=!0;d.length>0;){var r=d.shift();r.dispatch(r.action)}h=!1}}function _(r){v&&k(f(r,a))}var b=function(r){return function(n){w(function(r){return function(n){if(v){var t=u(r),e=b(r);l[r]=t.onSelfAction(y,e,n,l[r])}}}(r),n)}},y=function(r){w(_,r)};function w(r,n){v&&(d.push({dispatch:r,action:n}),m())}function k(r){a=r[0];var n=r[1],t=s&&s(a),f={};n&&e(u,f,!0,n),t&&e(u,f,!1,t);var p=i,v=Array.isArray(p),h=0;for(p=v?p:p[Symbol.iterator]();;){var d,m;if(v){if(h>=p.length)break;m=p[h++]}else{if((h=p.next()).done)break;m=h.value}var _=m.home,w=null!=(d=f[_])?d:{cmds:[],subs:[]},k=w.cmds,g=w.subs,E=u(_);l[_]=E.onEffects(y,b(_),k,g,l[_])}o(c({state:a,dispatch:y}))}return function(){var r=i,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}p.push(e.setup(y,b(e.home)))}}(),v=!0,k(n.init(t)),m(),function(){v&&(v=!1,function(){var r=p,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}e()}}())}}},i=new Map;function a(r){return{type:"Ok",value:r}}function u(r){return{type:"Err",error:r}}var f=o,c={__proto__:null,map:function(r,n){var t=i.get(n),e=t&&t.get(r);if(e)return e;var o=function(t){return n(r(t))};return t||(t=new Map,i.set(n,t)),t.set(r,o),o}},s={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},l={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},p={__proto__:null,Ok:a,Err:u,mapError:function(r,n){switch(n.type){case"Ok":return a(n.value);case"Err":return u(r(n.error));default:throw new Error("Invalid result type "+n)}}};export{s as Cmd,c as Dispatch,f as Program,p as Result,l as Sub,r as createGetEffectManager};
function r(r){var n=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var t=n[r];if(!t)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return t}}function n(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function t(r,n){return void 0===n?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:n}}function e(r,n,t,o,i){if(void 0===i&&(i=void 0),"__internal"===o.home){var a=o;switch(a.type){case"Batched":return void a.list.flatMap(function(o){return e(r,n,t,o,i)});case"Mapped":return void e(r,n,t,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(o.home);n[o.home]||(n[o.home]={cmds:[],subs:[]}),(t?n[o.home].cmds:n[o.home].subs).push(i?(t?u.mapCmd:u.mapSub)(i,o):o)}}var o={__proto__:null,run:function(n,t,o,i){void 0===i&&(i=[]);var a,u=r(i),f=n.update,c=n.view,s=n.subscriptions,l={},p=[],v=!1,h=!1,d=[],m={};function _(){if(v&&!h){for(h=!0;d.length>0;){var r=d.shift();r.dispatch(r.action)}h=!1}}function b(r){v&&g(f(r,a))}var y=function(r){return function(n){k(function(r){return function(n){if(v){var t=u(r),e=y(r);l[r]=t.onSelfAction(w,e,n,l[r])}}}(r),n)}},w=function(r){k(b,r)};function k(r,n){v&&(d.push({dispatch:r,action:n}),_())}function g(r){a=r[0];var n=r[1],t=s&&s(a),f={};n&&e(u,f,!0,n),t&&e(u,f,!1,t);var p=i,v=Array.isArray(p),h=0;for(p=v?p:p[Symbol.iterator]();;){var d,_;if(v){if(h>=p.length)break;_=p[h++]}else{if((h=p.next()).done)break;_=h.value}var b=_.home,k=null!=(d=f[b])?d:{cmds:[],subs:[]},g=k.cmds,E=k.subs,M=u(b);l[b]=M.onEffects(w,y(b),g,E,l[b])}a!==m&&(m=a,o(c({state:a,dispatch:w})))}return function(){var r=i,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}p.push(e.setup(w,y(e.home)))}}(),v=!0,g(n.init(t)),_(),function(){v&&(v=!1,function(){var r=p,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}e()}}())}}},i=new Map;function a(r){return{type:"Ok",value:r}}function u(r){return{type:"Err",error:r}}var f=o,c={__proto__:null,map:function(r,n){var t=i.get(n),e=t&&t.get(r);if(e)return e;var o=function(t){return n(r(t))};return t||(t=new Map,i.set(n,t)),t.set(r,o),o}},s={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},l={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},p={__proto__:null,Ok:a,Err:u,mapError:function(r,n){switch(n.type){case"Ok":return a(n.value);case"Err":return u(r(n.error));default:throw new Error("Invalid result type "+n)}}};export{s as Cmd,c as Dispatch,f as Program,p as Result,l as Sub,r as createGetEffectManager};
//# sourceMappingURL=core.m.js.map

@@ -1,2 +0,2 @@

function r(r){var n=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var t=n[r];if(!t)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return t}}function n(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function t(r,n){return void 0===n?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:n}}function e(r,n,t,o,i){if(void 0===i&&(i=void 0),"__internal"===o.home){var a=o;switch(a.type){case"Batched":return void a.list.flatMap(function(o){return e(r,n,t,o,i)});case"Mapped":return void e(r,n,t,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(o.home);n[o.home]||(n[o.home]={cmds:[],subs:[]}),(t?n[o.home].cmds:n[o.home].subs).push(i?(t?u.mapCmd:u.mapSub)(i,o):o)}}var o={__proto__:null,run:function(n,t,o,i){void 0===i&&(i=[]);var a,u=r(i),f=n.update,c=n.view,s=n.subscriptions,l={},p=[],v=!1,h=!1,d=[];function m(){if(v&&!h){for(h=!0;d.length>0;){var r=d.shift();r.dispatch(r.action)}h=!1}}function _(r){v&&k(f(r,a))}var b=function(r){return function(n){w(function(r){return function(n){if(v){var t=u(r),e=b(r);l[r]=t.onSelfAction(y,e,n,l[r])}}}(r),n)}},y=function(r){w(_,r)};function w(r,n){v&&(d.push({dispatch:r,action:n}),m())}function k(r){a=r[0];var n=r[1],t=s&&s(a),f={};n&&e(u,f,!0,n),t&&e(u,f,!1,t);var p=i,v=Array.isArray(p),h=0;for(p=v?p:p[Symbol.iterator]();;){var d,m;if(v){if(h>=p.length)break;m=p[h++]}else{if((h=p.next()).done)break;m=h.value}var _=m.home,w=null!=(d=f[_])?d:{cmds:[],subs:[]},k=w.cmds,g=w.subs,E=u(_);l[_]=E.onEffects(y,b(_),k,g,l[_])}o(c({state:a,dispatch:y}))}return function(){var r=i,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}p.push(e.setup(y,b(e.home)))}}(),v=!0,k(n.init(t)),m(),function(){v&&(v=!1,function(){var r=p,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}e()}}())}}},i=new Map;function a(r){return{type:"Ok",value:r}}function u(r){return{type:"Err",error:r}}var f=o,c={__proto__:null,map:function(r,n){var t=i.get(n),e=t&&t.get(r);if(e)return e;var o=function(t){return n(r(t))};return t||(t=new Map,i.set(n,t)),t.set(r,o),o}},s={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},l={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},p={__proto__:null,Ok:a,Err:u,mapError:function(r,n){switch(n.type){case"Ok":return a(n.value);case"Err":return u(r(n.error));default:throw new Error("Invalid result type "+n)}}};export{s as Cmd,c as Dispatch,f as Program,p as Result,l as Sub,r as createGetEffectManager};
function r(r){var n=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var t=n[r];if(!t)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return t}}function n(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function t(r,n){return void 0===n?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:n}}function e(r,n,t,o,i){if(void 0===i&&(i=void 0),"__internal"===o.home){var a=o;switch(a.type){case"Batched":return void a.list.flatMap(function(o){return e(r,n,t,o,i)});case"Mapped":return void e(r,n,t,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(o.home);n[o.home]||(n[o.home]={cmds:[],subs:[]}),(t?n[o.home].cmds:n[o.home].subs).push(i?(t?u.mapCmd:u.mapSub)(i,o):o)}}var o={__proto__:null,run:function(n,t,o,i){void 0===i&&(i=[]);var a,u=r(i),f=n.update,c=n.view,s=n.subscriptions,l={},p=[],v=!1,h=!1,d=[],m={};function _(){if(v&&!h){for(h=!0;d.length>0;){var r=d.shift();r.dispatch(r.action)}h=!1}}function b(r){v&&g(f(r,a))}var y=function(r){return function(n){k(function(r){return function(n){if(v){var t=u(r),e=y(r);l[r]=t.onSelfAction(w,e,n,l[r])}}}(r),n)}},w=function(r){k(b,r)};function k(r,n){v&&(d.push({dispatch:r,action:n}),_())}function g(r){a=r[0];var n=r[1],t=s&&s(a),f={};n&&e(u,f,!0,n),t&&e(u,f,!1,t);var p=i,v=Array.isArray(p),h=0;for(p=v?p:p[Symbol.iterator]();;){var d,_;if(v){if(h>=p.length)break;_=p[h++]}else{if((h=p.next()).done)break;_=h.value}var b=_.home,k=null!=(d=f[b])?d:{cmds:[],subs:[]},g=k.cmds,E=k.subs,M=u(b);l[b]=M.onEffects(w,y(b),g,E,l[b])}a!==m&&(m=a,o(c({state:a,dispatch:w})))}return function(){var r=i,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}p.push(e.setup(w,y(e.home)))}}(),v=!0,g(n.init(t)),_(),function(){v&&(v=!1,function(){var r=p,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}e()}}())}}},i=new Map;function a(r){return{type:"Ok",value:r}}function u(r){return{type:"Err",error:r}}var f=o,c={__proto__:null,map:function(r,n){var t=i.get(n),e=t&&t.get(r);if(e)return e;var o=function(t){return n(r(t))};return t||(t=new Map,i.set(n,t)),t.set(r,o),o}},s={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},l={__proto__:null,batch:function(r){return n(r)},map:function(r,n){return t(r,n)}},p={__proto__:null,Ok:a,Err:u,mapError:function(r,n){switch(n.type){case"Ok":return a(n.value);case"Err":return u(r(n.error));default:throw new Error("Invalid result type "+n)}}};export{s as Cmd,c as Dispatch,f as Program,p as Result,l as Sub,r as createGetEffectManager};
//# sourceMappingURL=core.modern.js.map

@@ -1,2 +0,2 @@

!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((r=r||self).core={})}(this,function(r){function n(r){var n=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var t=n[r];if(!t)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return t}}function t(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function e(r,n){return void 0===n?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:n}}function o(r,n,t,e,i){if(void 0===i&&(i=void 0),"__internal"===e.home){var a=e;switch(a.type){case"Batched":return void a.list.flatMap(function(e){return o(r,n,t,e,i)});case"Mapped":return void o(r,n,t,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(e.home);n[e.home]||(n[e.home]={cmds:[],subs:[]}),(t?n[e.home].cmds:n[e.home].subs).push(i?(t?u.mapCmd:u.mapSub)(i,e):e)}}var i={__proto__:null,run:function(r,t,e,i){void 0===i&&(i=[]);var a,u=n(i),f=r.update,c=r.view,s=r.subscriptions,p={},l=[],d=!1,v=!1,h=[];function m(){if(d&&!v){for(v=!0;h.length>0;){var r=h.shift();r.dispatch(r.action)}v=!1}}function _(r){d&&g(f(r,a))}var b=function(r){return function(n){w(function(r){return function(n){if(d){var t=u(r),e=b(r);p[r]=t.onSelfAction(y,e,n,p[r])}}}(r),n)}},y=function(r){w(_,r)};function w(r,n){d&&(h.push({dispatch:r,action:n}),m())}function g(r){a=r[0];var n=r[1],t=s&&s(a),f={};n&&o(u,f,!0,n),t&&o(u,f,!1,t);var l=i,d=Array.isArray(l),v=0;for(l=d?l:l[Symbol.iterator]();;){var h,m;if(d){if(v>=l.length)break;m=l[v++]}else{if((v=l.next()).done)break;m=v.value}var _=m.home,w=null!=(h=f[_])?h:{cmds:[],subs:[]},g=w.cmds,k=w.subs,E=u(_);p[_]=E.onEffects(y,b(_),g,k,p[_])}e(c({state:a,dispatch:y}))}return function(){var r=i,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}l.push(e.setup(y,b(e.home)))}}(),d=!0,g(r.init(t)),m(),function(){d&&(d=!1,function(){var r=l,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}e()}}())}}},a=new Map;function u(r){return{type:"Ok",value:r}}function f(r){return{type:"Err",error:r}}var c=i,s={__proto__:null,map:function(r,n){var t=a.get(n),e=t&&t.get(r);if(e)return e;var o=function(t){return n(r(t))};return t||(t=new Map,a.set(n,t)),t.set(r,o),o}},p={__proto__:null,batch:function(r){return t(r)},map:function(r,n){return e(r,n)}},l={__proto__:null,Ok:u,Err:f,mapError:function(r,n){switch(n.type){case"Ok":return u(n.value);case"Err":return f(r(n.error));default:throw new Error("Invalid result type "+n)}}};r.Cmd={__proto__:null,batch:function(r){return t(r)},map:function(r,n){return e(r,n)}},r.Dispatch=s,r.Program=c,r.Result=l,r.Sub=p,r.createGetEffectManager=n});
!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((r=r||self).core={})}(this,function(r){function n(r){var n=function(r){return Object.fromEntries(r.map(function(r){return[r.home,r]}))}(r);return function(r){var t=n[r];if(!t)throw new Error("Could not find effect manager '"+r+"'. Make sure it was passed to the runtime.");return t}}function t(r){return{home:"__internal",type:"Batched",list:r.filter(function(r){return void 0!==r})}}function e(r,n){return void 0===n?void 0:{home:"__internal",type:"Mapped",actionMapper:r,original:n}}function o(r,n,t,e,i){if(void 0===i&&(i=void 0),"__internal"===e.home){var a=e;switch(a.type){case"Batched":return void a.list.flatMap(function(e){return o(r,n,t,e,i)});case"Mapped":return void o(r,n,t,a.original,i?function(r){return i(a.actionMapper(r))}:a.actionMapper);default:throw new Error("Invalid result type "+a)}}else{var u=r(e.home);n[e.home]||(n[e.home]={cmds:[],subs:[]}),(t?n[e.home].cmds:n[e.home].subs).push(i?(t?u.mapCmd:u.mapSub)(i,e):e)}}var i={__proto__:null,run:function(r,t,e,i){void 0===i&&(i=[]);var a,u=n(i),f=r.update,c=r.view,s=r.subscriptions,p={},l=[],d=!1,v=!1,h=[],m={};function _(){if(d&&!v){for(v=!0;h.length>0;){var r=h.shift();r.dispatch(r.action)}v=!1}}function b(r){d&&k(f(r,a))}var y=function(r){return function(n){g(function(r){return function(n){if(d){var t=u(r),e=y(r);p[r]=t.onSelfAction(w,e,n,p[r])}}}(r),n)}},w=function(r){g(b,r)};function g(r,n){d&&(h.push({dispatch:r,action:n}),_())}function k(r){a=r[0];var n=r[1],t=s&&s(a),f={};n&&o(u,f,!0,n),t&&o(u,f,!1,t);var l=i,d=Array.isArray(l),v=0;for(l=d?l:l[Symbol.iterator]();;){var h,_;if(d){if(v>=l.length)break;_=l[v++]}else{if((v=l.next()).done)break;_=v.value}var b=_.home,g=null!=(h=f[b])?h:{cmds:[],subs:[]},k=g.cmds,E=g.subs,M=u(b);p[b]=M.onEffects(w,y(b),k,E,p[b])}a!==m&&(m=a,e(c({state:a,dispatch:w})))}return function(){var r=i,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}l.push(e.setup(w,y(e.home)))}}(),d=!0,k(r.init(t)),_(),function(){d&&(d=!1,function(){var r=l,n=Array.isArray(r),t=0;for(r=n?r:r[Symbol.iterator]();;){var e;if(n){if(t>=r.length)break;e=r[t++]}else{if((t=r.next()).done)break;e=t.value}e()}}())}}},a=new Map;function u(r){return{type:"Ok",value:r}}function f(r){return{type:"Err",error:r}}var c=i,s={__proto__:null,map:function(r,n){var t=a.get(n),e=t&&t.get(r);if(e)return e;var o=function(t){return n(r(t))};return t||(t=new Map,a.set(n,t)),t.set(r,o),o}},p={__proto__:null,batch:function(r){return t(r)},map:function(r,n){return e(r,n)}},l={__proto__:null,Ok:u,Err:f,mapError:function(r,n){switch(n.type){case"Ok":return u(n.value);case"Err":return f(r(n.error));default:throw new Error("Invalid result type "+n)}}};r.Cmd={__proto__:null,batch:function(r){return t(r)},map:function(r,n){return e(r,n)}},r.Dispatch=s,r.Program=c,r.Result=l,r.Sub=p,r.createGetEffectManager=n});
//# sourceMappingURL=core.umd.js.map
{
"name": "@typescript-tea/core",
"version": "0.5.1",
"version": "0.6.0",
"description": "The Elm Architecture for typescript",

@@ -5,0 +5,0 @@ "main": "dist/core.js",

@@ -76,3 +76,3 @@ /* eslint-disable functional/prefer-readonly-type */

* onEffects must be called with undefined subscriptions becuase
* the previous call may have had subscriptions so teh effect
* the previous call may have had subscriptions so the effect
* manager must know to clear those subscriptions when undefined

@@ -103,1 +103,50 @@ * is returned from program.subscription().

});
/**
* If state has not changed then calling render is not useful.
* In some circumstances there are actions that happen that
* the application does not want to handle. In those cases the application
* returns the old state, however calling view() and render() in that case
* will case uncecessary overheadas it will be called with the same state as before
* and therefor return the same result as before sinc view must be a pure function.
*/
test("Do not call view/render if state has not changed", () => {
// Create mocks
const mp = createMockProgram();
const mr = createMockRender();
// Setup mocks
mp.init.mockImplementation(() => [1]);
mp.update.mockImplementation(() => [1]);
mp.view.mockImplementationOnce(({ state, dispatch }) => {
expect(state).toEqual(1);
dispatch("action");
});
// Run
run(mp, undefined, mr, []);
expect(mp.init).toBeCalledTimes(1);
expect(mp.update).toBeCalledTimes(1);
expect(mp.view).toBeCalledTimes(1);
expect(mr).toBeCalledTimes(1);
});
/**
* When the state changes, view()/render() should be called.
*/
test("Do call view/render if state has changed", () => {
// Create mocks
const mp = createMockProgram();
const mr = createMockRender();
// Setup mocks
mp.init.mockImplementation(() => [1]);
mp.update.mockImplementation(() => [2]);
mp.view.mockImplementationOnce(({ state, dispatch }) => {
expect(state).toEqual(1);
dispatch("action");
});
// Run
run(mp, undefined, mr, []);
expect(mp.init).toBeCalledTimes(1);
expect(mp.update).toBeCalledTimes(1);
expect(mp.view).toBeCalledTimes(2);
expect(mr).toBeCalledTimes(2);
});

@@ -44,2 +44,4 @@ import { Cmd } from "./cmd";

}> = [];
// Init to an object that the appliction has no reference to so intial change always runs
let prevState = {};

@@ -116,3 +118,6 @@ function processActions(): void {

}
render(view({ state, dispatch: enqueueProgramAction }));
if (state !== prevState) {
prevState = state;
render(view({ state, dispatch: enqueueProgramAction }));
}
}

@@ -119,0 +124,0 @@

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

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc