@rematch/select
Version:
Selectors plugin for Rematch
3 lines (2 loc) • 1.53 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("reselect");Object.defineProperty(exports,"createSelector",{enumerable:!0,get:function(){return e.createSelector}}),Object.defineProperty(exports,"createStructuredSelector",{enumerable:!0,get:function(){return e.createStructuredSelector}}),exports.default=function(t){void 0===t&&(t={});var r,n,c=t.sliceState||function(e,t){return e[t.name||""]},u=t.selectorCreator||e.createSelector,o=function(e){return function(t){var r=this;return u((function(e){return e}),(function(n){return e.call(r,t,n)}))}},i=(r=!1,n=new Set,{add:function(e){e.forEach(r?function(e){return e()}:function(e){return n.add(e)})},finish:function(e){n.delete(e)},startBuilding:function(){r=!0,n.forEach((function(e){return e()}))}}),f=function t(r,n){void 0===n&&(n=e.createStructuredSelector);var c=function(e,u){return(c=n(r(t)))(e,u)};return function(e,t){return c(e,t)}};return{exposed:{select:f,sliceState:c,selectorCreator:u},onModel:function(e){f[e.name]={};var t="function"==typeof e.selectors?e.selectors(function(e){return function(t){return"function"==typeof t?u((function(t){return c(t,e)}),t):c(t,e)}}(e),u,o):e.selectors;i.add(Object.keys(t||{}).map((function(r){var n=function n(){return i.finish(n),delete f[e.name][r],f[e.name][r]=t[r].call(f[e.name],f)};return Object.defineProperty(f[e.name],r,{configurable:!0,get:function(){return n()}}),n})))},onStoreCreated:function(e){i.startBuilding(),e.select=f}}};
//# sourceMappingURL=select.cjs.production.min.js.map