garfio
Version:
extending Hookleton Pattern namespaces and more
2 lines (1 loc) • 3.46 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react"),hookleton=require("hookleton");function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}function _objectWithoutProperties(e,t){if(null==e)return{};var r,o,n=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?_assertThisInitialized(e):t}function createHook(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];var n=new Hookleton(e,r);function i(){return n.use.apply(n,arguments)}return i.get=function(){return n.get.call(n)},i.Container=createContainer(n),i}function createContainer(e){var t=function(t){var r=t.children,o=_objectWithoutProperties(t,["children"]);return react.createElement(react.Fragment,null,react.createElement(_hookleton,{hookleton:e,initial:o}),r,react.createElement(__hookleton,{hookleton:e}))};return t.displayName="HookletonContainer",t}var _hookleton=function(e){var t=e.hookleton,r=e.initial;return t._useH({initial:r}),null},__hookleton=function(e){return e.hookleton.__useH(),null},Hookleton=function(e){function t(e,r){var o;return _classCallCheck(this,t),(o=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e,r)))._cx=[],o}return _inherits(t,hookleton.Hookleton),_createClass(t,[{key:"_useH",value:function(e){var t=this,r=react.useMemo(function(){return t._initCtnr(e)},[]);return this._use(r)}},{key:"_initCtnr",value:function(e){if(e.up=new Map,0!==Object.keys(e.initial).length){var t=e.initial.initialArg;e.arg=t?Array.isArray(t)?t:[t]:[e.initial]}else e.arg=this._arg;return this._cx.push(e),e}},{key:"__useH",value:function(){var e=this;return react.useMemo(function(){return e._cx.pop()},[])}},{key:"use",value:function(){var e=this,t=react.useMemo(function(){var t=e._cx[e._cx.length-1];return t||(console.error("[Hookleton/garfio] missing 'Container'"),{out:[]})},[]);return this.useNonHost(t,arguments)}},{key:"get",value:function(){var e=this._cx[this._cx.length-1];return e?e.out:[]}}]),t}();exports.Hookleton=Hookleton,exports.createHook=createHook;