UNPKG

garfio

Version:

extending Hookleton Pattern namespaces and more

2 lines (1 loc) 971 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react"),hookleton=require("hookleton");function createHook(){var e,t=hookleton.createHook.apply(null,arguments);function r(){return react.useMemo(function(){return!e&&(e=!0)},[])?(react.useEffect(function(){return function(){return e=!1}},[]),t.use()):t()}return r.get=t.get,r}var stores=new Map;function createStore(e){for(var t={},r=arguments.length,o=new Array(r>1?r-1:0),n=1;n<r;n++)o[n-1]=arguments[n];return stores.set(t,createHook.apply(null,[e].concat(o))),t.get=function(){return getStore(t).get()},t.delete=function(){return stores.delete(t)},t}function getStore(e){return stores.get(e)}function useStore(e){for(var t=getStore(e),r=arguments.length,o=new Array(r>1?r-1:0),n=1;n<r;n++)o[n-1]=arguments[n];return t?t.apply(null,o):console.error("[Garfio/store] the store ".concat(JSON.stringify(e)," was not found"))}exports.createStore=createStore,exports.useStore=useStore;