react-ioc
Version:
Hierarchical Dependency Injection for React
3 lines (2 loc) • 3.04 kB
JavaScript
;function n(n){return n&&"object"==typeof n&&"default"in n?n.default:n}Object.defineProperty(exports,"__esModule",{value:!0}),require("reflect-metadata");var t=require("tslib"),r=n(require("hoist-non-react-statics")),e=require("react");function u(n){return"function"==typeof n}function o(n){return n&&"object"==typeof n}var i=e.createContext(null),f=function(n){function r(){return null!==n&&n.apply(this,arguments)||this}return t.__extends(r,n),r}(e.Component);function c(n){var t=n[l];return t||((t=a||n.context)instanceof f?(n[l]=t,t):null)}var a=null,l="function"==typeof Symbol?Symbol():"__injector__";function s(n,t){for(v.length>0&&(v.forEach(function(n){n()}),v.length=0);n;){var r=n.n.get(t);if(void 0!==r)return r;var e=n.t.get(t);if(e){var u=a;a=n;try{r=e(n)}finally{a=u}return n.n.set(t,r),r}n=n.r}}var v=[];function p(n,t){return u(t)?b(n,t):t?e(n,t):(r=n,e);var r;function e(n,t){n.constructor.contextType=i,r||(r=Reflect.getMetadata("design:type",n,t));var e={configurable:!0,enumerable:!0,get:function(){var n=b(this,r);return Object.defineProperty(this,t,{enumerable:!0,writable:!0,value:n}),n},set:function(n){Object.defineProperty(this,t,{enumerable:!0,writable:!0,value:n})}};return Object.defineProperty(n,t,e),e}}function b(n,t){return s(c(n),t)}function x(n){return m(function(t){var r=new n;return r[l]||(r[l]=t),r})}function y(n,t){return m(t?function(r){return t.apply(void 0,n.map(function(n){return s(r,n)}))}:n)}function h(n){return m(function(){return n})}function _(n){return m(function(t){return s(t,n)})}var d="function"==typeof Symbol?Symbol():"__binding__";function m(n){return n[d]=!0,n}function j(n,t){t.forEach(function(t){var r,e,u;Array.isArray(t)?(e=t[0],u=void 0===(r=t[1])?e:r):e=u=t,n.set(e,u[d]?u:x(u))})}var w=function(){for(var n=[],c=0;c<arguments.length;c++)n[c]=arguments[c];return function(c){var a=new Map;j(a,n);var l=function(n){function r(){var t=null!==n&&n.apply(this,arguments)||this;return t.r=t.context,t.t=a,t.n=new Map,t}return t.__extends(r,n),r.prototype.componentWillUnmount=function(){this.n.forEach(function(n){o(n)&&u(n.dispose)&&n.dispose()})},r.prototype.render=function(){return e.createElement(i.Provider,{value:this},e.createElement(c,this.props))},r.register=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];j(a,n)},r.WrappedComponent=c,r}(f);return l.contextType=i,r(l,c)}},g=function(n,t){return function(r){return v.push(function(){n().register(t?[r,t]:r)}),r}};function q(n){var t=e.useRef(null),r=e.useContext(i);return t.current||(t.current=s(r,n))}function O(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=e.useRef(null),u=e.useContext(i);return r.current||(r.current=n.map(function(n){return s(u,n)}))}exports.inject=p,exports.provider=w,exports.registerIn=g,exports.Inject=p,exports.Provider=w,exports.RegisterIn=g,exports.InjectorContext=i,exports.toClass=x,exports.toFactory=y,exports.toExisting=_,exports.toValue=h,exports.useInstance=q,exports.useInstances=O;
//# sourceMappingURL=index.min.js.map