react-decoupler
Advanced tools
Comparing version 0.3.0 to 0.3.1
@@ -187,4 +187,6 @@ (function (global, factory) { | ||
return ServiceLocator; | ||
}(); | ||
}(); // TODO: For backwards compat. Remove this before 1.0. | ||
var ServiceInjector = ServiceLocator; | ||
function createCommonjsModule(fn, module) { | ||
@@ -573,5 +575,11 @@ return module = { exports: {} }, fn(module, module.exports), module.exports; | ||
locator = _ref.locator, | ||
injector = _ref.injector, | ||
value = _ref.value, | ||
children = _ref.children; | ||
if (injector) { | ||
console.warn('DecouplerProvider "injector" prop is deprecated. Use "locator".'); | ||
locator = injector; | ||
} | ||
if (!services && !locator) { | ||
@@ -585,3 +593,5 @@ throw new Error('Must provide services or locator prop to DecouplerProvider.'); | ||
}, children); | ||
} | ||
} // TODO: For backwards compat. Remove this before 1.0. | ||
var InjectorProvider = DecouplerProvider; | ||
/** | ||
@@ -727,4 +737,6 @@ * @name: withServices | ||
exports.DecouplerProvider = DecouplerProvider; | ||
exports.InjectorProvider = InjectorProvider; | ||
exports.LocateServices = LocateServices; | ||
exports.Lookup = Lookup; | ||
exports.ServiceInjector = ServiceInjector; | ||
exports.ServiceLocator = ServiceLocator; | ||
@@ -731,0 +743,0 @@ exports.useLocator = useLocator; |
@@ -1,2 +0,2 @@ | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],r):r((e=e||self).ReactDecoupler={},e.React,e.PropTypes)}(this,(function(e,r,t){"use strict";function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(){return(n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e}).apply(this,arguments)}function i(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.__proto__=r}r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var s=function(e){return e.toString?e.toString():e},c=Symbol("Locator Lookup Symbol"),a=function(){function e(){var e=this;o(this,"_lookup",(function(r){e._deps.has(r),s(r);var t=e._deps.get(r),o=t.service,n=t.options;if(n.withParams){if(!e._boundLookups.has(r)){var i=e._makeDepArgs(n);e._boundLookups.set(r,o.bind.apply(o,[null].concat(i)))}var c=e._boundLookups.get(r);return n.asInstance?new c:c}return n.asInstance?new o:o})),o(this,"_makeDepArgs",(function(r){return Array.isArray(r.withParams)?r.withParams.map((function(r){return"object"==typeof r&&null!=r[c]?e._lookup(r[c]):r})):[]})),this._deps=new Map,this._boundLookups=new Map}e.fromServices=function(r){var t=new e;return Object.keys(r).forEach((function(e){t.register(e,r[e])})),t};var r=e.prototype;return r.clearDependencyCache=function(){this._boundLookups=new Map},r.register=function(e,r,t){if(void 0===t&&(t={}),this._deps.has(e)&&!t.allowOverwrite)throw new Error("Service key already used: "+s(e));if(t.withParams&&"function"!=typeof r)throw new Error('Cannot use "withParams" option with '+e+" of type "+typeof r+"; must be function or class.");this._deps.set(e,{service:r,options:t})},r.resolve=function(e){var r=this;if(Array.isArray(e))return e.map(this._lookup);if(e&&"object"==typeof e)return Object.entries(e).reduce((function(e,t){var o=t[0];return e[t[1]]=r._lookup(o),e}),{});throw new Error("Unsupported dependency list. Only Arrays and Objects are supported. Got: "+JSON.stringify(e))},e}();function u(e,r){return e(r={exports:{}},r.exports),r.exports | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],r):r((e=e||self).ReactDecoupler={},e.React,e.PropTypes)}(this,(function(e,r,t){"use strict";function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(){return(n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e}).apply(this,arguments)}function i(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.__proto__=r}r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var s=function(e){return e.toString?e.toString():e},c=Symbol("Locator Lookup Symbol"),a=function(){function e(){var e=this;o(this,"_lookup",(function(r){e._deps.has(r),s(r);var t=e._deps.get(r),o=t.service,n=t.options;if(n.withParams){if(!e._boundLookups.has(r)){var i=e._makeDepArgs(n);e._boundLookups.set(r,o.bind.apply(o,[null].concat(i)))}var c=e._boundLookups.get(r);return n.asInstance?new c:c}return n.asInstance?new o:o})),o(this,"_makeDepArgs",(function(r){return Array.isArray(r.withParams)?r.withParams.map((function(r){return"object"==typeof r&&null!=r[c]?e._lookup(r[c]):r})):[]})),this._deps=new Map,this._boundLookups=new Map}e.fromServices=function(r){var t=new e;return Object.keys(r).forEach((function(e){t.register(e,r[e])})),t};var r=e.prototype;return r.clearDependencyCache=function(){this._boundLookups=new Map},r.register=function(e,r,t){if(void 0===t&&(t={}),this._deps.has(e)&&!t.allowOverwrite)throw new Error("Service key already used: "+s(e));if(t.withParams&&"function"!=typeof r)throw new Error('Cannot use "withParams" option with '+e+" of type "+typeof r+"; must be function or class.");this._deps.set(e,{service:r,options:t})},r.resolve=function(e){var r=this;if(Array.isArray(e))return e.map(this._lookup);if(e&&"object"==typeof e)return Object.entries(e).reduce((function(e,t){var o=t[0];return e[t[1]]=r._lookup(o),e}),{});throw new Error("Unsupported dependency list. Only Arrays and Objects are supported. Got: "+JSON.stringify(e))},e}(),u=a;function p(e,r){return e(r={exports:{}},r.exports),r.exports | ||
/** @license React v16.13.1 | ||
@@ -9,3 +9,3 @@ * react-is.production.min.js | ||
* LICENSE file in the root directory of this source tree. | ||
*/}var p="function"==typeof Symbol&&Symbol.for,f=p?Symbol.for("react.element"):60103,l=p?Symbol.for("react.portal"):60106,y=p?Symbol.for("react.fragment"):60107,d=p?Symbol.for("react.strict_mode"):60108,m=p?Symbol.for("react.profiler"):60114,v=p?Symbol.for("react.provider"):60109,b=p?Symbol.for("react.context"):60110,h=p?Symbol.for("react.async_mode"):60111,w=p?Symbol.for("react.concurrent_mode"):60111,S=p?Symbol.for("react.forward_ref"):60112,P=p?Symbol.for("react.suspense"):60113,g=p?Symbol.for("react.suspense_list"):60120,O=p?Symbol.for("react.memo"):60115,$=p?Symbol.for("react.lazy"):60116,x=p?Symbol.for("react.block"):60121,_=p?Symbol.for("react.fundamental"):60117,C=p?Symbol.for("react.responder"):60118,M=p?Symbol.for("react.scope"):60119;function j(e){if("object"==typeof e&&null!==e){var r=e.$$typeof;switch(r){case f:switch(e=e.type){case h:case w:case y:case m:case d:case P:return e;default:switch(e=e&&e.$$typeof){case b:case S:case $:case O:case v:return e;default:return r}}case l:return r}}}function k(e){return j(e)===w}var E={AsyncMode:h,ConcurrentMode:w,ContextConsumer:b,ContextProvider:v,Element:f,ForwardRef:S,Fragment:y,Lazy:$,Memo:O,Portal:l,Profiler:m,StrictMode:d,Suspense:P,isAsyncMode:function(e){return k(e)||j(e)===h},isConcurrentMode:k,isContextConsumer:function(e){return j(e)===b},isContextProvider:function(e){return j(e)===v},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===f},isForwardRef:function(e){return j(e)===S},isFragment:function(e){return j(e)===y},isLazy:function(e){return j(e)===$},isMemo:function(e){return j(e)===O},isPortal:function(e){return j(e)===l},isProfiler:function(e){return j(e)===m},isStrictMode:function(e){return j(e)===d},isSuspense:function(e){return j(e)===P},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===y||e===w||e===m||e===d||e===P||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===$||e.$$typeof===O||e.$$typeof===v||e.$$typeof===b||e.$$typeof===S||e.$$typeof===_||e.$$typeof===C||e.$$typeof===M||e.$$typeof===x)},typeOf:j},L=u((function(e,r){0})),A=(L.AsyncMode,L.ConcurrentMode,L.ContextConsumer,L.ContextProvider,L.Element,L.ForwardRef,L.Fragment,L.Lazy,L.Memo,L.Portal,L.Profiler,L.StrictMode,L.Suspense,L.isAsyncMode,L.isConcurrentMode,L.isContextConsumer,L.isContextProvider,L.isElement,L.isForwardRef,L.isFragment,L.isLazy,L.isMemo,L.isPortal,L.isProfiler,L.isStrictMode,L.isSuspense,L.isValidElementType,L.typeOf,u((function(e){e.exports=E}))),T={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},D={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},F={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},R={};function N(e){return A.isMemo(e)?F:R[e.$$typeof]||T}R[A.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},R[A.Memo]=F;var z=Object.defineProperty,q=Object.getOwnPropertyNames,I=Object.getOwnPropertySymbols,V=Object.getOwnPropertyDescriptor,G=Object.getPrototypeOf,H=Object.prototype;var J=function e(r,t,o){if("string"!=typeof t){if(H){var n=G(t);n&&n!==H&&e(r,n,o)}var i=q(t);I&&(i=i.concat(I(t)));for(var s=N(r),c=N(t),a=0;a<i.length;++a){var u=i[a];if(!(D[u]||o&&o[u]||c&&c[u]||s&&s[u])){var p=V(t,u);try{z(r,u,p)}catch(e){}}}}return r},U=r.createContext();var B=function(e){function r(){return e.apply(this,arguments)||this}return i(r,e),r.prototype.render=function(){var e=this.context;if(!e)throw new Error("Must be used inside a DecouplerProvider");var r=this.props,t=r.children,o=r.deps;return t(e.resolve(o))},r}(r.Component);function K(){if(!r.useContext)throw new Error("Hooks not found on React. Are you using React v16.8 or greater?");var e=r.useContext(U);if(!e)throw new Error("Must be used inside a DecouplerProvider");return e}o(B,"contextType",U),o(B,"propTypes",{children:t.func.isRequired,deps:t.oneOfType([t.arrayOf(t.String),t.objectOf(t.String)])}),e.DecouplerProvider=function(e){var t=e.services,o=e.locator,n=(e.value,e.children);if(!t&&!o)throw new Error("Must provide services or locator prop to DecouplerProvider.");var i=o||a.fromServices(t);return r.createElement(U.Provider,{value:i},n)},e.LocateServices=B,e.Lookup=function(e){var r;if(null==e)throw new Error("Lookup() does not support nullish values");return(r={})[c]=e,r},e.ServiceLocator=a,e.useLocator=K,e.useServices=function(e){return K().resolve(e)},e.withServices=function(e){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component",s=function(t){function o(){return t.apply(this,arguments)||this}return i(o,t),o.prototype.render=function(){var t=e.dependencies||[],o={};return Array.isArray(t)?o.services=this.context.resolve(t):o=this.context.resolve(t),r.createElement(e,n({},this.props,o))},o}(r.Component);return o(s,"displayName","withServices("+t+")"),o(s,"contextType",U),J(s,e)},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
*/}var f="function"==typeof Symbol&&Symbol.for,l=f?Symbol.for("react.element"):60103,y=f?Symbol.for("react.portal"):60106,d=f?Symbol.for("react.fragment"):60107,m=f?Symbol.for("react.strict_mode"):60108,v=f?Symbol.for("react.profiler"):60114,b=f?Symbol.for("react.provider"):60109,h=f?Symbol.for("react.context"):60110,w=f?Symbol.for("react.async_mode"):60111,S=f?Symbol.for("react.concurrent_mode"):60111,P=f?Symbol.for("react.forward_ref"):60112,g=f?Symbol.for("react.suspense"):60113,O=f?Symbol.for("react.suspense_list"):60120,$=f?Symbol.for("react.memo"):60115,x=f?Symbol.for("react.lazy"):60116,j=f?Symbol.for("react.block"):60121,_=f?Symbol.for("react.fundamental"):60117,C=f?Symbol.for("react.responder"):60118,M=f?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var r=e.$$typeof;switch(r){case l:switch(e=e.type){case w:case S:case d:case v:case m:case g:return e;default:switch(e=e&&e.$$typeof){case h:case P:case x:case $:case b:return e;default:return r}}case y:return r}}}function E(e){return k(e)===S}var L={AsyncMode:w,ConcurrentMode:S,ContextConsumer:h,ContextProvider:b,Element:l,ForwardRef:P,Fragment:d,Lazy:x,Memo:$,Portal:y,Profiler:v,StrictMode:m,Suspense:g,isAsyncMode:function(e){return E(e)||k(e)===w},isConcurrentMode:E,isContextConsumer:function(e){return k(e)===h},isContextProvider:function(e){return k(e)===b},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===l},isForwardRef:function(e){return k(e)===P},isFragment:function(e){return k(e)===d},isLazy:function(e){return k(e)===x},isMemo:function(e){return k(e)===$},isPortal:function(e){return k(e)===y},isProfiler:function(e){return k(e)===v},isStrictMode:function(e){return k(e)===m},isSuspense:function(e){return k(e)===g},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===d||e===S||e===v||e===m||e===g||e===O||"object"==typeof e&&null!==e&&(e.$$typeof===x||e.$$typeof===$||e.$$typeof===b||e.$$typeof===h||e.$$typeof===P||e.$$typeof===_||e.$$typeof===C||e.$$typeof===M||e.$$typeof===j)},typeOf:k},A=p((function(e,r){0})),D=(A.AsyncMode,A.ConcurrentMode,A.ContextConsumer,A.ContextProvider,A.Element,A.ForwardRef,A.Fragment,A.Lazy,A.Memo,A.Portal,A.Profiler,A.StrictMode,A.Suspense,A.isAsyncMode,A.isConcurrentMode,A.isContextConsumer,A.isContextProvider,A.isElement,A.isForwardRef,A.isFragment,A.isLazy,A.isMemo,A.isPortal,A.isProfiler,A.isStrictMode,A.isSuspense,A.isValidElementType,A.typeOf,p((function(e){e.exports=L}))),T={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},F={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},R={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},N={};function z(e){return D.isMemo(e)?R:N[e.$$typeof]||T}N[D.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},N[D.Memo]=R;var I=Object.defineProperty,q=Object.getOwnPropertyNames,U=Object.getOwnPropertySymbols,V=Object.getOwnPropertyDescriptor,G=Object.getPrototypeOf,H=Object.prototype;var J=function e(r,t,o){if("string"!=typeof t){if(H){var n=G(t);n&&n!==H&&e(r,n,o)}var i=q(t);U&&(i=i.concat(U(t)));for(var s=z(r),c=z(t),a=0;a<i.length;++a){var u=i[a];if(!(F[u]||o&&o[u]||c&&c[u]||s&&s[u])){var p=V(t,u);try{I(r,u,p)}catch(e){}}}}return r},B=r.createContext();function K(e){var t=e.services,o=e.locator,n=e.injector,i=(e.value,e.children);if(n&&(console.warn('DecouplerProvider "injector" prop is deprecated. Use "locator".'),o=n),!t&&!o)throw new Error("Must provide services or locator prop to DecouplerProvider.");var s=o||a.fromServices(t);return r.createElement(B.Provider,{value:s},i)}var Q=K,W=function(e){function r(){return e.apply(this,arguments)||this}return i(r,e),r.prototype.render=function(){var e=this.context;if(!e)throw new Error("Must be used inside a DecouplerProvider");var r=this.props,t=r.children,o=r.deps;return t(e.resolve(o))},r}(r.Component);function X(){if(!r.useContext)throw new Error("Hooks not found on React. Are you using React v16.8 or greater?");var e=r.useContext(B);if(!e)throw new Error("Must be used inside a DecouplerProvider");return e}o(W,"contextType",B),o(W,"propTypes",{children:t.func.isRequired,deps:t.oneOfType([t.arrayOf(t.String),t.objectOf(t.String)])}),e.DecouplerProvider=K,e.InjectorProvider=Q,e.LocateServices=W,e.Lookup=function(e){var r;if(null==e)throw new Error("Lookup() does not support nullish values");return(r={})[c]=e,r},e.ServiceInjector=u,e.ServiceLocator=a,e.useLocator=X,e.useServices=function(e){return X().resolve(e)},e.withServices=function(e){var t=e.displayName||e.name||e.constructor&&e.constructor.name||"Component",s=function(t){function o(){return t.apply(this,arguments)||this}return i(o,t),o.prototype.render=function(){var t=e.dependencies||[],o={};return Array.isArray(t)?o.services=this.context.resolve(t):o=this.context.resolve(t),r.createElement(e,n({},this.props,o))},o}(r.Component);return o(s,"displayName","withServices("+t+")"),o(s,"contextType",B),J(s,e)},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=react-decoupler.production.min.js.map |
{ | ||
"name": "react-decoupler", | ||
"version": "0.3.0", | ||
"version": "0.3.1", | ||
"author": "Tommy Groshong <tom@groshong.software> (https://tommygroshong.com)", | ||
@@ -5,0 +5,0 @@ "description": "Simple Dependency Injection for React", |
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
Sorry, the diff of this file is not supported yet
216312
1343