@decaf-ts/injectable-decorators 1.4.3 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,10 +14,10 @@ Simple implementation of injectables
14
14
  ![Pull Requests](https://img.shields.io/github/issues-pr-closed/decaf-ts/injectable-decorators.svg)
15
15
  ![Maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)
16
16
 
17
- ![Line Coverage](workdocs/badges/badge-lines.svg)
18
- ![Function Coverage](workdocs/badges/badge-functions.svg)
19
- ![Statement Coverage](workdocs/badges/badge-statements.svg)
20
- ![Branch Coverage](workdocs/badges/badge-branches.svg)
17
+ ![Line Coverage](workdocs/coverage/badge-lines.svg)
18
+ ![Function Coverage](workdocs/coverage/badge-functions.svg)
19
+ ![Statement Coverage](workdocs/coverage/badge-statements.svg)
20
+ ![Branch Coverage](workdocs/coverage/badge-branches.svg)
21
21
 
22
22
 
23
23
  ![Forks](https://img.shields.io/github/forks/decaf-ts/injectable-decorators.svg)
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see injectable-decorators.bundle.min.esm.js.LICENSE.txt */
2
- var e={323:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Injectables=void 0;const n=r(426);class i{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return i.getRegistry().get(e,...t)}static register(e,...t){return i.getRegistry().register(e,...t)}static build(e,...t){return i.getRegistry().build(e,...t)}static setRegistry(e){i.actingInjectablesRegistry=e}static getRegistry(){return i.actingInjectablesRegistry||(i.actingInjectablesRegistry=new n.InjectableRegistryImp),i.actingInjectablesRegistry}static reset(){this.setRegistry(new n.InjectableRegistryImp)}static selectiveReset(e){const t="string"==typeof e?new RegExp(e):e;i.actingInjectablesRegistry.cache=Object.entries(i.actingInjectablesRegistry.cache).reduce(((e,[r,n])=>(r.match(t)||(e[r]=n),e)),{})}}t.Injectables=i},640:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesKeys=void 0,t.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"}},503:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.inject=t.injectable=void 0;const n=r(640),i=r(323),o=r(552),a=e=>n.InjectablesKeys.REFLECT+e;t.injectable=(e=void 0,t=!1,r)=>o=>{const c=e||o.name,u=function(...e){let u=i.Injectables.get(c,...e);if(!u){if(i.Injectables.register(o,c,!0,t),u=i.Injectables.get(c,...e),!u)return;if(r)try{r(u)}catch(e){console.error(`Failed to call injectable callback for ${c}: ${e}`)}}const s=Object.assign({},{class:c});return Reflect.defineMetadata(a(n.InjectablesKeys.INJECTABLE),s,u.constructor),u};return u.prototype=o.prototype,Object.defineProperty(u,"name",{writable:!1,enumerable:!0,configurable:!1,value:o.prototype.constructor.name}),u},t.inject=(e,t)=>(r,c)=>{const u=new WeakMap,s=e||(0,o.getTypeFromDecorator)(r,c);if(!s)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(a(n.InjectablesKeys.INJECT),{injectable:s},r,c),Object.defineProperty(r,c,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(r,c).configurable)return Object.defineProperty(this,c,{enumerable:!0,configurable:!1,get(){let e=u.get(this);if(!e){if(e=i.Injectables.get(s),!e)throw new Error(`Could not get Injectable ${s} to inject in ${r.constructor?r.constructor.name:r.name}'s ${c}`);if(t)try{e=t(e,r)}catch(e){console.error(e)}u.set(this,e)}return e}}),this[c]}})}},729:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,i(r(640),t),i(r(503),t),i(r(323),t),i(r(426),t),i(r(552),t),t.VERSION="##VERSION##"},426:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectableRegistryImp=void 0,t.InjectableRegistryImp=class{constructor(){this.cache={}}get(e,...t){try{const r=this.cache[e],n={name:e};return(r.singleton||r.instance)&&r.instance||this.build(n,...t)}catch(e){return}}register(e,t=void 0,r=!0,n=!1){const i=e,o=!i.name&&i.constructor;if("function"!=typeof i&&!o)throw new Error("Injectable registering failed. Missing Class name or constructor");const a=t||(o&&o.name&&"Function"!==o.name?o.name:i.name);this.cache[a]&&!n||(this.cache[a]={instance:o?e:void 0,constructor:o?void 0:e,singleton:r})}build(e,...t){const{constructor:r,singleton:n}=this.cache[e.name],i=new r(...t);return this.cache[e.name]={instance:i,constructor:r,singleton:n},i}}},552:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeKey=void 0,t.getTypeFromDecorator=function(e,r){const n=Reflect.getMetadata(t.TypeKey,e,r);return"Function"!==n.name?n.name:void 0},r(630),t.TypeKey="design:type"},630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=i(e);function i(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=i(t.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,i=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",o=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",a="function"==typeof Object.create,c={__proto__:[]}instanceof Array,u=!a&&!c,s={create:a?function(){return W(Object.create(null))}:c?function(){return W({__proto__:null})}:function(){return W({})},has:u?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:u?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},f=Object.getPrototypeOf(Function),l="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[o]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i<n;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,F(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,i)},t.prototype.entries=function(){return new r(this._keys,this._values,a)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[o]=function(){return this.entries()},t.prototype._find=function(e,t){if(!F(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(F(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function i(e,t){return t}function a(e,t){return[e,t]}}(),y="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new l}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[o]=function(){return this.keys()},e}(),h="function"==typeof WeakMap?WeakMap:function(){var e=s.create(),t=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=i(e,!1);return void 0!==t&&s.has(t,this._key)},e.prototype.get=function(e){var t=i(e,!1);return void 0!==t?s.get(t,this._key):void 0},e.prototype.set=function(e,t){return i(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=i(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+a()}while(s.has(e,t));return e[t]=!0,t}function i(e,n){if(!r.call(e,t)){if(!n)return;Object.defineProperty(e,t,{value:s.create()})}return e[t]}function o(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function a(){var e=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):o(t,e),t}return o(new Array(e),e)}(16);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var t="",r=0;r<16;++r){var n=e[r];4!==r&&6!==r&&8!==r||(t+="-"),n<16&&(t+="0"),t+=n.toString(16).toLowerCase()}return t}}(),d=n?Symbol.for("@reflect-metadata:registry"):void 0,p=function(){var e;return!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[d]),E(e)&&(e=function(){var e,r,n,i;E(d)||void 0===t.Reflect||d in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,i=e.getOwnMetadataKeys,o=e.deleteMetadata,a=new h;return{isProviderFor:function(e,t){var r=a.get(e);return!(E(r)||!r.has(t))||!!i(e,t).length&&(E(r)&&(r=new y,a.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:i,OrdinaryDeleteMetadata:o}}(t.Reflect));var o=new h,a={registerProvider:c,getProvider:s,setProvider:p};return a;function c(t){if(!Object.isExtensible(a))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case E(r):r=t;break;case r===t:break;case E(n):n=t;break;case n===t:break;default:void 0===i&&(i=new y),i.add(t)}}function u(t,o){if(!E(r)){if(r.isProviderFor(t,o))return r;if(!E(n)){if(n.isProviderFor(t,o))return r;if(!E(i))for(var a=A(i);;){var c=N(a);if(!c)return;var u=D(c);if(u.isProviderFor(t,o))return z(a),u}}}if(!E(e)&&e.isProviderFor(t,o))return e}function s(e,t){var r,n=o.get(e);return E(n)||(r=n.get(t)),E(r)?(E(r=u(e,t))||(E(n)&&(n=new l,o.set(e,n)),n.set(t,r)),r):r}function f(e){if(E(e))throw new TypeError;return r===e||n===e||!E(i)&&i.has(e)}function p(e,t,r){if(!f(r))throw new Error("Metadata provider not registered.");var n=s(e,t);if(n!==r){if(!E(n))return!1;var i=o.get(e);E(i)&&(i=new l,o.set(e,i)),i.set(t,r)}return!0}}()),!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,d,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),v=function(e){var t=new h,r={isProviderFor:function(e,r){var n=t.get(e);return!E(n)&&n.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,i){n(r,i,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var i=n(t,r,!1);return!E(i)&&T(i.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var i=n(t,r,!1);if(!E(i))return i.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],i=n(e,t,!1);if(E(i))return r;for(var o=A(i.keys()),a=0;;){var c=N(o);if(!c)return r.length=a,r;var u=D(c);try{r[a]=u}catch(e){try{z(o)}finally{throw e}}a++}},OrdinaryDeleteMetadata:function(e,r,i){var o=n(r,i,!1);if(E(o))return!1;if(!o.delete(e))return!1;if(0===o.size){var a=t.get(r);E(a)||(a.delete(i),0===a.size&&t.delete(a))}return!0}};return p.registerProvider(r),r;function n(n,i,o){var a=t.get(n),c=!1;if(E(a)){if(!o)return;a=new l,t.set(n,a),c=!0}var u=a.get(i);if(E(u)){if(!o)return;if(u=new l,a.set(i,u),!e.setProvider(n,i,r))throw a.delete(i),c&&t.delete(n),new Error("Wrong provider for target.")}return u}}(p);function g(e,t,r){if(w(e,t,r))return!0;var n=L(t);return!k(n)&&g(e,n,r)}function w(e,t,r){var n=V(t,r,!1);return!E(n)&&T(n.OrdinaryHasOwnMetadata(e,t,r))}function b(e,t,r){if(w(e,t,r))return _(e,t,r);var n=L(t);return k(n)?void 0:b(e,n,r)}function _(e,t,r){var n=V(t,r,!1);if(!E(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function O(e,t,r,n){V(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function j(e,t){var r=m(e,t),n=L(e);if(null===n)return r;var i=j(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var o=new y,a=[],c=0,u=r;c<u.length;c++){var s=u[c];o.has(s)||(o.add(s),a.push(s))}for(var f=0,l=i;f<l.length;f++)s=l[f],o.has(s)||(o.add(s),a.push(s));return a}function m(e,t){var r=V(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function M(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function E(e){return void 0===e}function k(e){return null===e}function I(e){return"object"==typeof e?null!==e:"function"==typeof e}function R(e,t){switch(M(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=C(e,i);if(void 0!==n){var o=n.call(e,r);if(I(o))throw new TypeError;return o}return function(e,t){if("string"===t){var r=e.toString;if(K(r)&&!I(i=r.call(e)))return i;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i}else{var n;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i;var i,o=e.toString;if(K(o)&&!I(i=o.call(e)))return i}throw new TypeError}(e,"default"===r?"number":r)}function T(e){return!!e}function P(e){var t=R(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function x(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function K(e){return"function"==typeof e}function S(e){return"function"==typeof e}function F(e,t){return e===t||e!=e&&t!=t}function C(e,t){var r=e[t];if(null!=r){if(!K(r))throw new TypeError;return r}}function A(e){var t=C(e,o);if(!K(t))throw new TypeError;var r=t.call(e);if(!I(r))throw new TypeError;return r}function D(e){return e.value}function N(e){var t=e.next();return!t.done&&t}function z(e){var t=e.return;t&&t.call(e)}function L(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===f)return t;if(t!==f)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var i=n.constructor;return"function"!=typeof i||i===e?t:i}function V(e,t,r){var n=p.getProvider(e,t);if(!E(n))return n;if(r){if(p.setProvider(e,t,v))return v;throw new Error("Illegal state.")}}function W(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(E(r)){if(!x(e))throw new TypeError;if(!S(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!E(n)&&!k(n)){if(!S(n))throw new TypeError;t=n}}return t}(e,t)}if(!x(e))throw new TypeError;if(!I(t))throw new TypeError;if(!I(n)&&!E(n)&&!k(n))throw new TypeError;return k(n)&&(n=void 0),function(e,t,r,n){for(var i=e.length-1;i>=0;--i){var o=(0,e[i])(t,r,n);if(!E(o)&&!k(o)){if(!I(o))throw new TypeError;n=o}}return n}(e,t,r=P(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!I(r))throw new TypeError;if(!E(n)&&!function(e){switch(M(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;O(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!I(r))throw new TypeError;return E(n)||(n=P(n)),O(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),g(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),w(e,t,r)})),e("getMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),b(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),j(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),m(e,t)})),e("deleteMetadata",(function(e,t,r){if(!I(t))throw new TypeError;if(E(r)||(r=P(r)),!I(t))throw new TypeError;E(r)||(r=P(r));var n=V(t,r,!1);return!E(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(n,t),void 0===t.Reflect&&(t.Reflect=e)}()}(n||(n={}))}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(729);
2
+ var e={323:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Injectables=void 0;const n=r(426);class i{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return i.getRegistry().get(e,...t)}static register(e,...t){return i.getRegistry().register(e,...t)}static build(e,...t){return i.getRegistry().build(e,...t)}static setRegistry(e){i.actingInjectablesRegistry=e}static getRegistry(){return i.actingInjectablesRegistry||(i.actingInjectablesRegistry=new n.InjectableRegistryImp),i.actingInjectablesRegistry}static reset(){this.setRegistry(new n.InjectableRegistryImp)}static selectiveReset(e){const t="string"==typeof e?new RegExp(e):e;i.actingInjectablesRegistry.cache=Object.entries(i.actingInjectablesRegistry.cache).reduce(((e,[r,n])=>(r.match(t)||(e[r]=n),e)),{})}}t.Injectables=i},640:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesKeys=void 0,t.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"}},503:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.inject=t.injectable=void 0;const n=r(640),i=r(323),o=r(552),a=e=>n.InjectablesKeys.REFLECT+e;t.injectable=(e=void 0,t=!1,r)=>o=>{const c=e||o.name,u=function(...e){let u=i.Injectables.get(c,...e);if(!u){if(i.Injectables.register(o,c,!0,t),u=i.Injectables.get(c,...e),!u)return;if(r)try{r(u)}catch(e){console.error(`Failed to call injectable callback for ${c}: ${e}`)}}const s=Object.assign({},{class:c});return Reflect.defineMetadata(a(n.InjectablesKeys.INJECTABLE),s,u.constructor),u};return u.prototype=o.prototype,Object.defineProperty(u,"name",{writable:!1,enumerable:!0,configurable:!1,value:o.prototype.constructor.name}),u},t.inject=(e,t)=>(r,c)=>{const u=new WeakMap,s=e||(0,o.getTypeFromDecorator)(r,c);if(!s)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(a(n.InjectablesKeys.INJECT),{injectable:s},r,c),Object.defineProperty(r,c,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(r,c).configurable)return Object.defineProperty(this,c,{enumerable:!0,configurable:!1,get(){let e=u.get(this);if(!e){if(e=i.Injectables.get(s),!e)throw new Error(`Could not get Injectable ${s} to inject in ${r.constructor?r.constructor.name:r.name}'s ${c}`);if(t)try{e=t(e,r)}catch(e){console.error(e)}u.set(this,e)}return e}}),this[c]}})}},729:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,i(r(640),t),i(r(503),t),i(r(323),t),i(r(426),t),i(r(552),t),t.VERSION="1.4.4"},426:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectableRegistryImp=void 0,t.InjectableRegistryImp=class{constructor(){this.cache={}}get(e,...t){try{const r=this.cache[e],n={name:e};return(r.singleton||r.instance)&&r.instance||this.build(n,...t)}catch(e){return}}register(e,t=void 0,r=!0,n=!1){const i=e,o=!i.name&&i.constructor;if("function"!=typeof i&&!o)throw new Error("Injectable registering failed. Missing Class name or constructor");const a=t||(o&&o.name&&"Function"!==o.name?o.name:i.name);this.cache[a]&&!n||(this.cache[a]={instance:o?e:void 0,constructor:o?void 0:e,singleton:r})}build(e,...t){const{constructor:r,singleton:n}=this.cache[e.name],i=new r(...t);return this.cache[e.name]={instance:i,constructor:r,singleton:n},i}}},552:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeKey=void 0,t.getTypeFromDecorator=function(e,r){const n=Reflect.getMetadata(t.TypeKey,e,r);return"Function"!==n.name?n.name:void 0},r(630),t.TypeKey="design:type"},630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=i(e);function i(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=i(t.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,i=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",o=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",a="function"==typeof Object.create,c={__proto__:[]}instanceof Array,u=!a&&!c,s={create:a?function(){return W(Object.create(null))}:c?function(){return W({__proto__:null})}:function(){return W({})},has:u?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:u?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},f=Object.getPrototypeOf(Function),l="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[o]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i<n;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,F(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,i)},t.prototype.entries=function(){return new r(this._keys,this._values,a)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[o]=function(){return this.entries()},t.prototype._find=function(e,t){if(!F(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(F(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function i(e,t){return t}function a(e,t){return[e,t]}}(),y="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new l}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[o]=function(){return this.keys()},e}(),h="function"==typeof WeakMap?WeakMap:function(){var e=s.create(),t=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=i(e,!1);return void 0!==t&&s.has(t,this._key)},e.prototype.get=function(e){var t=i(e,!1);return void 0!==t?s.get(t,this._key):void 0},e.prototype.set=function(e,t){return i(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=i(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+a()}while(s.has(e,t));return e[t]=!0,t}function i(e,n){if(!r.call(e,t)){if(!n)return;Object.defineProperty(e,t,{value:s.create()})}return e[t]}function o(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function a(){var e=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):o(t,e),t}return o(new Array(e),e)}(16);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var t="",r=0;r<16;++r){var n=e[r];4!==r&&6!==r&&8!==r||(t+="-"),n<16&&(t+="0"),t+=n.toString(16).toLowerCase()}return t}}(),d=n?Symbol.for("@reflect-metadata:registry"):void 0,p=function(){var e;return!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[d]),E(e)&&(e=function(){var e,r,n,i;E(d)||void 0===t.Reflect||d in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,i=e.getOwnMetadataKeys,o=e.deleteMetadata,a=new h;return{isProviderFor:function(e,t){var r=a.get(e);return!(E(r)||!r.has(t))||!!i(e,t).length&&(E(r)&&(r=new y,a.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:i,OrdinaryDeleteMetadata:o}}(t.Reflect));var o=new h,a={registerProvider:c,getProvider:s,setProvider:p};return a;function c(t){if(!Object.isExtensible(a))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case E(r):r=t;break;case r===t:break;case E(n):n=t;break;case n===t:break;default:void 0===i&&(i=new y),i.add(t)}}function u(t,o){if(!E(r)){if(r.isProviderFor(t,o))return r;if(!E(n)){if(n.isProviderFor(t,o))return r;if(!E(i))for(var a=A(i);;){var c=N(a);if(!c)return;var u=D(c);if(u.isProviderFor(t,o))return z(a),u}}}if(!E(e)&&e.isProviderFor(t,o))return e}function s(e,t){var r,n=o.get(e);return E(n)||(r=n.get(t)),E(r)?(E(r=u(e,t))||(E(n)&&(n=new l,o.set(e,n)),n.set(t,r)),r):r}function f(e){if(E(e))throw new TypeError;return r===e||n===e||!E(i)&&i.has(e)}function p(e,t,r){if(!f(r))throw new Error("Metadata provider not registered.");var n=s(e,t);if(n!==r){if(!E(n))return!1;var i=o.get(e);E(i)&&(i=new l,o.set(e,i)),i.set(t,r)}return!0}}()),!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,d,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),v=function(e){var t=new h,r={isProviderFor:function(e,r){var n=t.get(e);return!E(n)&&n.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,i){n(r,i,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var i=n(t,r,!1);return!E(i)&&T(i.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var i=n(t,r,!1);if(!E(i))return i.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],i=n(e,t,!1);if(E(i))return r;for(var o=A(i.keys()),a=0;;){var c=N(o);if(!c)return r.length=a,r;var u=D(c);try{r[a]=u}catch(e){try{z(o)}finally{throw e}}a++}},OrdinaryDeleteMetadata:function(e,r,i){var o=n(r,i,!1);if(E(o))return!1;if(!o.delete(e))return!1;if(0===o.size){var a=t.get(r);E(a)||(a.delete(i),0===a.size&&t.delete(a))}return!0}};return p.registerProvider(r),r;function n(n,i,o){var a=t.get(n),c=!1;if(E(a)){if(!o)return;a=new l,t.set(n,a),c=!0}var u=a.get(i);if(E(u)){if(!o)return;if(u=new l,a.set(i,u),!e.setProvider(n,i,r))throw a.delete(i),c&&t.delete(n),new Error("Wrong provider for target.")}return u}}(p);function g(e,t,r){if(w(e,t,r))return!0;var n=L(t);return!k(n)&&g(e,n,r)}function w(e,t,r){var n=V(t,r,!1);return!E(n)&&T(n.OrdinaryHasOwnMetadata(e,t,r))}function b(e,t,r){if(w(e,t,r))return _(e,t,r);var n=L(t);return k(n)?void 0:b(e,n,r)}function _(e,t,r){var n=V(t,r,!1);if(!E(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function O(e,t,r,n){V(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function j(e,t){var r=m(e,t),n=L(e);if(null===n)return r;var i=j(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var o=new y,a=[],c=0,u=r;c<u.length;c++){var s=u[c];o.has(s)||(o.add(s),a.push(s))}for(var f=0,l=i;f<l.length;f++)s=l[f],o.has(s)||(o.add(s),a.push(s));return a}function m(e,t){var r=V(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function M(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function E(e){return void 0===e}function k(e){return null===e}function I(e){return"object"==typeof e?null!==e:"function"==typeof e}function R(e,t){switch(M(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=C(e,i);if(void 0!==n){var o=n.call(e,r);if(I(o))throw new TypeError;return o}return function(e,t){if("string"===t){var r=e.toString;if(K(r)&&!I(i=r.call(e)))return i;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i}else{var n;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i;var i,o=e.toString;if(K(o)&&!I(i=o.call(e)))return i}throw new TypeError}(e,"default"===r?"number":r)}function T(e){return!!e}function P(e){var t=R(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function x(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function K(e){return"function"==typeof e}function S(e){return"function"==typeof e}function F(e,t){return e===t||e!=e&&t!=t}function C(e,t){var r=e[t];if(null!=r){if(!K(r))throw new TypeError;return r}}function A(e){var t=C(e,o);if(!K(t))throw new TypeError;var r=t.call(e);if(!I(r))throw new TypeError;return r}function D(e){return e.value}function N(e){var t=e.next();return!t.done&&t}function z(e){var t=e.return;t&&t.call(e)}function L(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===f)return t;if(t!==f)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var i=n.constructor;return"function"!=typeof i||i===e?t:i}function V(e,t,r){var n=p.getProvider(e,t);if(!E(n))return n;if(r){if(p.setProvider(e,t,v))return v;throw new Error("Illegal state.")}}function W(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(E(r)){if(!x(e))throw new TypeError;if(!S(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!E(n)&&!k(n)){if(!S(n))throw new TypeError;t=n}}return t}(e,t)}if(!x(e))throw new TypeError;if(!I(t))throw new TypeError;if(!I(n)&&!E(n)&&!k(n))throw new TypeError;return k(n)&&(n=void 0),function(e,t,r,n){for(var i=e.length-1;i>=0;--i){var o=(0,e[i])(t,r,n);if(!E(o)&&!k(o)){if(!I(o))throw new TypeError;n=o}}return n}(e,t,r=P(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!I(r))throw new TypeError;if(!E(n)&&!function(e){switch(M(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;O(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!I(r))throw new TypeError;return E(n)||(n=P(n)),O(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),g(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),w(e,t,r)})),e("getMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),b(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),j(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),m(e,t)})),e("deleteMetadata",(function(e,t,r){if(!I(t))throw new TypeError;if(E(r)||(r=P(r)),!I(t))throw new TypeError;E(r)||(r=P(r));var n=V(t,r,!1);return!E(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(n,t),void 0===t.Reflect&&(t.Reflect=e)}()}(n||(n={}))}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(729);
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see injectable-decorators.bundle.min.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("injectable-decorators",[],t):"object"==typeof exports?exports["injectable-decorators"]=t():e["injectable-decorators"]=t()}(this,(()=>(()=>{var e={323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Injectables=void 0;const n=r(426);class i{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return i.getRegistry().get(e,...t)}static register(e,...t){return i.getRegistry().register(e,...t)}static build(e,...t){return i.getRegistry().build(e,...t)}static setRegistry(e){i.actingInjectablesRegistry=e}static getRegistry(){return i.actingInjectablesRegistry||(i.actingInjectablesRegistry=new n.InjectableRegistryImp),i.actingInjectablesRegistry}static reset(){this.setRegistry(new n.InjectableRegistryImp)}static selectiveReset(e){const t="string"==typeof e?new RegExp(e):e;i.actingInjectablesRegistry.cache=Object.entries(i.actingInjectablesRegistry.cache).reduce(((e,[r,n])=>(r.match(t)||(e[r]=n),e)),{})}}t.Injectables=i},640:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesKeys=void 0,t.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"}},503:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.inject=t.injectable=void 0;const n=r(640),i=r(323),o=r(552),a=e=>n.InjectablesKeys.REFLECT+e;t.injectable=(e=void 0,t=!1,r)=>o=>{const c=e||o.name,u=function(...e){let u=i.Injectables.get(c,...e);if(!u){if(i.Injectables.register(o,c,!0,t),u=i.Injectables.get(c,...e),!u)return;if(r)try{r(u)}catch(e){console.error(`Failed to call injectable callback for ${c}: ${e}`)}}const s=Object.assign({},{class:c});return Reflect.defineMetadata(a(n.InjectablesKeys.INJECTABLE),s,u.constructor),u};return u.prototype=o.prototype,Object.defineProperty(u,"name",{writable:!1,enumerable:!0,configurable:!1,value:o.prototype.constructor.name}),u},t.inject=(e,t)=>(r,c)=>{const u=new WeakMap,s=e||(0,o.getTypeFromDecorator)(r,c);if(!s)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(a(n.InjectablesKeys.INJECT),{injectable:s},r,c),Object.defineProperty(r,c,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(r,c).configurable)return Object.defineProperty(this,c,{enumerable:!0,configurable:!1,get(){let e=u.get(this);if(!e){if(e=i.Injectables.get(s),!e)throw new Error(`Could not get Injectable ${s} to inject in ${r.constructor?r.constructor.name:r.name}'s ${c}`);if(t)try{e=t(e,r)}catch(e){console.error(e)}u.set(this,e)}return e}}),this[c]}})}},729:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,i(r(640),t),i(r(503),t),i(r(323),t),i(r(426),t),i(r(552),t),t.VERSION="##VERSION##"},426:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InjectableRegistryImp=void 0,t.InjectableRegistryImp=class{constructor(){this.cache={}}get(e,...t){try{const r=this.cache[e],n={name:e};return(r.singleton||r.instance)&&r.instance||this.build(n,...t)}catch(e){return}}register(e,t=void 0,r=!0,n=!1){const i=e,o=!i.name&&i.constructor;if("function"!=typeof i&&!o)throw new Error("Injectable registering failed. Missing Class name or constructor");const a=t||(o&&o.name&&"Function"!==o.name?o.name:i.name);this.cache[a]&&!n||(this.cache[a]={instance:o?e:void 0,constructor:o?void 0:e,singleton:r})}build(e,...t){const{constructor:r,singleton:n}=this.cache[e.name],i=new r(...t);return this.cache[e.name]={instance:i,constructor:r,singleton:n},i}}},552:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeKey=void 0,t.getTypeFromDecorator=function(e,r){const n=Reflect.getMetadata(t.TypeKey,e,r);return"Function"!==n.name?n.name:void 0},r(630),t.TypeKey="design:type"},630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=i(e);function i(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=i(t.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,i=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",o=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",a="function"==typeof Object.create,c={__proto__:[]}instanceof Array,u=!a&&!c,s={create:a?function(){return W(Object.create(null))}:c?function(){return W({__proto__:null})}:function(){return W({})},has:u?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:u?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},f=Object.getPrototypeOf(Function),l="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[o]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i<n;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,F(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,i)},t.prototype.entries=function(){return new r(this._keys,this._values,a)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[o]=function(){return this.entries()},t.prototype._find=function(e,t){if(!F(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(F(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function i(e,t){return t}function a(e,t){return[e,t]}}(),y="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new l}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[o]=function(){return this.keys()},e}(),h="function"==typeof WeakMap?WeakMap:function(){var e=s.create(),t=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=i(e,!1);return void 0!==t&&s.has(t,this._key)},e.prototype.get=function(e){var t=i(e,!1);return void 0!==t?s.get(t,this._key):void 0},e.prototype.set=function(e,t){return i(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=i(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+a()}while(s.has(e,t));return e[t]=!0,t}function i(e,n){if(!r.call(e,t)){if(!n)return;Object.defineProperty(e,t,{value:s.create()})}return e[t]}function o(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function a(){var e=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):o(t,e),t}return o(new Array(e),e)}(16);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var t="",r=0;r<16;++r){var n=e[r];4!==r&&6!==r&&8!==r||(t+="-"),n<16&&(t+="0"),t+=n.toString(16).toLowerCase()}return t}}(),d=n?Symbol.for("@reflect-metadata:registry"):void 0,p=function(){var e;return!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[d]),E(e)&&(e=function(){var e,r,n,i;E(d)||void 0===t.Reflect||d in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,i=e.getOwnMetadataKeys,o=e.deleteMetadata,a=new h;return{isProviderFor:function(e,t){var r=a.get(e);return!(E(r)||!r.has(t))||!!i(e,t).length&&(E(r)&&(r=new y,a.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:i,OrdinaryDeleteMetadata:o}}(t.Reflect));var o=new h,a={registerProvider:c,getProvider:s,setProvider:p};return a;function c(t){if(!Object.isExtensible(a))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case E(r):r=t;break;case r===t:break;case E(n):n=t;break;case n===t:break;default:void 0===i&&(i=new y),i.add(t)}}function u(t,o){if(!E(r)){if(r.isProviderFor(t,o))return r;if(!E(n)){if(n.isProviderFor(t,o))return r;if(!E(i))for(var a=A(i);;){var c=N(a);if(!c)return;var u=D(c);if(u.isProviderFor(t,o))return z(a),u}}}if(!E(e)&&e.isProviderFor(t,o))return e}function s(e,t){var r,n=o.get(e);return E(n)||(r=n.get(t)),E(r)?(E(r=u(e,t))||(E(n)&&(n=new l,o.set(e,n)),n.set(t,r)),r):r}function f(e){if(E(e))throw new TypeError;return r===e||n===e||!E(i)&&i.has(e)}function p(e,t,r){if(!f(r))throw new Error("Metadata provider not registered.");var n=s(e,t);if(n!==r){if(!E(n))return!1;var i=o.get(e);E(i)&&(i=new l,o.set(e,i)),i.set(t,r)}return!0}}()),!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,d,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),v=function(e){var t=new h,r={isProviderFor:function(e,r){var n=t.get(e);return!E(n)&&n.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,i){n(r,i,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var i=n(t,r,!1);return!E(i)&&T(i.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var i=n(t,r,!1);if(!E(i))return i.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],i=n(e,t,!1);if(E(i))return r;for(var o=A(i.keys()),a=0;;){var c=N(o);if(!c)return r.length=a,r;var u=D(c);try{r[a]=u}catch(e){try{z(o)}finally{throw e}}a++}},OrdinaryDeleteMetadata:function(e,r,i){var o=n(r,i,!1);if(E(o))return!1;if(!o.delete(e))return!1;if(0===o.size){var a=t.get(r);E(a)||(a.delete(i),0===a.size&&t.delete(a))}return!0}};return p.registerProvider(r),r;function n(n,i,o){var a=t.get(n),c=!1;if(E(a)){if(!o)return;a=new l,t.set(n,a),c=!0}var u=a.get(i);if(E(u)){if(!o)return;if(u=new l,a.set(i,u),!e.setProvider(n,i,r))throw a.delete(i),c&&t.delete(n),new Error("Wrong provider for target.")}return u}}(p);function g(e,t,r){if(b(e,t,r))return!0;var n=L(t);return!k(n)&&g(e,n,r)}function b(e,t,r){var n=V(t,r,!1);return!E(n)&&T(n.OrdinaryHasOwnMetadata(e,t,r))}function w(e,t,r){if(b(e,t,r))return _(e,t,r);var n=L(t);return k(n)?void 0:w(e,n,r)}function _(e,t,r){var n=V(t,r,!1);if(!E(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function j(e,t,r,n){V(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function O(e,t){var r=m(e,t),n=L(e);if(null===n)return r;var i=O(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var o=new y,a=[],c=0,u=r;c<u.length;c++){var s=u[c];o.has(s)||(o.add(s),a.push(s))}for(var f=0,l=i;f<l.length;f++)s=l[f],o.has(s)||(o.add(s),a.push(s));return a}function m(e,t){var r=V(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function M(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function E(e){return void 0===e}function k(e){return null===e}function I(e){return"object"==typeof e?null!==e:"function"==typeof e}function R(e,t){switch(M(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=C(e,i);if(void 0!==n){var o=n.call(e,r);if(I(o))throw new TypeError;return o}return function(e,t){if("string"===t){var r=e.toString;if(K(r)&&!I(i=r.call(e)))return i;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i}else{var n;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i;var i,o=e.toString;if(K(o)&&!I(i=o.call(e)))return i}throw new TypeError}(e,"default"===r?"number":r)}function T(e){return!!e}function P(e){var t=R(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function x(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function K(e){return"function"==typeof e}function S(e){return"function"==typeof e}function F(e,t){return e===t||e!=e&&t!=t}function C(e,t){var r=e[t];if(null!=r){if(!K(r))throw new TypeError;return r}}function A(e){var t=C(e,o);if(!K(t))throw new TypeError;var r=t.call(e);if(!I(r))throw new TypeError;return r}function D(e){return e.value}function N(e){var t=e.next();return!t.done&&t}function z(e){var t=e.return;t&&t.call(e)}function L(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===f)return t;if(t!==f)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var i=n.constructor;return"function"!=typeof i||i===e?t:i}function V(e,t,r){var n=p.getProvider(e,t);if(!E(n))return n;if(r){if(p.setProvider(e,t,v))return v;throw new Error("Illegal state.")}}function W(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(E(r)){if(!x(e))throw new TypeError;if(!S(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!E(n)&&!k(n)){if(!S(n))throw new TypeError;t=n}}return t}(e,t)}if(!x(e))throw new TypeError;if(!I(t))throw new TypeError;if(!I(n)&&!E(n)&&!k(n))throw new TypeError;return k(n)&&(n=void 0),function(e,t,r,n){for(var i=e.length-1;i>=0;--i){var o=(0,e[i])(t,r,n);if(!E(o)&&!k(o)){if(!I(o))throw new TypeError;n=o}}return n}(e,t,r=P(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!I(r))throw new TypeError;if(!E(n)&&!function(e){switch(M(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;j(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!I(r))throw new TypeError;return E(n)||(n=P(n)),j(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),g(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),b(e,t,r)})),e("getMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),w(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),O(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),m(e,t)})),e("deleteMetadata",(function(e,t,r){if(!I(t))throw new TypeError;if(E(r)||(r=P(r)),!I(t))throw new TypeError;E(r)||(r=P(r));var n=V(t,r,!1);return!E(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(n,t),void 0===t.Reflect&&(t.Reflect=e)}()}(n||(n={}))}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(729)})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("injectable-decorators",[],t):"object"==typeof exports?exports["injectable-decorators"]=t():e["injectable-decorators"]=t()}(this,(()=>(()=>{var e={323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Injectables=void 0;const n=r(426);class i{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return i.getRegistry().get(e,...t)}static register(e,...t){return i.getRegistry().register(e,...t)}static build(e,...t){return i.getRegistry().build(e,...t)}static setRegistry(e){i.actingInjectablesRegistry=e}static getRegistry(){return i.actingInjectablesRegistry||(i.actingInjectablesRegistry=new n.InjectableRegistryImp),i.actingInjectablesRegistry}static reset(){this.setRegistry(new n.InjectableRegistryImp)}static selectiveReset(e){const t="string"==typeof e?new RegExp(e):e;i.actingInjectablesRegistry.cache=Object.entries(i.actingInjectablesRegistry.cache).reduce(((e,[r,n])=>(r.match(t)||(e[r]=n),e)),{})}}t.Injectables=i},640:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesKeys=void 0,t.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"}},503:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.inject=t.injectable=void 0;const n=r(640),i=r(323),o=r(552),a=e=>n.InjectablesKeys.REFLECT+e;t.injectable=(e=void 0,t=!1,r)=>o=>{const c=e||o.name,u=function(...e){let u=i.Injectables.get(c,...e);if(!u){if(i.Injectables.register(o,c,!0,t),u=i.Injectables.get(c,...e),!u)return;if(r)try{r(u)}catch(e){console.error(`Failed to call injectable callback for ${c}: ${e}`)}}const s=Object.assign({},{class:c});return Reflect.defineMetadata(a(n.InjectablesKeys.INJECTABLE),s,u.constructor),u};return u.prototype=o.prototype,Object.defineProperty(u,"name",{writable:!1,enumerable:!0,configurable:!1,value:o.prototype.constructor.name}),u},t.inject=(e,t)=>(r,c)=>{const u=new WeakMap,s=e||(0,o.getTypeFromDecorator)(r,c);if(!s)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(a(n.InjectablesKeys.INJECT),{injectable:s},r,c),Object.defineProperty(r,c,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(r,c).configurable)return Object.defineProperty(this,c,{enumerable:!0,configurable:!1,get(){let e=u.get(this);if(!e){if(e=i.Injectables.get(s),!e)throw new Error(`Could not get Injectable ${s} to inject in ${r.constructor?r.constructor.name:r.name}'s ${c}`);if(t)try{e=t(e,r)}catch(e){console.error(e)}u.set(this,e)}return e}}),this[c]}})}},729:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,i(r(640),t),i(r(503),t),i(r(323),t),i(r(426),t),i(r(552),t),t.VERSION="1.4.4"},426:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InjectableRegistryImp=void 0,t.InjectableRegistryImp=class{constructor(){this.cache={}}get(e,...t){try{const r=this.cache[e],n={name:e};return(r.singleton||r.instance)&&r.instance||this.build(n,...t)}catch(e){return}}register(e,t=void 0,r=!0,n=!1){const i=e,o=!i.name&&i.constructor;if("function"!=typeof i&&!o)throw new Error("Injectable registering failed. Missing Class name or constructor");const a=t||(o&&o.name&&"Function"!==o.name?o.name:i.name);this.cache[a]&&!n||(this.cache[a]={instance:o?e:void 0,constructor:o?void 0:e,singleton:r})}build(e,...t){const{constructor:r,singleton:n}=this.cache[e.name],i=new r(...t);return this.cache[e.name]={instance:i,constructor:r,singleton:n},i}}},552:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeKey=void 0,t.getTypeFromDecorator=function(e,r){const n=Reflect.getMetadata(t.TypeKey,e,r);return"Function"!==n.name?n.name:void 0},r(630),t.TypeKey="design:type"},630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=i(e);function i(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=i(t.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,i=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",o=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",a="function"==typeof Object.create,c={__proto__:[]}instanceof Array,u=!a&&!c,s={create:a?function(){return W(Object.create(null))}:c?function(){return W({__proto__:null})}:function(){return W({})},has:u?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:u?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},f=Object.getPrototypeOf(Function),l="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[o]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i<n;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,F(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,i)},t.prototype.entries=function(){return new r(this._keys,this._values,a)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[o]=function(){return this.entries()},t.prototype._find=function(e,t){if(!F(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(F(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function i(e,t){return t}function a(e,t){return[e,t]}}(),y="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new l}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[o]=function(){return this.keys()},e}(),h="function"==typeof WeakMap?WeakMap:function(){var e=s.create(),t=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=i(e,!1);return void 0!==t&&s.has(t,this._key)},e.prototype.get=function(e){var t=i(e,!1);return void 0!==t?s.get(t,this._key):void 0},e.prototype.set=function(e,t){return i(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=i(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+a()}while(s.has(e,t));return e[t]=!0,t}function i(e,n){if(!r.call(e,t)){if(!n)return;Object.defineProperty(e,t,{value:s.create()})}return e[t]}function o(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function a(){var e=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):o(t,e),t}return o(new Array(e),e)}(16);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var t="",r=0;r<16;++r){var n=e[r];4!==r&&6!==r&&8!==r||(t+="-"),n<16&&(t+="0"),t+=n.toString(16).toLowerCase()}return t}}(),d=n?Symbol.for("@reflect-metadata:registry"):void 0,p=function(){var e;return!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[d]),E(e)&&(e=function(){var e,r,n,i;E(d)||void 0===t.Reflect||d in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,i=e.getOwnMetadataKeys,o=e.deleteMetadata,a=new h;return{isProviderFor:function(e,t){var r=a.get(e);return!(E(r)||!r.has(t))||!!i(e,t).length&&(E(r)&&(r=new y,a.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:i,OrdinaryDeleteMetadata:o}}(t.Reflect));var o=new h,a={registerProvider:c,getProvider:s,setProvider:p};return a;function c(t){if(!Object.isExtensible(a))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case E(r):r=t;break;case r===t:break;case E(n):n=t;break;case n===t:break;default:void 0===i&&(i=new y),i.add(t)}}function u(t,o){if(!E(r)){if(r.isProviderFor(t,o))return r;if(!E(n)){if(n.isProviderFor(t,o))return r;if(!E(i))for(var a=A(i);;){var c=N(a);if(!c)return;var u=D(c);if(u.isProviderFor(t,o))return z(a),u}}}if(!E(e)&&e.isProviderFor(t,o))return e}function s(e,t){var r,n=o.get(e);return E(n)||(r=n.get(t)),E(r)?(E(r=u(e,t))||(E(n)&&(n=new l,o.set(e,n)),n.set(t,r)),r):r}function f(e){if(E(e))throw new TypeError;return r===e||n===e||!E(i)&&i.has(e)}function p(e,t,r){if(!f(r))throw new Error("Metadata provider not registered.");var n=s(e,t);if(n!==r){if(!E(n))return!1;var i=o.get(e);E(i)&&(i=new l,o.set(e,i)),i.set(t,r)}return!0}}()),!E(d)&&I(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,d,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),v=function(e){var t=new h,r={isProviderFor:function(e,r){var n=t.get(e);return!E(n)&&n.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,i){n(r,i,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var i=n(t,r,!1);return!E(i)&&T(i.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var i=n(t,r,!1);if(!E(i))return i.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],i=n(e,t,!1);if(E(i))return r;for(var o=A(i.keys()),a=0;;){var c=N(o);if(!c)return r.length=a,r;var u=D(c);try{r[a]=u}catch(e){try{z(o)}finally{throw e}}a++}},OrdinaryDeleteMetadata:function(e,r,i){var o=n(r,i,!1);if(E(o))return!1;if(!o.delete(e))return!1;if(0===o.size){var a=t.get(r);E(a)||(a.delete(i),0===a.size&&t.delete(a))}return!0}};return p.registerProvider(r),r;function n(n,i,o){var a=t.get(n),c=!1;if(E(a)){if(!o)return;a=new l,t.set(n,a),c=!0}var u=a.get(i);if(E(u)){if(!o)return;if(u=new l,a.set(i,u),!e.setProvider(n,i,r))throw a.delete(i),c&&t.delete(n),new Error("Wrong provider for target.")}return u}}(p);function g(e,t,r){if(b(e,t,r))return!0;var n=L(t);return!k(n)&&g(e,n,r)}function b(e,t,r){var n=V(t,r,!1);return!E(n)&&T(n.OrdinaryHasOwnMetadata(e,t,r))}function w(e,t,r){if(b(e,t,r))return _(e,t,r);var n=L(t);return k(n)?void 0:w(e,n,r)}function _(e,t,r){var n=V(t,r,!1);if(!E(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function j(e,t,r,n){V(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function O(e,t){var r=m(e,t),n=L(e);if(null===n)return r;var i=O(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var o=new y,a=[],c=0,u=r;c<u.length;c++){var s=u[c];o.has(s)||(o.add(s),a.push(s))}for(var f=0,l=i;f<l.length;f++)s=l[f],o.has(s)||(o.add(s),a.push(s));return a}function m(e,t){var r=V(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function M(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function E(e){return void 0===e}function k(e){return null===e}function I(e){return"object"==typeof e?null!==e:"function"==typeof e}function R(e,t){switch(M(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=C(e,i);if(void 0!==n){var o=n.call(e,r);if(I(o))throw new TypeError;return o}return function(e,t){if("string"===t){var r=e.toString;if(K(r)&&!I(i=r.call(e)))return i;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i}else{var n;if(K(n=e.valueOf)&&!I(i=n.call(e)))return i;var i,o=e.toString;if(K(o)&&!I(i=o.call(e)))return i}throw new TypeError}(e,"default"===r?"number":r)}function T(e){return!!e}function P(e){var t=R(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function x(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function K(e){return"function"==typeof e}function S(e){return"function"==typeof e}function F(e,t){return e===t||e!=e&&t!=t}function C(e,t){var r=e[t];if(null!=r){if(!K(r))throw new TypeError;return r}}function A(e){var t=C(e,o);if(!K(t))throw new TypeError;var r=t.call(e);if(!I(r))throw new TypeError;return r}function D(e){return e.value}function N(e){var t=e.next();return!t.done&&t}function z(e){var t=e.return;t&&t.call(e)}function L(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===f)return t;if(t!==f)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var i=n.constructor;return"function"!=typeof i||i===e?t:i}function V(e,t,r){var n=p.getProvider(e,t);if(!E(n))return n;if(r){if(p.setProvider(e,t,v))return v;throw new Error("Illegal state.")}}function W(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(E(r)){if(!x(e))throw new TypeError;if(!S(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!E(n)&&!k(n)){if(!S(n))throw new TypeError;t=n}}return t}(e,t)}if(!x(e))throw new TypeError;if(!I(t))throw new TypeError;if(!I(n)&&!E(n)&&!k(n))throw new TypeError;return k(n)&&(n=void 0),function(e,t,r,n){for(var i=e.length-1;i>=0;--i){var o=(0,e[i])(t,r,n);if(!E(o)&&!k(o)){if(!I(o))throw new TypeError;n=o}}return n}(e,t,r=P(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!I(r))throw new TypeError;if(!E(n)&&!function(e){switch(M(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;j(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!I(r))throw new TypeError;return E(n)||(n=P(n)),j(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),g(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),b(e,t,r)})),e("getMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),w(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!I(t))throw new TypeError;return E(r)||(r=P(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),O(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!I(e))throw new TypeError;return E(t)||(t=P(t)),m(e,t)})),e("deleteMetadata",(function(e,t,r){if(!I(t))throw new TypeError;if(E(r)||(r=P(r)),!I(t))throw new TypeError;E(r)||(r=P(r));var n=V(t,r,!1);return!E(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(n,t),void 0===t.Reflect&&(t.Reflect=e)}()}(n||(n={}))}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(729)})()));
@@ -1 +1,70 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.Injectables=void 0;let registry_1=require("./registry.cjs");class Injectables{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return Injectables.getRegistry().get(e,...t)}static register(e,...t){return Injectables.getRegistry().register(e,...t)}static build(e,...t){return Injectables.getRegistry().build(e,...t)}static setRegistry(e){Injectables.actingInjectablesRegistry=e}static getRegistry(){return Injectables.actingInjectablesRegistry||(Injectables.actingInjectablesRegistry=new registry_1.InjectableRegistryImp),Injectables.actingInjectablesRegistry}static reset(){this.setRegistry(new registry_1.InjectableRegistryImp)}static selectiveReset(e){let c="string"==typeof e?new RegExp(e):e;Injectables.actingInjectablesRegistry.cache=Object.entries(Injectables.actingInjectablesRegistry.cache).reduce((e,[t,s])=>(t.match(c)||(e[t]=s),e),{})}}exports.Injectables=Injectables;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Injectables = void 0;
4
+ const registry_1 = require("./registry.cjs");
5
+ /**
6
+ * @summary Static class Holding the access to the injectables functions
7
+ *
8
+ * @class Injectables
9
+ * @static
10
+ */
11
+ class Injectables {
12
+ static { this.actingInjectablesRegistry = undefined; }
13
+ constructor() { }
14
+ /**
15
+ * @summary Retrieves the named {@link Injectable} from the registry
16
+ * @param {string} name
17
+ * @param {any[]} args
18
+ */
19
+ static get(name, ...args) {
20
+ return Injectables.getRegistry().get(name, ...args);
21
+ }
22
+ /**
23
+ * @summary registers an injectable constructor
24
+ * @param {Injectable} constructor
25
+ * @param {any[]} args
26
+ *
27
+ */
28
+ static register(constructor, ...args) {
29
+ return Injectables.getRegistry().register(constructor, ...args);
30
+ }
31
+ /**
32
+ * @summary Instantiates an Injectable
33
+ * @param {Record<string, any>} obj
34
+ * @param {any[]} args
35
+ * @return T
36
+ *
37
+ */
38
+ static build(obj, ...args) {
39
+ return Injectables.getRegistry().build(obj, ...args);
40
+ }
41
+ /**
42
+ * @summary Sets a new {@link InjectablesRegistry}
43
+ * @param {InjectablesRegistry} operationsRegistry the new implementation of Registry
44
+ */
45
+ static setRegistry(operationsRegistry) {
46
+ Injectables.actingInjectablesRegistry = operationsRegistry;
47
+ }
48
+ /**
49
+ * @summary Returns the current {@link InjectablesRegistry}
50
+ */
51
+ static getRegistry() {
52
+ if (!Injectables.actingInjectablesRegistry)
53
+ Injectables.actingInjectablesRegistry = new registry_1.InjectableRegistryImp();
54
+ return Injectables.actingInjectablesRegistry;
55
+ }
56
+ static reset() {
57
+ this.setRegistry(new registry_1.InjectableRegistryImp());
58
+ }
59
+ static selectiveReset(match) {
60
+ const regexp = typeof match === "string" ? new RegExp(match) : match;
61
+ Injectables.actingInjectablesRegistry["cache"] = Object.entries(Injectables.actingInjectablesRegistry["cache"]).reduce((accum, [key, val]) => {
62
+ if (!key.match(regexp))
63
+ accum[key] = val;
64
+ return accum;
65
+ }, {});
66
+ }
67
+ }
68
+ exports.Injectables = Injectables;
69
+
70
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9JbmplY3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FJb0I7QUFFcEI7Ozs7O0dBS0c7QUFDSCxNQUFhLFdBQVc7YUFDUCw4QkFBeUIsR0FBeUIsU0FBUyxDQUFDO0lBRTNFLGdCQUF1QixDQUFDO0lBRXhCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFJLElBQVksRUFBRSxHQUFHLElBQVc7UUFDeEMsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUksV0FBMEIsRUFBRSxHQUFHLElBQVc7UUFDM0QsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFJLEdBQXdCLEVBQUUsR0FBRyxJQUFXO1FBQ3RELE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxrQkFBdUM7UUFDeEQsV0FBVyxDQUFDLHlCQUF5QixHQUFHLGtCQUFrQixDQUFDO0lBQzdELENBQUM7SUFDRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyxXQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCO1lBQ3hDLFdBQVcsQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLGdDQUFxQixFQUFFLENBQUM7UUFDdEUsT0FBTyxXQUFXLENBQUMseUJBQXlCLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdDQUFxQixFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFzQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDcEUsV0FBVyxDQUFDLHlCQUFpQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ3JFLFdBQVcsQ0FBQyx5QkFBaUMsQ0FBQyxPQUFPLENBQUMsQ0FDeEQsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUEwQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDekMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOztBQS9ESCxrQ0FnRUMiLCJmaWxlIjoiSW5qZWN0YWJsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBJbmplY3RhYmxlUmVnaXN0cnlJbXAsXG4gIEluamVjdGFibGVzUmVnaXN0cnksXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5cbi8qKlxuICogQHN1bW1hcnkgU3RhdGljIGNsYXNzIEhvbGRpbmcgdGhlIGFjY2VzcyB0byB0aGUgaW5qZWN0YWJsZXMgZnVuY3Rpb25zXG4gKlxuICogQGNsYXNzIEluamVjdGFibGVzXG4gKiBAc3RhdGljXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmplY3RhYmxlcyB7XG4gIHByaXZhdGUgc3RhdGljIGFjdGluZ0luamVjdGFibGVzUmVnaXN0cnk/OiBJbmplY3RhYmxlc1JlZ2lzdHJ5ID0gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIG5hbWVkIHtAbGluayBJbmplY3RhYmxlfSBmcm9tIHRoZSByZWdpc3RyeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqL1xuICBzdGF0aWMgZ2V0PFQ+KG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBJbmplY3RhYmxlPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuZ2V0UmVnaXN0cnkoKS5nZXQobmFtZSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgcmVnaXN0ZXJzIGFuIGluamVjdGFibGUgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtJbmplY3RhYmxlfSBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqXG4gICAqL1xuICBzdGF0aWMgcmVnaXN0ZXI8VD4oY29uc3RydWN0b3I6IEluamVjdGFibGU8VD4sIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgcmV0dXJuIEluamVjdGFibGVzLmdldFJlZ2lzdHJ5KCkucmVnaXN0ZXIoY29uc3RydWN0b3IsIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEluc3RhbnRpYXRlcyBhbiBJbmplY3RhYmxlXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb2JqXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICogQHJldHVybiBUXG4gICAqXG4gICAqL1xuICBzdGF0aWMgYnVpbGQ8VD4ob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCAuLi5hcmdzOiBhbnlbXSk6IFQge1xuICAgIHJldHVybiBJbmplY3RhYmxlcy5nZXRSZWdpc3RyeSgpLmJ1aWxkKG9iaiwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgU2V0cyBhIG5ldyB7QGxpbmsgSW5qZWN0YWJsZXNSZWdpc3RyeX1cbiAgICogQHBhcmFtIHtJbmplY3RhYmxlc1JlZ2lzdHJ5fSBvcGVyYXRpb25zUmVnaXN0cnkgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBSZWdpc3RyeVxuICAgKi9cbiAgc3RhdGljIHNldFJlZ2lzdHJ5KG9wZXJhdGlvbnNSZWdpc3RyeTogSW5qZWN0YWJsZXNSZWdpc3RyeSkge1xuICAgIEluamVjdGFibGVzLmFjdGluZ0luamVjdGFibGVzUmVnaXN0cnkgPSBvcGVyYXRpb25zUmVnaXN0cnk7XG4gIH1cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGN1cnJlbnQge0BsaW5rIEluamVjdGFibGVzUmVnaXN0cnl9XG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRSZWdpc3RyeSgpIHtcbiAgICBpZiAoIUluamVjdGFibGVzLmFjdGluZ0luamVjdGFibGVzUmVnaXN0cnkpXG4gICAgICBJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5ID0gbmV3IEluamVjdGFibGVSZWdpc3RyeUltcCgpO1xuICAgIHJldHVybiBJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5O1xuICB9XG5cbiAgc3RhdGljIHJlc2V0KCkge1xuICAgIHRoaXMuc2V0UmVnaXN0cnkobmV3IEluamVjdGFibGVSZWdpc3RyeUltcCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBzZWxlY3RpdmVSZXNldChtYXRjaDogc3RyaW5nIHwgUmVnRXhwKSB7XG4gICAgY29uc3QgcmVnZXhwID0gdHlwZW9mIG1hdGNoID09PSBcInN0cmluZ1wiID8gbmV3IFJlZ0V4cChtYXRjaCkgOiBtYXRjaDtcbiAgICAoSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSBhcyBhbnkpW1wiY2FjaGVcIl0gPSBPYmplY3QuZW50cmllcyhcbiAgICAgIChJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5IGFzIGFueSlbXCJjYWNoZVwiXSxcbiAgICApLnJlZHVjZSgoYWNjdW06IFJlY29yZDxzdHJpbmcsIGFueT4sIFtrZXksIHZhbF0pID0+IHtcbiAgICAgIGlmICgha2V5Lm1hdGNoKHJlZ2V4cCkpIGFjY3VtW2tleV0gPSB2YWw7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwge30pO1xuICB9XG59XG4iXX0=
package/lib/constants.cjs CHANGED
@@ -1 +1,20 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.InjectablesKeys=void 0,exports.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectablesKeys = void 0;
4
+ /**
5
+ * @summary Injectables Reflection keys
6
+ * @const InjectablesKeys
7
+ *
8
+ * @property {string} REFLECT Reflection injectables base key
9
+ * @property {string} INJECTABLE Reflection injectable key
10
+ * @property {string} INJECT Reflection inject key
11
+ *
12
+ * @memberOf injectable-decorators
13
+ */
14
+ exports.InjectablesKeys = {
15
+ REFLECT: "inject.db.",
16
+ INJECTABLE: "injectable",
17
+ INJECT: "inject",
18
+ };
19
+
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSxlQUFlLEdBQUc7SUFDN0IsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQyIsImZpbGUiOiJjb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IEluamVjdGFibGVzIFJlZmxlY3Rpb24ga2V5c1xuICogQGNvbnN0IEluamVjdGFibGVzS2V5c1xuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUZMRUNUIFJlZmxlY3Rpb24gaW5qZWN0YWJsZXMgYmFzZSBrZXlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJTkpFQ1RBQkxFIFJlZmxlY3Rpb24gaW5qZWN0YWJsZSBrZXlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJTkpFQ1QgUmVmbGVjdGlvbiBpbmplY3Qga2V5XG4gKlxuICogQG1lbWJlck9mIGluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSW5qZWN0YWJsZXNLZXlzID0ge1xuICBSRUZMRUNUOiBcImluamVjdC5kYi5cIixcbiAgSU5KRUNUQUJMRTogXCJpbmplY3RhYmxlXCIsXG4gIElOSkVDVDogXCJpbmplY3RcIixcbn07XG4iXX0=
@@ -1 +1,135 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.inject=exports.injectable=void 0;let constants_1=require("./constants.cjs"),Injectables_1=require("./Injectables.cjs"),utils_1=require("./utils.cjs"),getInjectKey=e=>constants_1.InjectablesKeys.REFLECT+e,injectable=(t=void 0,c=!1,o)=>n=>{let r=t||n.name;function e(...e){let t=Injectables_1.Injectables.get(r,...e);if(!t){if(Injectables_1.Injectables.register(n,r,!0,c),!(t=Injectables_1.Injectables.get(r,...e)))return;if(o)try{o(t)}catch(e){console.error(`Failed to call injectable callback for ${r}: `+e)}}return e=Object.assign({},{class:r}),Reflect.defineMetadata(getInjectKey(constants_1.InjectablesKeys.INJECTABLE),e,t.constructor),t}return e.prototype=n.prototype,Object.defineProperty(e,"name",{writable:!1,enumerable:!0,configurable:!1,value:n.prototype.constructor.name}),e},inject=(exports.injectable=injectable,(e,o)=>(t,n)=>{let r=new WeakMap,c=e||(0,utils_1.getTypeFromDecorator)(t,n);if(!c)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(getInjectKey(constants_1.InjectablesKeys.INJECT),{injectable:c},t,n),Object.defineProperty(t,n,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(t,n).configurable)return Object.defineProperty(this,n,{enumerable:!0,configurable:!1,get(){let e=r.get(this);if(!e){if(!(e=Injectables_1.Injectables.get(c)))throw new Error(`Could not get Injectable ${c} to inject in ${(t.constructor||t).name}'s `+n);if(o)try{e=o(e,t)}catch(e){console.error(e)}r.set(this,e)}return e}}),this[n]}})});exports.inject=inject;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inject = exports.injectable = void 0;
4
+ const constants_1 = require("./constants.cjs");
5
+ const Injectables_1 = require("./Injectables.cjs");
6
+ const utils_1 = require("./utils.cjs");
7
+ /**
8
+ * @summary Return the reflection key for injectables
9
+ *
10
+ * @param {string} key
11
+ * @function getInjectKey
12
+ *
13
+ * @memberOf module:injectable-decorators
14
+ */
15
+ const getInjectKey = (key) => constants_1.InjectablesKeys.REFLECT + key;
16
+ /**
17
+ * @summary Defines a class as an injectable
18
+ *
19
+ * @param {string} [category] defaults to the class Name. (Useful when minification occours and names are changed so we can no longer rely on the class name, or when we want to upcast the Object)
20
+ * @param {boolean} [force] defines if the injectable should override the already existing instance (if any). (only meant for extending decorators
21
+ * @param instanceCallback
22
+ *
23
+ * @function injectable
24
+ *
25
+ * @memberOf module:injectable-decorators.Decorators
26
+ */
27
+ const injectable = (category = undefined, force = false, instanceCallback) => (original) => {
28
+ const name = category || original.name;
29
+ // the new constructor behaviour
30
+ const newConstructor = function (...args) {
31
+ let inj = Injectables_1.Injectables.get(name, ...args);
32
+ if (!inj) {
33
+ Injectables_1.Injectables.register(original, name, true, force);
34
+ inj = Injectables_1.Injectables.get(name, ...args);
35
+ if (!inj)
36
+ return undefined;
37
+ if (instanceCallback)
38
+ try {
39
+ instanceCallback(inj);
40
+ }
41
+ catch (e) {
42
+ console.error(`Failed to call injectable callback for ${name}: ${e}`);
43
+ }
44
+ }
45
+ const metadata = Object.assign({}, {
46
+ class: name,
47
+ });
48
+ Reflect.defineMetadata(getInjectKey(constants_1.InjectablesKeys.INJECTABLE), metadata, inj.constructor);
49
+ return inj;
50
+ };
51
+ // copy prototype so instanceof operator still works
52
+ newConstructor.prototype = original.prototype;
53
+ // newConstructor.__proto__ = original.__proto__;
54
+ // Sets the proper constructor name for type verification
55
+ Object.defineProperty(newConstructor, "name", {
56
+ writable: false,
57
+ enumerable: true,
58
+ configurable: false,
59
+ value: original.prototype.constructor.name,
60
+ });
61
+ // return new constructor (will override original)
62
+ return newConstructor;
63
+ };
64
+ exports.injectable = injectable;
65
+ /**
66
+ * @summary Allows for the injection of an {@link injectable} decorated dependency
67
+ * @description the property must be typed for the requested dependency.
68
+ *
69
+ * Only concrete classes. No generics are supported
70
+ *
71
+ * Injected properties should be described like so:
72
+ * <pre>
73
+ * class ClassName {
74
+ * ...
75
+ *
76
+ * @inject()
77
+ * propertyName!: InjectableClass;
78
+ *
79
+ * ...
80
+ * }
81
+ * </pre>
82
+ *
83
+ * where InjectableClass is the class you want to inject.
84
+ * Notice the use of '!:' to ensure the transpiler the property will be set outside the constructor but will always be defined
85
+ * For project where minification occours, you should use the category param to ensure the name is the same throughout
86
+ *
87
+ * @param {string} [category] defaults to the class Name. (Useful when minification occours and names are changed so we can no longer rely on the class name, or when we want to upcast the Object)
88
+ * @param {InstanceTransformer} [transformer]
89
+ *
90
+ * @function inject
91
+ *
92
+ * @memberOf module:injectable-decorators.Decorators
93
+ */
94
+ const inject = (category, transformer) => (target, propertyKey) => {
95
+ const values = new WeakMap();
96
+ const name = category || (0, utils_1.getTypeFromDecorator)(target, propertyKey);
97
+ if (!name)
98
+ throw new Error(`Could not get Type from decorator`);
99
+ Reflect.defineMetadata(getInjectKey(constants_1.InjectablesKeys.INJECT), {
100
+ injectable: name,
101
+ }, target, propertyKey);
102
+ Object.defineProperty(target, propertyKey, {
103
+ configurable: true,
104
+ get() {
105
+ const descriptor = Object.getOwnPropertyDescriptor(target, propertyKey);
106
+ if (descriptor.configurable) {
107
+ Object.defineProperty(this, propertyKey, {
108
+ enumerable: true,
109
+ configurable: false,
110
+ get() {
111
+ let obj = values.get(this);
112
+ if (!obj) {
113
+ obj = Injectables_1.Injectables.get(name);
114
+ if (!obj)
115
+ throw new Error(`Could not get Injectable ${name} to inject in ${target.constructor ? target.constructor.name : target.name}'s ${propertyKey}`);
116
+ if (transformer)
117
+ try {
118
+ obj = transformer(obj, target);
119
+ }
120
+ catch (e) {
121
+ console.error(e);
122
+ }
123
+ values.set(this, obj);
124
+ }
125
+ return obj;
126
+ },
127
+ });
128
+ return this[propertyKey];
129
+ }
130
+ },
131
+ });
132
+ };
133
+ exports.inject = inject;
134
+
135
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDO3dCQUN4QixDQUFDO3dCQUNELE9BQU8sR0FBRyxDQUFDO29CQUNiLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBcERTLFFBQUEsTUFBTSxVQW9EZiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZXNLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlcyB9IGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5pbXBvcnQgeyBnZXRUeXBlRnJvbURlY29yYXRvciB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgUmV0dXJuIHRoZSByZWZsZWN0aW9uIGtleSBmb3IgaW5qZWN0YWJsZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiBAZnVuY3Rpb24gZ2V0SW5qZWN0S2V5XG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuY29uc3QgZ2V0SW5qZWN0S2V5ID0gKGtleTogc3RyaW5nKSA9PiBJbmplY3RhYmxlc0tleXMuUkVGTEVDVCArIGtleTtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgY2xhc3MgYXMgYW4gaW5qZWN0YWJsZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbY2F0ZWdvcnldIGRlZmF1bHRzIHRvIHRoZSBjbGFzcyBOYW1lLiAoVXNlZnVsIHdoZW4gbWluaWZpY2F0aW9uIG9jY291cnMgYW5kIG5hbWVzIGFyZSBjaGFuZ2VkIHNvIHdlIGNhbiBubyBsb25nZXIgcmVseSBvbiB0aGUgY2xhc3MgbmFtZSwgb3Igd2hlbiB3ZSB3YW50IHRvIHVwY2FzdCB0aGUgT2JqZWN0KVxuICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VdIGRlZmluZXMgaWYgdGhlIGluamVjdGFibGUgc2hvdWxkIG92ZXJyaWRlIHRoZSBhbHJlYWR5IGV4aXN0aW5nIGluc3RhbmNlIChpZiBhbnkpLiAob25seSBtZWFudCBmb3IgZXh0ZW5kaW5nIGRlY29yYXRvcnNcbiAqIEBwYXJhbSBpbnN0YW5jZUNhbGxiYWNrXG4gKlxuICogQGZ1bmN0aW9uIGluamVjdGFibGVcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9ycy5EZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RhYmxlID1cbiAgKFxuICAgIGNhdGVnb3J5OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpbnN0YW5jZUNhbGxiYWNrPzogKGluc3RhbmNlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICApID0+XG4gIChvcmlnaW5hbDogYW55KSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGNhdGVnb3J5IHx8IG9yaWdpbmFsLm5hbWU7XG4gICAgLy8gdGhlIG5ldyBjb25zdHJ1Y3RvciBiZWhhdmlvdXJcbiAgICBjb25zdCBuZXdDb25zdHJ1Y3RvcjogYW55ID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBsZXQgaW5qOiBhbnkgPSBJbmplY3RhYmxlcy5nZXQ8YW55PihuYW1lLCAuLi5hcmdzKTtcbiAgICAgIGlmICghaW5qKSB7XG4gICAgICAgIEluamVjdGFibGVzLnJlZ2lzdGVyKG9yaWdpbmFsLCBuYW1lLCB0cnVlLCBmb3JjZSk7XG4gICAgICAgIGluaiA9IEluamVjdGFibGVzLmdldDxhbnk+KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICBpZiAoIWluaikgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoaW5zdGFuY2VDYWxsYmFjaylcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5zdGFuY2VDYWxsYmFjayhpbmopO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBjYWxsIGluamVjdGFibGUgY2FsbGJhY2sgZm9yICR7bmFtZX06ICR7ZX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzczogbmFtZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICAgIGdldEluamVjdEtleShJbmplY3RhYmxlc0tleXMuSU5KRUNUQUJMRSksXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBpbmouY29uc3RydWN0b3IsXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gaW5qO1xuICAgIH07XG5cbiAgICAvLyBjb3B5IHByb3RvdHlwZSBzbyBpbnN0YW5jZW9mIG9wZXJhdG9yIHN0aWxsIHdvcmtzXG4gICAgbmV3Q29uc3RydWN0b3IucHJvdG90eXBlID0gb3JpZ2luYWwucHJvdG90eXBlO1xuICAgIC8vIG5ld0NvbnN0cnVjdG9yLl9fcHJvdG9fXyA9IG9yaWdpbmFsLl9fcHJvdG9fXztcbiAgICAvLyBTZXRzIHRoZSBwcm9wZXIgY29uc3RydWN0b3IgbmFtZSBmb3IgdHlwZSB2ZXJpZmljYXRpb25cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3Q29uc3RydWN0b3IsIFwibmFtZVwiLCB7XG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBvcmlnaW5hbC5wcm90b3R5cGUuY29uc3RydWN0b3IubmFtZSxcbiAgICB9KTtcbiAgICAvLyByZXR1cm4gbmV3IGNvbnN0cnVjdG9yICh3aWxsIG92ZXJyaWRlIG9yaWdpbmFsKVxuICAgIHJldHVybiBuZXdDb25zdHJ1Y3RvcjtcbiAgfTtcblxuLyoqXG4gKiBAc3VtbWFyeSBmdW5jdGlvbiB3aXRjaCB0cmFuc2Zvcm1zIGEgY2FjaGVkIHtAbGluayBpbmplY3RhYmxlfVxuICpcbiAqIEBwYXJhbSB7YW55fSBpbmplY3RhYmxlXG4gKiBAcGFyYW0ge2FueX0gb2JqIHRoZSBvYmogdGhlIGluamVjdGFibGUgd2lsbCBiZSBpbmplY3RlZCBvblxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlVHJhbnNmb3JtZXIgPSAoaW5qZWN0YWJsZTogYW55LCBvYmo6IGFueSkgPT4gYW55O1xuXG4vKipcbiAqIEBzdW1tYXJ5IEFsbG93cyBmb3IgdGhlIGluamVjdGlvbiBvZiBhbiB7QGxpbmsgaW5qZWN0YWJsZX0gZGVjb3JhdGVkIGRlcGVuZGVuY3lcbiAqIEBkZXNjcmlwdGlvbiB0aGUgcHJvcGVydHkgbXVzdCBiZSB0eXBlZCBmb3IgdGhlIHJlcXVlc3RlZCBkZXBlbmRlbmN5LlxuICpcbiAqIE9ubHkgY29uY3JldGUgY2xhc3Nlcy4gTm8gZ2VuZXJpY3MgYXJlIHN1cHBvcnRlZFxuICpcbiAqIEluamVjdGVkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGRlc2NyaWJlZCBsaWtlIHNvOlxuICogPHByZT5cbiAqICAgICBjbGFzcyBDbGFzc05hbWUge1xuICogICAgICAgICAuLi5cbiAqXG4gKiAgICAgICAgIEBpbmplY3QoKVxuICogICAgICAgICBwcm9wZXJ0eU5hbWUhOiBJbmplY3RhYmxlQ2xhc3M7XG4gKlxuICogICAgICAgICAuLi5cbiAqICAgICB9XG4gKiA8L3ByZT5cbiAqXG4gKiB3aGVyZSBJbmplY3RhYmxlQ2xhc3MgaXMgdGhlIGNsYXNzIHlvdSB3YW50IHRvIGluamVjdC5cbiAqIE5vdGljZSB0aGUgdXNlIG9mICchOicgdG8gZW5zdXJlIHRoZSB0cmFuc3BpbGVyIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHNldCBvdXRzaWRlIHRoZSBjb25zdHJ1Y3RvciBidXQgd2lsbCBhbHdheXMgYmUgZGVmaW5lZFxuICogRm9yIHByb2plY3Qgd2hlcmUgbWluaWZpY2F0aW9uIG9jY291cnMsIHlvdSBzaG91bGQgdXNlIHRoZSBjYXRlZ29yeSBwYXJhbSB0byBlbnN1cmUgdGhlIG5hbWUgaXMgdGhlIHNhbWUgdGhyb3VnaG91dFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbY2F0ZWdvcnldIGRlZmF1bHRzIHRvIHRoZSBjbGFzcyBOYW1lLiAoVXNlZnVsIHdoZW4gbWluaWZpY2F0aW9uIG9jY291cnMgYW5kIG5hbWVzIGFyZSBjaGFuZ2VkIHNvIHdlIGNhbiBubyBsb25nZXIgcmVseSBvbiB0aGUgY2xhc3MgbmFtZSwgb3Igd2hlbiB3ZSB3YW50IHRvIHVwY2FzdCB0aGUgT2JqZWN0KVxuICogQHBhcmFtIHtJbnN0YW5jZVRyYW5zZm9ybWVyfSBbdHJhbnNmb3JtZXJdXG4gKlxuICogQGZ1bmN0aW9uIGluamVjdFxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzLkRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IGluamVjdCA9XG4gIChjYXRlZ29yeT86IHN0cmluZywgdHJhbnNmb3JtZXI/OiBJbnN0YW5jZVRyYW5zZm9ybWVyKSA9PlxuICAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgY29uc3QgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgIGNhdGVnb3J5IHx8IGdldFR5cGVGcm9tRGVjb3JhdG9yKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIGlmICghbmFtZSkgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZ2V0IFR5cGUgZnJvbSBkZWNvcmF0b3JgKTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBnZXRJbmplY3RLZXkoSW5qZWN0YWJsZXNLZXlzLklOSkVDVCksXG4gICAgICB7XG4gICAgICAgIGluamVjdGFibGU6IG5hbWUsXG4gICAgICB9LFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXksXG4gICAgKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5LCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQodGhpczogYW55KSB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIHByb3BlcnR5S2V5LFxuICAgICAgICApIGFzIFByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5S2V5LCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGdldCh0aGlzOiBhbnkpIHtcbiAgICAgICAgICAgICAgbGV0IG9iaiA9IHZhbHVlcy5nZXQodGhpcyk7XG4gICAgICAgICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICAgICAgb2JqID0gSW5qZWN0YWJsZXMuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICghb2JqKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgQ291bGQgbm90IGdldCBJbmplY3RhYmxlICR7bmFtZX0gdG8gaW5qZWN0IGluICR7dGFyZ2V0LmNvbnN0cnVjdG9yID8gdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWUgOiB0YXJnZXQubmFtZX0ncyAke3Byb3BlcnR5S2V5fWAsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1lcilcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIG9iaiA9IHRyYW5zZm9ybWVyKG9iaiwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2V0KHRoaXMsIG9iaik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXNbcHJvcGVydHlLZXldO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuIl19
@@ -1 +1,66 @@
1
- import{InjectableRegistryImp}from"./registry";class Injectables{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return Injectables.getRegistry().get(e,...t)}static register(e,...t){return Injectables.getRegistry().register(e,...t)}static build(e,...t){return Injectables.getRegistry().build(e,...t)}static setRegistry(e){Injectables.actingInjectablesRegistry=e}static getRegistry(){return Injectables.actingInjectablesRegistry||(Injectables.actingInjectablesRegistry=new InjectableRegistryImp),Injectables.actingInjectablesRegistry}static reset(){this.setRegistry(new InjectableRegistryImp)}static selectiveReset(e){let c="string"==typeof e?new RegExp(e):e;Injectables.actingInjectablesRegistry.cache=Object.entries(Injectables.actingInjectablesRegistry.cache).reduce((e,[t,s])=>(t.match(c)||(e[t]=s),e),{})}}export{Injectables};
1
+ import { InjectableRegistryImp, } from "./registry";
2
+ /**
3
+ * @summary Static class Holding the access to the injectables functions
4
+ *
5
+ * @class Injectables
6
+ * @static
7
+ */
8
+ export class Injectables {
9
+ static { this.actingInjectablesRegistry = undefined; }
10
+ constructor() { }
11
+ /**
12
+ * @summary Retrieves the named {@link Injectable} from the registry
13
+ * @param {string} name
14
+ * @param {any[]} args
15
+ */
16
+ static get(name, ...args) {
17
+ return Injectables.getRegistry().get(name, ...args);
18
+ }
19
+ /**
20
+ * @summary registers an injectable constructor
21
+ * @param {Injectable} constructor
22
+ * @param {any[]} args
23
+ *
24
+ */
25
+ static register(constructor, ...args) {
26
+ return Injectables.getRegistry().register(constructor, ...args);
27
+ }
28
+ /**
29
+ * @summary Instantiates an Injectable
30
+ * @param {Record<string, any>} obj
31
+ * @param {any[]} args
32
+ * @return T
33
+ *
34
+ */
35
+ static build(obj, ...args) {
36
+ return Injectables.getRegistry().build(obj, ...args);
37
+ }
38
+ /**
39
+ * @summary Sets a new {@link InjectablesRegistry}
40
+ * @param {InjectablesRegistry} operationsRegistry the new implementation of Registry
41
+ */
42
+ static setRegistry(operationsRegistry) {
43
+ Injectables.actingInjectablesRegistry = operationsRegistry;
44
+ }
45
+ /**
46
+ * @summary Returns the current {@link InjectablesRegistry}
47
+ */
48
+ static getRegistry() {
49
+ if (!Injectables.actingInjectablesRegistry)
50
+ Injectables.actingInjectablesRegistry = new InjectableRegistryImp();
51
+ return Injectables.actingInjectablesRegistry;
52
+ }
53
+ static reset() {
54
+ this.setRegistry(new InjectableRegistryImp());
55
+ }
56
+ static selectiveReset(match) {
57
+ const regexp = typeof match === "string" ? new RegExp(match) : match;
58
+ Injectables.actingInjectablesRegistry["cache"] = Object.entries(Injectables.actingInjectablesRegistry["cache"]).reduce((accum, [key, val]) => {
59
+ if (!key.match(regexp))
60
+ accum[key] = val;
61
+ return accum;
62
+ }, {});
63
+ }
64
+ }
65
+
66
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9JbmplY3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwscUJBQXFCLEdBRXRCLE1BQU0sWUFBWSxDQUFDO0FBRXBCOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7YUFDUCw4QkFBeUIsR0FBeUIsU0FBUyxDQUFDO0lBRTNFLGdCQUF1QixDQUFDO0lBRXhCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFJLElBQVksRUFBRSxHQUFHLElBQVc7UUFDeEMsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUksV0FBMEIsRUFBRSxHQUFHLElBQVc7UUFDM0QsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFJLEdBQXdCLEVBQUUsR0FBRyxJQUFXO1FBQ3RELE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxrQkFBdUM7UUFDeEQsV0FBVyxDQUFDLHlCQUF5QixHQUFHLGtCQUFrQixDQUFDO0lBQzdELENBQUM7SUFDRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyxXQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCO1lBQ3hDLFdBQVcsQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDdEUsT0FBTyxXQUFXLENBQUMseUJBQXlCLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFzQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDcEUsV0FBVyxDQUFDLHlCQUFpQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ3JFLFdBQVcsQ0FBQyx5QkFBaUMsQ0FBQyxPQUFPLENBQUMsQ0FDeEQsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUEwQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDekMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDIiwiZmlsZSI6IkluamVjdGFibGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wLFxuICBJbmplY3RhYmxlc1JlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFN0YXRpYyBjbGFzcyBIb2xkaW5nIHRoZSBhY2Nlc3MgdG8gdGhlIGluamVjdGFibGVzIGZ1bmN0aW9uc1xuICpcbiAqIEBjbGFzcyBJbmplY3RhYmxlc1xuICogQHN0YXRpY1xuICovXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZXMge1xuICBwcml2YXRlIHN0YXRpYyBhY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5PzogSW5qZWN0YWJsZXNSZWdpc3RyeSA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBuYW1lZCB7QGxpbmsgSW5qZWN0YWJsZX0gZnJvbSB0aGUgcmVnaXN0cnlcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHthbnlbXX0gYXJnc1xuICAgKi9cbiAgc3RhdGljIGdldDxUPihuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogSW5qZWN0YWJsZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEluamVjdGFibGVzLmdldFJlZ2lzdHJ5KCkuZ2V0KG5hbWUsIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHJlZ2lzdGVycyBhbiBpbmplY3RhYmxlIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7SW5qZWN0YWJsZX0gY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHthbnlbXX0gYXJnc1xuICAgKlxuICAgKi9cbiAgc3RhdGljIHJlZ2lzdGVyPFQ+KGNvbnN0cnVjdG9yOiBJbmplY3RhYmxlPFQ+LCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHJldHVybiBJbmplY3RhYmxlcy5nZXRSZWdpc3RyeSgpLnJlZ2lzdGVyKGNvbnN0cnVjdG9yLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBJbnN0YW50aWF0ZXMgYW4gSW5qZWN0YWJsZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG9ialxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqIEByZXR1cm4gVFxuICAgKlxuICAgKi9cbiAgc3RhdGljIGJ1aWxkPFQ+KG9iajogUmVjb3JkPHN0cmluZywgYW55PiwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuZ2V0UmVnaXN0cnkoKS5idWlsZChvYmosIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFNldHMgYSBuZXcge0BsaW5rIEluamVjdGFibGVzUmVnaXN0cnl9XG4gICAqIEBwYXJhbSB7SW5qZWN0YWJsZXNSZWdpc3RyeX0gb3BlcmF0aW9uc1JlZ2lzdHJ5IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gb2YgUmVnaXN0cnlcbiAgICovXG4gIHN0YXRpYyBzZXRSZWdpc3RyeShvcGVyYXRpb25zUmVnaXN0cnk6IEluamVjdGFibGVzUmVnaXN0cnkpIHtcbiAgICBJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5ID0gb3BlcmF0aW9uc1JlZ2lzdHJ5O1xuICB9XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBjdXJyZW50IHtAbGluayBJbmplY3RhYmxlc1JlZ2lzdHJ5fVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UmVnaXN0cnkoKSB7XG4gICAgaWYgKCFJbmplY3RhYmxlcy5hY3RpbmdJbmplY3RhYmxlc1JlZ2lzdHJ5KVxuICAgICAgSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSA9IG5ldyBJbmplY3RhYmxlUmVnaXN0cnlJbXAoKTtcbiAgICByZXR1cm4gSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldCgpIHtcbiAgICB0aGlzLnNldFJlZ2lzdHJ5KG5ldyBJbmplY3RhYmxlUmVnaXN0cnlJbXAoKSk7XG4gIH1cblxuICBzdGF0aWMgc2VsZWN0aXZlUmVzZXQobWF0Y2g6IHN0cmluZyB8IFJlZ0V4cCkge1xuICAgIGNvbnN0IHJlZ2V4cCA9IHR5cGVvZiBtYXRjaCA9PT0gXCJzdHJpbmdcIiA/IG5ldyBSZWdFeHAobWF0Y2gpIDogbWF0Y2g7XG4gICAgKEluamVjdGFibGVzLmFjdGluZ0luamVjdGFibGVzUmVnaXN0cnkgYXMgYW55KVtcImNhY2hlXCJdID0gT2JqZWN0LmVudHJpZXMoXG4gICAgICAoSW5qZWN0YWJsZXMuYWN0aW5nSW5qZWN0YWJsZXNSZWdpc3RyeSBhcyBhbnkpW1wiY2FjaGVcIl0sXG4gICAgKS5yZWR1Y2UoKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICBpZiAoIWtleS5tYXRjaChyZWdleHApKSBhY2N1bVtrZXldID0gdmFsO1xuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sIHt9KTtcbiAgfVxufVxuIl19
@@ -1 +1,17 @@
1
- let InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"};export{InjectablesKeys};
1
+ /**
2
+ * @summary Injectables Reflection keys
3
+ * @const InjectablesKeys
4
+ *
5
+ * @property {string} REFLECT Reflection injectables base key
6
+ * @property {string} INJECTABLE Reflection injectable key
7
+ * @property {string} INJECT Reflection inject key
8
+ *
9
+ * @memberOf injectable-decorators
10
+ */
11
+ export const InjectablesKeys = {
12
+ REFLECT: "inject.db.",
13
+ INJECTABLE: "injectable",
14
+ INJECT: "inject",
15
+ };
16
+
17
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLE1BQU0sRUFBRSxRQUFRO0NBQ2pCLENBQUMiLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc3VtbWFyeSBJbmplY3RhYmxlcyBSZWZsZWN0aW9uIGtleXNcbiAqIEBjb25zdCBJbmplY3RhYmxlc0tleXNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCBSZWZsZWN0aW9uIGluamVjdGFibGVzIGJhc2Uga2V5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU5KRUNUQUJMRSBSZWZsZWN0aW9uIGluamVjdGFibGUga2V5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU5KRUNUIFJlZmxlY3Rpb24gaW5qZWN0IGtleVxuICpcbiAqIEBtZW1iZXJPZiBpbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEluamVjdGFibGVzS2V5cyA9IHtcbiAgUkVGTEVDVDogXCJpbmplY3QuZGIuXCIsXG4gIElOSkVDVEFCTEU6IFwiaW5qZWN0YWJsZVwiLFxuICBJTkpFQ1Q6IFwiaW5qZWN0XCIsXG59O1xuIl19
@@ -1 +1,130 @@
1
- import{InjectablesKeys}from"./constants";import{Injectables}from"./Injectables";import{getTypeFromDecorator}from"./utils";let getInjectKey=e=>InjectablesKeys.REFLECT+e,injectable=(t=void 0,o=!1,c)=>r=>{let n=t||r.name;function e(...e){let t=Injectables.get(n,...e);if(!t){if(Injectables.register(r,n,!0,o),!(t=Injectables.get(n,...e)))return;if(c)try{c(t)}catch(e){console.error(`Failed to call injectable callback for ${n}: `+e)}}return e=Object.assign({},{class:n}),Reflect.defineMetadata(getInjectKey(InjectablesKeys.INJECTABLE),e,t.constructor),t}return e.prototype=r.prototype,Object.defineProperty(e,"name",{writable:!1,enumerable:!0,configurable:!1,value:r.prototype.constructor.name}),e},inject=(e,c)=>(t,r)=>{let n=new WeakMap,o=e||getTypeFromDecorator(t,r);if(!o)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(getInjectKey(InjectablesKeys.INJECT),{injectable:o},t,r),Object.defineProperty(t,r,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(t,r).configurable)return Object.defineProperty(this,r,{enumerable:!0,configurable:!1,get(){let e=n.get(this);if(!e){if(!(e=Injectables.get(o)))throw new Error(`Could not get Injectable ${o} to inject in ${(t.constructor||t).name}'s `+r);if(c)try{e=c(e,t)}catch(e){console.error(e)}n.set(this,e)}return e}}),this[r]}})};export{injectable,inject};
1
+ import { InjectablesKeys } from "./constants";
2
+ import { Injectables } from "./Injectables";
3
+ import { getTypeFromDecorator } from "./utils";
4
+ /**
5
+ * @summary Return the reflection key for injectables
6
+ *
7
+ * @param {string} key
8
+ * @function getInjectKey
9
+ *
10
+ * @memberOf module:injectable-decorators
11
+ */
12
+ const getInjectKey = (key) => InjectablesKeys.REFLECT + key;
13
+ /**
14
+ * @summary Defines a class as an injectable
15
+ *
16
+ * @param {string} [category] defaults to the class Name. (Useful when minification occours and names are changed so we can no longer rely on the class name, or when we want to upcast the Object)
17
+ * @param {boolean} [force] defines if the injectable should override the already existing instance (if any). (only meant for extending decorators
18
+ * @param instanceCallback
19
+ *
20
+ * @function injectable
21
+ *
22
+ * @memberOf module:injectable-decorators.Decorators
23
+ */
24
+ export const injectable = (category = undefined, force = false, instanceCallback) => (original) => {
25
+ const name = category || original.name;
26
+ // the new constructor behaviour
27
+ const newConstructor = function (...args) {
28
+ let inj = Injectables.get(name, ...args);
29
+ if (!inj) {
30
+ Injectables.register(original, name, true, force);
31
+ inj = Injectables.get(name, ...args);
32
+ if (!inj)
33
+ return undefined;
34
+ if (instanceCallback)
35
+ try {
36
+ instanceCallback(inj);
37
+ }
38
+ catch (e) {
39
+ console.error(`Failed to call injectable callback for ${name}: ${e}`);
40
+ }
41
+ }
42
+ const metadata = Object.assign({}, {
43
+ class: name,
44
+ });
45
+ Reflect.defineMetadata(getInjectKey(InjectablesKeys.INJECTABLE), metadata, inj.constructor);
46
+ return inj;
47
+ };
48
+ // copy prototype so instanceof operator still works
49
+ newConstructor.prototype = original.prototype;
50
+ // newConstructor.__proto__ = original.__proto__;
51
+ // Sets the proper constructor name for type verification
52
+ Object.defineProperty(newConstructor, "name", {
53
+ writable: false,
54
+ enumerable: true,
55
+ configurable: false,
56
+ value: original.prototype.constructor.name,
57
+ });
58
+ // return new constructor (will override original)
59
+ return newConstructor;
60
+ };
61
+ /**
62
+ * @summary Allows for the injection of an {@link injectable} decorated dependency
63
+ * @description the property must be typed for the requested dependency.
64
+ *
65
+ * Only concrete classes. No generics are supported
66
+ *
67
+ * Injected properties should be described like so:
68
+ * <pre>
69
+ * class ClassName {
70
+ * ...
71
+ *
72
+ * @inject()
73
+ * propertyName!: InjectableClass;
74
+ *
75
+ * ...
76
+ * }
77
+ * </pre>
78
+ *
79
+ * where InjectableClass is the class you want to inject.
80
+ * Notice the use of '!:' to ensure the transpiler the property will be set outside the constructor but will always be defined
81
+ * For project where minification occours, you should use the category param to ensure the name is the same throughout
82
+ *
83
+ * @param {string} [category] defaults to the class Name. (Useful when minification occours and names are changed so we can no longer rely on the class name, or when we want to upcast the Object)
84
+ * @param {InstanceTransformer} [transformer]
85
+ *
86
+ * @function inject
87
+ *
88
+ * @memberOf module:injectable-decorators.Decorators
89
+ */
90
+ export const inject = (category, transformer) => (target, propertyKey) => {
91
+ const values = new WeakMap();
92
+ const name = category || getTypeFromDecorator(target, propertyKey);
93
+ if (!name)
94
+ throw new Error(`Could not get Type from decorator`);
95
+ Reflect.defineMetadata(getInjectKey(InjectablesKeys.INJECT), {
96
+ injectable: name,
97
+ }, target, propertyKey);
98
+ Object.defineProperty(target, propertyKey, {
99
+ configurable: true,
100
+ get() {
101
+ const descriptor = Object.getOwnPropertyDescriptor(target, propertyKey);
102
+ if (descriptor.configurable) {
103
+ Object.defineProperty(this, propertyKey, {
104
+ enumerable: true,
105
+ configurable: false,
106
+ get() {
107
+ let obj = values.get(this);
108
+ if (!obj) {
109
+ obj = Injectables.get(name);
110
+ if (!obj)
111
+ throw new Error(`Could not get Injectable ${name} to inject in ${target.constructor ? target.constructor.name : target.name}'s ${propertyKey}`);
112
+ if (transformer)
113
+ try {
114
+ obj = transformer(obj, target);
115
+ }
116
+ catch (e) {
117
+ console.error(e);
118
+ }
119
+ values.set(this, obj);
120
+ }
121
+ return obj;
122
+ },
123
+ });
124
+ return this[propertyKey];
125
+ }
126
+ },
127
+ });
128
+ };
129
+
130
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFDLENBQUM7Z0NBQ25CLENBQUM7NEJBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3hCLENBQUM7d0JBQ0QsT0FBTyxHQUFHLENBQUM7b0JBQ2IsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGVzS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZXMgfSBmcm9tIFwiLi9JbmplY3RhYmxlc1wiO1xuaW1wb3J0IHsgZ2V0VHlwZUZyb21EZWNvcmF0b3IgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgcmVmbGVjdGlvbiBrZXkgZm9yIGluamVjdGFibGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQGZ1bmN0aW9uIGdldEluamVjdEtleVxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmNvbnN0IGdldEluamVjdEtleSA9IChrZXk6IHN0cmluZykgPT4gSW5qZWN0YWJsZXNLZXlzLlJFRkxFQ1QgKyBrZXk7XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyBhIGNsYXNzIGFzIGFuIGluamVjdGFibGVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NhdGVnb3J5XSBkZWZhdWx0cyB0byB0aGUgY2xhc3MgTmFtZS4gKFVzZWZ1bCB3aGVuIG1pbmlmaWNhdGlvbiBvY2NvdXJzIGFuZCBuYW1lcyBhcmUgY2hhbmdlZCBzbyB3ZSBjYW4gbm8gbG9uZ2VyIHJlbHkgb24gdGhlIGNsYXNzIG5hbWUsIG9yIHdoZW4gd2Ugd2FudCB0byB1cGNhc3QgdGhlIE9iamVjdClcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlXSBkZWZpbmVzIGlmIHRoZSBpbmplY3RhYmxlIHNob3VsZCBvdmVycmlkZSB0aGUgYWxyZWFkeSBleGlzdGluZyBpbnN0YW5jZSAoaWYgYW55KS4gKG9ubHkgbWVhbnQgZm9yIGV4dGVuZGluZyBkZWNvcmF0b3JzXG4gKiBAcGFyYW0gaW5zdGFuY2VDYWxsYmFja1xuICpcbiAqIEBmdW5jdGlvbiBpbmplY3RhYmxlXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnMuRGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgaW5qZWN0YWJsZSA9XG4gIChcbiAgICBjYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIGZvcmNlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaW5zdGFuY2VDYWxsYmFjaz86IChpbnN0YW5jZTogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCxcbiAgKSA9PlxuICAob3JpZ2luYWw6IGFueSkgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSBjYXRlZ29yeSB8fCBvcmlnaW5hbC5uYW1lO1xuICAgIC8vIHRoZSBuZXcgY29uc3RydWN0b3IgYmVoYXZpb3VyXG4gICAgY29uc3QgbmV3Q29uc3RydWN0b3I6IGFueSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgbGV0IGluajogYW55ID0gSW5qZWN0YWJsZXMuZ2V0PGFueT4obmFtZSwgLi4uYXJncyk7XG4gICAgICBpZiAoIWluaikge1xuICAgICAgICBJbmplY3RhYmxlcy5yZWdpc3RlcihvcmlnaW5hbCwgbmFtZSwgdHJ1ZSwgZm9yY2UpO1xuICAgICAgICBpbmogPSBJbmplY3RhYmxlcy5nZXQ8YW55PihuYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgaWYgKCFpbmopIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlQ2FsbGJhY2spXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluc3RhbmNlQ2FsbGJhY2soaW5qKTtcbiAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gY2FsbCBpbmplY3RhYmxlIGNhbGxiYWNrIGZvciAke25hbWV9OiAke2V9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXRhZGF0YSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3M6IG5hbWUsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgICBnZXRJbmplY3RLZXkoSW5qZWN0YWJsZXNLZXlzLklOSkVDVEFCTEUpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgaW5qLmNvbnN0cnVjdG9yLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGluajtcbiAgICB9O1xuXG4gICAgLy8gY29weSBwcm90b3R5cGUgc28gaW5zdGFuY2VvZiBvcGVyYXRvciBzdGlsbCB3b3Jrc1xuICAgIG5ld0NvbnN0cnVjdG9yLnByb3RvdHlwZSA9IG9yaWdpbmFsLnByb3RvdHlwZTtcbiAgICAvLyBuZXdDb25zdHJ1Y3Rvci5fX3Byb3RvX18gPSBvcmlnaW5hbC5fX3Byb3RvX187XG4gICAgLy8gU2V0cyB0aGUgcHJvcGVyIGNvbnN0cnVjdG9yIG5hbWUgZm9yIHR5cGUgdmVyaWZpY2F0aW9uXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld0NvbnN0cnVjdG9yLCBcIm5hbWVcIiwge1xuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogb3JpZ2luYWwucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgfSk7XG4gICAgLy8gcmV0dXJuIG5ldyBjb25zdHJ1Y3RvciAod2lsbCBvdmVycmlkZSBvcmlnaW5hbClcbiAgICByZXR1cm4gbmV3Q29uc3RydWN0b3I7XG4gIH07XG5cbi8qKlxuICogQHN1bW1hcnkgZnVuY3Rpb24gd2l0Y2ggdHJhbnNmb3JtcyBhIGNhY2hlZCB7QGxpbmsgaW5qZWN0YWJsZX1cbiAqXG4gKiBAcGFyYW0ge2FueX0gaW5qZWN0YWJsZVxuICogQHBhcmFtIHthbnl9IG9iaiB0aGUgb2JqIHRoZSBpbmplY3RhYmxlIHdpbGwgYmUgaW5qZWN0ZWQgb25cbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBJbnN0YW5jZVRyYW5zZm9ybWVyID0gKGluamVjdGFibGU6IGFueSwgb2JqOiBhbnkpID0+IGFueTtcblxuLyoqXG4gKiBAc3VtbWFyeSBBbGxvd3MgZm9yIHRoZSBpbmplY3Rpb24gb2YgYW4ge0BsaW5rIGluamVjdGFibGV9IGRlY29yYXRlZCBkZXBlbmRlbmN5XG4gKiBAZGVzY3JpcHRpb24gdGhlIHByb3BlcnR5IG11c3QgYmUgdHlwZWQgZm9yIHRoZSByZXF1ZXN0ZWQgZGVwZW5kZW5jeS5cbiAqXG4gKiBPbmx5IGNvbmNyZXRlIGNsYXNzZXMuIE5vIGdlbmVyaWNzIGFyZSBzdXBwb3J0ZWRcbiAqXG4gKiBJbmplY3RlZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBkZXNjcmliZWQgbGlrZSBzbzpcbiAqIDxwcmU+XG4gKiAgICAgY2xhc3MgQ2xhc3NOYW1lIHtcbiAqICAgICAgICAgLi4uXG4gKlxuICogICAgICAgICBAaW5qZWN0KClcbiAqICAgICAgICAgcHJvcGVydHlOYW1lITogSW5qZWN0YWJsZUNsYXNzO1xuICpcbiAqICAgICAgICAgLi4uXG4gKiAgICAgfVxuICogPC9wcmU+XG4gKlxuICogd2hlcmUgSW5qZWN0YWJsZUNsYXNzIGlzIHRoZSBjbGFzcyB5b3Ugd2FudCB0byBpbmplY3QuXG4gKiBOb3RpY2UgdGhlIHVzZSBvZiAnITonIHRvIGVuc3VyZSB0aGUgdHJhbnNwaWxlciB0aGUgcHJvcGVydHkgd2lsbCBiZSBzZXQgb3V0c2lkZSB0aGUgY29uc3RydWN0b3IgYnV0IHdpbGwgYWx3YXlzIGJlIGRlZmluZWRcbiAqIEZvciBwcm9qZWN0IHdoZXJlIG1pbmlmaWNhdGlvbiBvY2NvdXJzLCB5b3Ugc2hvdWxkIHVzZSB0aGUgY2F0ZWdvcnkgcGFyYW0gdG8gZW5zdXJlIHRoZSBuYW1lIGlzIHRoZSBzYW1lIHRocm91Z2hvdXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NhdGVnb3J5XSBkZWZhdWx0cyB0byB0aGUgY2xhc3MgTmFtZS4gKFVzZWZ1bCB3aGVuIG1pbmlmaWNhdGlvbiBvY2NvdXJzIGFuZCBuYW1lcyBhcmUgY2hhbmdlZCBzbyB3ZSBjYW4gbm8gbG9uZ2VyIHJlbHkgb24gdGhlIGNsYXNzIG5hbWUsIG9yIHdoZW4gd2Ugd2FudCB0byB1cGNhc3QgdGhlIE9iamVjdClcbiAqIEBwYXJhbSB7SW5zdGFuY2VUcmFuc2Zvcm1lcn0gW3RyYW5zZm9ybWVyXVxuICpcbiAqIEBmdW5jdGlvbiBpbmplY3RcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9ycy5EZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3QgPVxuICAoY2F0ZWdvcnk/OiBzdHJpbmcsIHRyYW5zZm9ybWVyPzogSW5zdGFuY2VUcmFuc2Zvcm1lcikgPT5cbiAgKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGNvbnN0IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICBjYXRlZ29yeSB8fCBnZXRUeXBlRnJvbURlY29yYXRvcih0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGdldCBUeXBlIGZyb20gZGVjb3JhdG9yYCk7XG5cbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgZ2V0SW5qZWN0S2V5KEluamVjdGFibGVzS2V5cy5JTkpFQ1QpLFxuICAgICAge1xuICAgICAgICBpbmplY3RhYmxlOiBuYW1lLFxuICAgICAgfSxcbiAgICAgIHRhcmdldCxcbiAgICAgIHByb3BlcnR5S2V5LFxuICAgICk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0KHRoaXM6IGFueSkge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBwcm9wZXJ0eUtleSxcbiAgICAgICAgKSBhcyBQcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgICAgIGlmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eUtleSwge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBnZXQodGhpczogYW55KSB7XG4gICAgICAgICAgICAgIGxldCBvYmogPSB2YWx1ZXMuZ2V0KHRoaXMpO1xuICAgICAgICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgICAgIG9iaiA9IEluamVjdGFibGVzLmdldChuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoIW9iailcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENvdWxkIG5vdCBnZXQgSW5qZWN0YWJsZSAke25hbWV9IHRvIGluamVjdCBpbiAke3RhcmdldC5jb25zdHJ1Y3RvciA/IHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lIDogdGFyZ2V0Lm5hbWV9J3MgJHtwcm9wZXJ0eUtleX1gLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAodHJhbnNmb3JtZXIpXG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBvYmogPSB0cmFuc2Zvcm1lcihvYmosIHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFsdWVzLnNldCh0aGlzLCBvYmopO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0aGlzW3Byb3BlcnR5S2V5XTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcbiJdfQ==
@@ -19,4 +19,4 @@ export * from "./utils";
19
19
  * @const VERSION
20
20
  * @memberOf module:injectable-decorators
21
21
  */
22
- export declare const VERSION = "1.4.2";
22
+ export declare const VERSION = "1.4.4";
package/lib/esm/index.js CHANGED
@@ -1 +1,24 @@
1
- export*from"./constants";export*from"./decorators";export*from"./Injectables";export*from"./registry";export*from"./utils";let VERSION="1.4.2";export{VERSION};
1
+ /**
2
+ * @summary Adds a simple Injectables implementation to create singleton instances of an object
3
+ * and easily inject it into other objects
4
+ *
5
+ * @module injectable-decorators
6
+ */
7
+ /**
8
+ * @summary functions that decorate classes or class properties
9
+ * @namespace Decorators
10
+ * @memberOf module:injectable-decorators
11
+ */
12
+ export * from "./constants";
13
+ export * from "./decorators";
14
+ export * from "./Injectables";
15
+ export * from "./registry";
16
+ export * from "./utils";
17
+ /**
18
+ * @summary Defined on library build. holds the library current version
19
+ * @const VERSION
20
+ * @memberOf module:injectable-decorators
21
+ */
22
+ export const VERSION = "1.4.4";
23
+
24
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVIOzs7O0dBSUc7QUFFSCxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUV4Qjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgQWRkcyBhIHNpbXBsZSBJbmplY3RhYmxlcyBpbXBsZW1lbnRhdGlvbiB0byBjcmVhdGUgc2luZ2xldG9uIGluc3RhbmNlcyBvZiBhbiBvYmplY3RcbiAqIGFuZCBlYXNpbHkgaW5qZWN0IGl0IGludG8gb3RoZXIgb2JqZWN0c1xuICpcbiAqIEBtb2R1bGUgaW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBmdW5jdGlvbnMgdGhhdCBkZWNvcmF0ZSBjbGFzc2VzIG9yIGNsYXNzIHByb3BlcnRpZXNcbiAqIEBuYW1lc3BhY2UgRGVjb3JhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVkIG9uIGxpYnJhcnkgYnVpbGQuIGhvbGRzIHRoZSBsaWJyYXJ5IGN1cnJlbnQgdmVyc2lvblxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIxLjQuNFwiO1xuIl19
@@ -1 +1,60 @@
1
- class InjectableRegistryImp{constructor(){this.cache={}}get(t,...n){try{var e=this.cache[t],c={name:t};return e.singleton||e.instance?e.instance||this.build(c,...n):this.build(c,...n)}catch(t){}}register(t,n=void 0,e=!0,c=!1){var i=t,r=!i.name&&i.constructor;if("function"!=typeof i&&!r)throw new Error("Injectable registering failed. Missing Class name or constructor");n=n||(r&&r.name&&"Function"!==r.name?r:i).name;this.cache[n]&&!c||(this.cache[n]={instance:r?t:void 0,constructor:r?void 0:t,singleton:e})}build(t,...n){var{constructor:e,singleton:c}=this.cache[t.name],n=new e(...n);return this.cache[t.name]={instance:n,constructor:e,singleton:c},n}}export{InjectableRegistryImp};
1
+ /**
2
+ * @summary Holds the vairous {@link Injectable}s
3
+ * @class InjectableRegistryImp
4
+ * @implements InjectablesRegistry
5
+ */
6
+ export class InjectableRegistryImp {
7
+ constructor() {
8
+ this.cache = {};
9
+ }
10
+ /**
11
+ * @inheritDoc
12
+ */
13
+ get(name, ...args) {
14
+ try {
15
+ const innerCache = this.cache[name];
16
+ const buildDef = { name: name };
17
+ if (!innerCache.singleton && !innerCache.instance)
18
+ return this.build(buildDef, ...args);
19
+ return innerCache.instance || this.build(buildDef, ...args);
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ }
22
+ catch (e) {
23
+ return undefined;
24
+ }
25
+ }
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ register(obj, category = undefined, isSingleton = true, force = false) {
30
+ const castObj = obj;
31
+ const constructor = !castObj.name && castObj.constructor;
32
+ if (typeof castObj !== "function" && !constructor)
33
+ throw new Error(`Injectable registering failed. Missing Class name or constructor`);
34
+ const name = category ||
35
+ (constructor && constructor.name && constructor.name !== "Function"
36
+ ? constructor.name
37
+ : castObj.name);
38
+ if (!this.cache[name] || force)
39
+ this.cache[name] = {
40
+ instance: constructor ? obj : undefined,
41
+ constructor: !constructor ? obj : undefined,
42
+ singleton: isSingleton,
43
+ };
44
+ }
45
+ /**
46
+ * @inheritDoc
47
+ */
48
+ build(defs, ...args) {
49
+ const { constructor, singleton } = this.cache[defs.name];
50
+ const instance = new constructor(...args);
51
+ this.cache[defs.name] = {
52
+ instance: instance,
53
+ constructor: constructor,
54
+ singleton: singleton,
55
+ };
56
+ return instance;
57
+ }
58
+ }
59
+
60
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5Q0E7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDVSxVQUFLLEdBQStCLEVBQUUsQ0FBQztJQTREakQsQ0FBQztJQTFEQzs7T0FFRztJQUNILEdBQUcsQ0FBSSxJQUFZLEVBQUUsR0FBRyxJQUFXO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtnQkFDL0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFJLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzFDLE9BQU8sVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFJLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQy9ELDZEQUE2RDtRQUMvRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxRQUFRLENBQ04sR0FBa0IsRUFDbEIsV0FBK0IsU0FBUyxFQUN4QyxjQUF1QixJQUFJLEVBQzNCLFFBQWlCLEtBQUs7UUFFdEIsTUFBTSxPQUFPLEdBQXdCLEdBQTBCLENBQUM7UUFFaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDekQsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLElBQUksQ0FBQyxXQUFXO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFFSixNQUFNLElBQUksR0FDUixRQUFRO1lBQ1IsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLFVBQVU7Z0JBQ2pFLENBQUMsQ0FBRSxXQUEwQyxDQUFDLElBQUk7Z0JBQ2xELENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUNqQixRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3ZDLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUMzQyxTQUFTLEVBQUUsV0FBVzthQUN2QixDQUFDO0lBQ04sQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFJLElBQXNCLEVBQUUsR0FBRyxJQUFXO1FBQzdDLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUN0QixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsV0FBVztZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwiZmlsZSI6InJlZ2lzdHJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc3VtbWFyeSBkZWZpbmVzIGFuIEluamVjdGFibGUgdHlwZVxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5qZWN0YWJsZTxUPiA9IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSB8IFQ7XG5cbi8qKlxuICogQHN1bW1hcnkgSW50ZXJmYWNlIGZvciBhbiBpbmplY3RhYmxlIHJlZ2lzdHJ5XG4gKiBAaW50ZXJmYWNlIEluamVjdGFibGVSZWdpc3RyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVzUmVnaXN0cnkge1xuICAvKipcbiAgICogQHN1bW1hcnkgcmV0cmlldmVzIGFuIHtAbGluayBJbmplY3RhYmxlfVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqIEByZXR1cm4ge0luamVjdGFibGUgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGdldDxUPihuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogSW5qZWN0YWJsZTxUPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQHN1bW1hcnkgcmVnaXN0ZXJzIGFuIGluamVjdGFibGUgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtJbmplY3RhYmxlfSBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIHJlZ2lzdGVyPFQ+KGNvbnN0cnVjdG9yOiBJbmplY3RhYmxlPFQ+LCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEluc3RhbnRpYXRlcyBhbiBJbmplY3RhYmxlXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb2JqXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICogQHJldHVybiBUXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGJ1aWxkPFQ+KG9iajogUmVjb3JkPHN0cmluZywgYW55PiwgLi4uYXJnczogYW55W10pOiBUO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEhvbGRzIHRoZSB2YWlyb3VzIHtAbGluayBJbmplY3RhYmxlfXNcbiAqIEBjbGFzcyBJbmplY3RhYmxlUmVnaXN0cnlJbXBcbiAqIEBpbXBsZW1lbnRzIEluamVjdGFibGVzUmVnaXN0cnlcbiAqL1xuZXhwb3J0IGNsYXNzIEluamVjdGFibGVSZWdpc3RyeUltcCBpbXBsZW1lbnRzIEluamVjdGFibGVzUmVnaXN0cnkge1xuICBwcml2YXRlIGNhY2hlOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgZ2V0PFQ+KG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBUIHwgdW5kZWZpbmVkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5uZXJDYWNoZSA9IHRoaXMuY2FjaGVbbmFtZV07XG4gICAgICBjb25zdCBidWlsZERlZiA9IHsgbmFtZTogbmFtZSB9O1xuICAgICAgaWYgKCFpbm5lckNhY2hlLnNpbmdsZXRvbiAmJiAhaW5uZXJDYWNoZS5pbnN0YW5jZSlcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGQ8VD4oYnVpbGREZWYsIC4uLmFyZ3MpO1xuICAgICAgcmV0dXJuIGlubmVyQ2FjaGUuaW5zdGFuY2UgfHwgdGhpcy5idWlsZDxUPihidWlsZERlZiwgLi4uYXJncyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICByZWdpc3RlcjxUPihcbiAgICBvYmo6IEluamVjdGFibGU8VD4sXG4gICAgY2F0ZWdvcnk6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBpc1NpbmdsZXRvbjogYm9vbGVhbiA9IHRydWUsXG4gICAgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYXN0T2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gb2JqIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvciA9ICFjYXN0T2JqLm5hbWUgJiYgY2FzdE9iai5jb25zdHJ1Y3RvcjtcbiAgICBpZiAodHlwZW9mIGNhc3RPYmogIT09IFwiZnVuY3Rpb25cIiAmJiAhY29uc3RydWN0b3IpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbmplY3RhYmxlIHJlZ2lzdGVyaW5nIGZhaWxlZC4gTWlzc2luZyBDbGFzcyBuYW1lIG9yIGNvbnN0cnVjdG9yYFxuICAgICAgKTtcblxuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgY2F0ZWdvcnkgfHxcbiAgICAgIChjb25zdHJ1Y3RvciAmJiBjb25zdHJ1Y3Rvci5uYW1lICYmIGNvbnN0cnVjdG9yLm5hbWUgIT09IFwiRnVuY3Rpb25cIlxuICAgICAgICA/IChjb25zdHJ1Y3RvciBhcyB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnkgfSkubmFtZVxuICAgICAgICA6IGNhc3RPYmoubmFtZSk7XG5cbiAgICBpZiAoIXRoaXMuY2FjaGVbbmFtZV0gfHwgZm9yY2UpXG4gICAgICB0aGlzLmNhY2hlW25hbWVdID0ge1xuICAgICAgICBpbnN0YW5jZTogY29uc3RydWN0b3IgPyBvYmogOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbnN0cnVjdG9yOiAhY29uc3RydWN0b3IgPyBvYmogOiB1bmRlZmluZWQsXG4gICAgICAgIHNpbmdsZXRvbjogaXNTaW5nbGV0b24sXG4gICAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYnVpbGQ8VD4oZGVmczogeyBuYW1lOiBzdHJpbmcgfSwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICBjb25zdCB7IGNvbnN0cnVjdG9yLCBzaW5nbGV0b24gfSA9IHRoaXMuY2FjaGVbZGVmcy5uYW1lXTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjb25zdHJ1Y3RvciguLi5hcmdzKTtcbiAgICB0aGlzLmNhY2hlW2RlZnMubmFtZV0gPSB7XG4gICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICBjb25zdHJ1Y3RvcjogY29uc3RydWN0b3IsXG4gICAgICBzaW5nbGV0b246IHNpbmdsZXRvbixcbiAgICB9O1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxufVxuIl19
package/lib/esm/utils.js CHANGED
@@ -1 +1,23 @@
1
- import"reflect-metadata";let TypeKey="design:type";function getTypeFromDecorator(e,t){e=Reflect.getMetadata(TypeKey,e,t);return"Function"!==e.name?e.name:void 0}export{TypeKey,getTypeFromDecorator};
1
+ import "reflect-metadata";
2
+ /**
3
+ * @summary holds the key for the design type
4
+ * @const TypeKey
5
+ * @memberOf module:injectable-decorators
6
+ */
7
+ export const TypeKey = "design:type";
8
+ /**
9
+ * @summary Retrieves the type from the decorators
10
+ * @param {any} model
11
+ * @param {string | symbol} propKey
12
+ * @return {string | undefined}
13
+ *
14
+ * @function geTypeFromDecorators
15
+ *
16
+ * @memberOf module:injectable-decorators
17
+ */
18
+ export function getTypeFromDecorator(model, propKey) {
19
+ const typeDef = Reflect.getMetadata(TypeKey, model, propKey);
20
+ return typeDef.name !== "Function" ? typeDef.name : undefined;
21
+ }
22
+
23
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO0FBRXJDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBVSxFQUNWLE9BQXdCO0lBRXhCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEUsQ0FBQyIsImZpbGUiOiJ1dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBob2xkcyB0aGUga2V5IGZvciB0aGUgZGVzaWduIHR5cGVcbiAqIEBjb25zdCBUeXBlS2V5XG4gKiBAbWVtYmVyT2YgIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFR5cGVLZXkgPSBcImRlc2lnbjp0eXBlXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSB0eXBlIGZyb20gdGhlIGRlY29yYXRvcnNcbiAqIEBwYXJhbSB7YW55fSBtb2RlbFxuICogQHBhcmFtIHtzdHJpbmcgfCBzeW1ib2x9IHByb3BLZXlcbiAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAqXG4gKiBAZnVuY3Rpb24gZ2VUeXBlRnJvbURlY29yYXRvcnNcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZUZyb21EZWNvcmF0b3IoXG4gIG1vZGVsOiBhbnksXG4gIHByb3BLZXk6IHN0cmluZyB8IHN5bWJvbCxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHR5cGVEZWYgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFR5cGVLZXksIG1vZGVsLCBwcm9wS2V5KTtcbiAgcmV0dXJuIHR5cGVEZWYubmFtZSAhPT0gXCJGdW5jdGlvblwiID8gdHlwZURlZi5uYW1lIDogdW5kZWZpbmVkO1xufVxuIl19
package/lib/index.cjs CHANGED
@@ -1 +1,41 @@
1
- var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var i=Object.getOwnPropertyDescriptor(r,t);i&&("get"in i?r.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,i)}:function(e,r,t,o){e[o=void 0===o?t:o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.VERSION=void 0,__exportStar(require("./constants.cjs"),exports),__exportStar(require("./decorators.cjs"),exports),__exportStar(require("./Injectables.cjs"),exports),__exportStar(require("./registry.cjs"),exports),__exportStar(require("./utils.cjs"),exports),exports.VERSION="1.4.2";
1
+ "use strict";
2
+ /**
3
+ * @summary Adds a simple Injectables implementation to create singleton instances of an object
4
+ * and easily inject it into other objects
5
+ *
6
+ * @module injectable-decorators
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.VERSION = void 0;
24
+ /**
25
+ * @summary functions that decorate classes or class properties
26
+ * @namespace Decorators
27
+ * @memberOf module:injectable-decorators
28
+ */
29
+ __exportStar(require("./constants.cjs"), exports);
30
+ __exportStar(require("./decorators.cjs"), exports);
31
+ __exportStar(require("./Injectables.cjs"), exports);
32
+ __exportStar(require("./registry.cjs"), exports);
33
+ __exportStar(require("./utils.cjs"), exports);
34
+ /**
35
+ * @summary Defined on library build. holds the library current version
36
+ * @const VERSION
37
+ * @memberOf module:injectable-decorators
38
+ */
39
+ exports.VERSION = "1.4.4";
40
+
41
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUg7Ozs7R0FJRztBQUVILDhDQUE0QjtBQUM1QiwrQ0FBNkI7QUFDN0IsZ0RBQThCO0FBQzlCLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFFeEI7Ozs7R0FJRztBQUNVLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgQWRkcyBhIHNpbXBsZSBJbmplY3RhYmxlcyBpbXBsZW1lbnRhdGlvbiB0byBjcmVhdGUgc2luZ2xldG9uIGluc3RhbmNlcyBvZiBhbiBvYmplY3RcbiAqIGFuZCBlYXNpbHkgaW5qZWN0IGl0IGludG8gb3RoZXIgb2JqZWN0c1xuICpcbiAqIEBtb2R1bGUgaW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBmdW5jdGlvbnMgdGhhdCBkZWNvcmF0ZSBjbGFzc2VzIG9yIGNsYXNzIHByb3BlcnRpZXNcbiAqIEBuYW1lc3BhY2UgRGVjb3JhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVkIG9uIGxpYnJhcnkgYnVpbGQuIGhvbGRzIHRoZSBsaWJyYXJ5IGN1cnJlbnQgdmVyc2lvblxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIxLjQuNFwiO1xuIl19
package/lib/index.d.ts CHANGED
@@ -19,4 +19,4 @@ export * from "./utils";
19
19
  * @const VERSION
20
20
  * @memberOf module:injectable-decorators
21
21
  */
22
- export declare const VERSION = "1.4.2";
22
+ export declare const VERSION = "1.4.4";
package/lib/registry.cjs CHANGED
@@ -1 +1,64 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.InjectableRegistryImp=void 0;class InjectableRegistryImp{constructor(){this.cache={}}get(e,...t){try{var n=this.cache[e],c={name:e};return n.singleton||n.instance?n.instance||this.build(c,...t):this.build(c,...t)}catch(e){}}register(e,t=void 0,n=!0,c=!1){var r=e,s=!r.name&&r.constructor;if("function"!=typeof r&&!s)throw new Error("Injectable registering failed. Missing Class name or constructor");t=t||(s&&s.name&&"Function"!==s.name?s:r).name;this.cache[t]&&!c||(this.cache[t]={instance:s?e:void 0,constructor:s?void 0:e,singleton:n})}build(e,...t){var{constructor:n,singleton:c}=this.cache[e.name],t=new n(...t);return this.cache[e.name]={instance:t,constructor:n,singleton:c},t}}exports.InjectableRegistryImp=InjectableRegistryImp;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectableRegistryImp = void 0;
4
+ /**
5
+ * @summary Holds the vairous {@link Injectable}s
6
+ * @class InjectableRegistryImp
7
+ * @implements InjectablesRegistry
8
+ */
9
+ class InjectableRegistryImp {
10
+ constructor() {
11
+ this.cache = {};
12
+ }
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ get(name, ...args) {
17
+ try {
18
+ const innerCache = this.cache[name];
19
+ const buildDef = { name: name };
20
+ if (!innerCache.singleton && !innerCache.instance)
21
+ return this.build(buildDef, ...args);
22
+ return innerCache.instance || this.build(buildDef, ...args);
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ }
25
+ catch (e) {
26
+ return undefined;
27
+ }
28
+ }
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ register(obj, category = undefined, isSingleton = true, force = false) {
33
+ const castObj = obj;
34
+ const constructor = !castObj.name && castObj.constructor;
35
+ if (typeof castObj !== "function" && !constructor)
36
+ throw new Error(`Injectable registering failed. Missing Class name or constructor`);
37
+ const name = category ||
38
+ (constructor && constructor.name && constructor.name !== "Function"
39
+ ? constructor.name
40
+ : castObj.name);
41
+ if (!this.cache[name] || force)
42
+ this.cache[name] = {
43
+ instance: constructor ? obj : undefined,
44
+ constructor: !constructor ? obj : undefined,
45
+ singleton: isSingleton,
46
+ };
47
+ }
48
+ /**
49
+ * @inheritDoc
50
+ */
51
+ build(defs, ...args) {
52
+ const { constructor, singleton } = this.cache[defs.name];
53
+ const instance = new constructor(...args);
54
+ this.cache[defs.name] = {
55
+ instance: instance,
56
+ constructor: constructor,
57
+ singleton: singleton,
58
+ };
59
+ return instance;
60
+ }
61
+ }
62
+ exports.InjectableRegistryImp = InjectableRegistryImp;
63
+
64
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5Q0E7Ozs7R0FJRztBQUNILE1BQWEscUJBQXFCO0lBQWxDO1FBQ1UsVUFBSyxHQUErQixFQUFFLENBQUM7SUE0RGpELENBQUM7SUExREM7O09BRUc7SUFDSCxHQUFHLENBQUksSUFBWSxFQUFFLEdBQUcsSUFBVztRQUNqQyxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7Z0JBQy9DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBSSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMxQyxPQUFPLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBSSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMvRCw2REFBNkQ7UUFDL0QsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNEOztPQUVHO0lBQ0gsUUFBUSxDQUNOLEdBQWtCLEVBQ2xCLFdBQStCLFNBQVMsRUFDeEMsY0FBdUIsSUFBSSxFQUMzQixRQUFpQixLQUFLO1FBRXRCLE1BQU0sT0FBTyxHQUF3QixHQUEwQixDQUFDO1FBRWhFLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3pELElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxJQUFJLENBQUMsV0FBVztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxDQUNuRSxDQUFDO1FBRUosTUFBTSxJQUFJLEdBQ1IsUUFBUTtZQUNSLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxVQUFVO2dCQUNqRSxDQUFDLENBQUUsV0FBMEMsQ0FBQyxJQUFJO2dCQUNsRCxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUs7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRztnQkFDakIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN2QyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDM0MsU0FBUyxFQUFFLFdBQVc7YUFDdkIsQ0FBQztJQUNOLENBQUM7SUFDRDs7T0FFRztJQUNILEtBQUssQ0FBSSxJQUFzQixFQUFFLEdBQUcsSUFBVztRQUM3QyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQTdERCxzREE2REMiLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IGRlZmluZXMgYW4gSW5qZWN0YWJsZSB0eXBlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBJbmplY3RhYmxlPFQ+ID0geyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVCB9IHwgVDtcblxuLyoqXG4gKiBAc3VtbWFyeSBJbnRlcmZhY2UgZm9yIGFuIGluamVjdGFibGUgcmVnaXN0cnlcbiAqIEBpbnRlcmZhY2UgSW5qZWN0YWJsZVJlZ2lzdHJ5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5qZWN0YWJsZXNSZWdpc3RyeSB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSByZXRyaWV2ZXMgYW4ge0BsaW5rIEluamVjdGFibGV9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICogQHJldHVybiB7SW5qZWN0YWJsZSB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ2V0PFQ+KG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBJbmplY3RhYmxlPFQ+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSByZWdpc3RlcnMgYW4gaW5qZWN0YWJsZSBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0luamVjdGFibGV9IGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICpcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgcmVnaXN0ZXI8VD4oY29uc3RydWN0b3I6IEluamVjdGFibGU8VD4sIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcblxuICAvKipcbiAgICogQHN1bW1hcnkgSW5zdGFudGlhdGVzIGFuIEluamVjdGFibGVcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBvYmpcbiAgICogQHBhcmFtIHthbnlbXX0gYXJnc1xuICAgKiBAcmV0dXJuIFRcbiAgICpcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgYnVpbGQ8VD4ob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCAuLi5hcmdzOiBhbnlbXSk6IFQ7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgSG9sZHMgdGhlIHZhaXJvdXMge0BsaW5rIEluamVjdGFibGV9c1xuICogQGNsYXNzIEluamVjdGFibGVSZWdpc3RyeUltcFxuICogQGltcGxlbWVudHMgSW5qZWN0YWJsZXNSZWdpc3RyeVxuICovXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wIGltcGxlbWVudHMgSW5qZWN0YWJsZXNSZWdpc3RyeSB7XG4gIHByaXZhdGUgY2FjaGU6IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBnZXQ8VD4obmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFQgfCB1bmRlZmluZWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBpbm5lckNhY2hlID0gdGhpcy5jYWNoZVtuYW1lXTtcbiAgICAgIGNvbnN0IGJ1aWxkRGVmID0geyBuYW1lOiBuYW1lIH07XG4gICAgICBpZiAoIWlubmVyQ2FjaGUuc2luZ2xldG9uICYmICFpbm5lckNhY2hlLmluc3RhbmNlKVxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZDxUPihidWlsZERlZiwgLi4uYXJncyk7XG4gICAgICByZXR1cm4gaW5uZXJDYWNoZS5pbnN0YW5jZSB8fCB0aGlzLmJ1aWxkPFQ+KGJ1aWxkRGVmLCAuLi5hcmdzKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIHJlZ2lzdGVyPFQ+KFxuICAgIG9iajogSW5qZWN0YWJsZTxUPixcbiAgICBjYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIGlzU2luZ2xldG9uOiBib29sZWFuID0gdHJ1ZSxcbiAgICBmb3JjZTogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNhc3RPYmo6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBvYmogYXMgUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gIWNhc3RPYmoubmFtZSAmJiBjYXN0T2JqLmNvbnN0cnVjdG9yO1xuICAgIGlmICh0eXBlb2YgY2FzdE9iaiAhPT0gXCJmdW5jdGlvblwiICYmICFjb25zdHJ1Y3RvcilcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEluamVjdGFibGUgcmVnaXN0ZXJpbmcgZmFpbGVkLiBNaXNzaW5nIENsYXNzIG5hbWUgb3IgY29uc3RydWN0b3JgXG4gICAgICApO1xuXG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBjYXRlZ29yeSB8fFxuICAgICAgKGNvbnN0cnVjdG9yICYmIGNvbnN0cnVjdG9yLm5hbWUgJiYgY29uc3RydWN0b3IubmFtZSAhPT0gXCJGdW5jdGlvblwiXG4gICAgICAgID8gKGNvbnN0cnVjdG9yIGFzIHsgW2luZGV4ZXI6IHN0cmluZ106IGFueSB9KS5uYW1lXG4gICAgICAgIDogY2FzdE9iai5uYW1lKTtcblxuICAgIGlmICghdGhpcy5jYWNoZVtuYW1lXSB8fCBmb3JjZSlcbiAgICAgIHRoaXMuY2FjaGVbbmFtZV0gPSB7XG4gICAgICAgIGluc3RhbmNlOiBjb25zdHJ1Y3RvciA/IG9iaiA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29uc3RydWN0b3I6ICFjb25zdHJ1Y3RvciA/IG9iaiA6IHVuZGVmaW5lZCxcbiAgICAgICAgc2luZ2xldG9uOiBpc1NpbmdsZXRvbixcbiAgICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBidWlsZDxUPihkZWZzOiB7IG5hbWU6IHN0cmluZyB9LCAuLi5hcmdzOiBhbnlbXSk6IFQge1xuICAgIGNvbnN0IHsgY29uc3RydWN0b3IsIHNpbmdsZXRvbiB9ID0gdGhpcy5jYWNoZVtkZWZzLm5hbWVdO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGNvbnN0cnVjdG9yKC4uLmFyZ3MpO1xuICAgIHRoaXMuY2FjaGVbZGVmcy5uYW1lXSA9IHtcbiAgICAgIGluc3RhbmNlOiBpbnN0YW5jZSxcbiAgICAgIGNvbnN0cnVjdG9yOiBjb25zdHJ1Y3RvcixcbiAgICAgIHNpbmdsZXRvbjogc2luZ2xldG9uLFxuICAgIH07XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG59XG4iXX0=
package/lib/utils.cjs CHANGED
@@ -1 +1,27 @@
1
- function getTypeFromDecorator(e,t){e=Reflect.getMetadata(exports.TypeKey,e,t);return"Function"!==e.name?e.name:void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.TypeKey=void 0,exports.getTypeFromDecorator=getTypeFromDecorator,require("reflect-metadata"),exports.TypeKey="design:type";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeKey = void 0;
4
+ exports.getTypeFromDecorator = getTypeFromDecorator;
5
+ require("reflect-metadata");
6
+ /**
7
+ * @summary holds the key for the design type
8
+ * @const TypeKey
9
+ * @memberOf module:injectable-decorators
10
+ */
11
+ exports.TypeKey = "design:type";
12
+ /**
13
+ * @summary Retrieves the type from the decorators
14
+ * @param {any} model
15
+ * @param {string | symbol} propKey
16
+ * @return {string | undefined}
17
+ *
18
+ * @function geTypeFromDecorators
19
+ *
20
+ * @memberOf module:injectable-decorators
21
+ */
22
+ function getTypeFromDecorator(model, propKey) {
23
+ const typeDef = Reflect.getMetadata(exports.TypeKey, model, propKey);
24
+ return typeDef.name !== "Function" ? typeDef.name : undefined;
25
+ }
26
+
27
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtQkEsb0RBTUM7QUF6QkQsNEJBQTBCO0FBRTFCOzs7O0dBSUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFFckM7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQVUsRUFDVixPQUF3QjtJQUV4QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hFLENBQUMiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgaG9sZHMgdGhlIGtleSBmb3IgdGhlIGRlc2lnbiB0eXBlXG4gKiBAY29uc3QgVHlwZUtleVxuICogQG1lbWJlck9mICBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBUeXBlS2V5ID0gXCJkZXNpZ246dHlwZVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgdHlwZSBmcm9tIHRoZSBkZWNvcmF0b3JzXG4gKiBAcGFyYW0ge2FueX0gbW9kZWxcbiAqIEBwYXJhbSB7c3RyaW5nIHwgc3ltYm9sfSBwcm9wS2V5XG4gKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gKlxuICogQGZ1bmN0aW9uIGdlVHlwZUZyb21EZWNvcmF0b3JzXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVGcm9tRGVjb3JhdG9yKFxuICBtb2RlbDogYW55LFxuICBwcm9wS2V5OiBzdHJpbmcgfCBzeW1ib2wsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB0eXBlRGVmID0gUmVmbGVjdC5nZXRNZXRhZGF0YShUeXBlS2V5LCBtb2RlbCwgcHJvcEtleSk7XG4gIHJldHVybiB0eXBlRGVmLm5hbWUgIT09IFwiRnVuY3Rpb25cIiA/IHR5cGVEZWYubmFtZSA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@decaf-ts/injectable-decorators",
3
- "version": "1.4.3",
3
+ "version": "1.5.0",
4
4
  "description": "injectable decorators extension for decorator validation",
5
5
  "type": "module",
6
6
  "exports": {
7
- "require": "./lib/index.js",
7
+ "require": "./lib/index.cjs",
8
8
  "import": "./lib/esm/index.js"
9
9
  },
10
- "main": "lib/index.js",
10
+ "types": "lib/index.d.ts",
11
11
  "scripts": {
12
12
  "do-install": "TOKEN=$(cat .token) npm install",
13
13
  "update-dependencies": "rimraf node_modules/@decaf-ts package-lock.json && npm run do-install",
@@ -19,12 +19,12 @@
19
19
  "test:integration": "jest --coverage --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
20
20
  "test:all": "jest --coverage --testPathPattern=\"/tests/(unit|integration)\" --passWithNoTests --detectOpenHandles",
21
21
  "lint": "eslint .",
22
- "lint-fix": "eslint . && eslint --fix ./src/*",
22
+ "lint-fix": "eslint --fix ./src/*",
23
23
  "test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
24
- "prepare-release": "npm run lint-fix && npm run build:prod && npm run test && npm run docs",
24
+ "prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
25
25
  "release": "./bin/tag-release.sh",
26
26
  "clean-publish": "npx clean-publish",
27
- "coverage": "npm run test:all && jest-coverage-badges --input \"./workdocs/coverage/coverage-summary.json\" --output \"./workdocs/badges\"",
27
+ "coverage": "npm run test:all && cd workdocs && jest-coverage-badges",
28
28
  "docs": "npx rimraf ./docs && mkdir docs && npm run do-install -- better-docs taffydb && gulp docs; npm remove better-docs taffydb"
29
29
  },
30
30
  "files": [
@@ -59,36 +59,39 @@
59
59
  },
60
60
  "homepage": "https://github.com/decaf-ts/injectable-decorators#readme",
61
61
  "devDependencies": {
62
- "@types/jest": "^29.5.12",
63
- "@typescript-eslint/eslint-plugin": "^7.1.1",
64
- "clean-publish": "^4.3.0",
62
+ "@eslint/js": "^9.13.0",
63
+ "@types/jest": "^29.5.13",
64
+ "@typescript-eslint/eslint-plugin": "^8.10.0",
65
+ "clean-publish": "^5.0.0",
65
66
  "dpdm": "^3.14.0",
66
- "eslint": "^8.57.0",
67
+ "eslint": "^9.13.0",
67
68
  "eslint-config-prettier": "^9.1.0",
68
- "eslint-plugin-prettier": "^5.1.3",
69
- "gulp": "^4.0.2",
69
+ "eslint-plugin-prettier": "^5.2.1",
70
+ "globals": "^15.11.0",
71
+ "gulp": "^5.0.0",
70
72
  "gulp-if": "^3.0.0",
71
73
  "gulp-rename": "^2.0.0",
72
74
  "gulp-replace": "^1.1.4",
73
75
  "gulp-run-command": "^0.0.10",
74
- "gulp-sourcemaps": "^3.0.0",
76
+ "gulp-sourcemaps": "^2.6.5",
75
77
  "gulp-typescript": "^6.0.0-alpha.1",
76
78
  "gulp-uglify": "^3.0.2",
77
79
  "jest": "^29.7.0",
78
- "jest-coverage-badges": "^1.1.2",
80
+ "jest-coverage-badges": "^1.0.0",
79
81
  "jest-junit": "^16.0.0",
80
- "jsdoc": "^4.0.2",
82
+ "jsdoc": "^4.0.4",
81
83
  "jsdoc-mermaid": "^1.0.0",
82
84
  "markdown-include": "^0.4.3",
83
85
  "merge-stream": "^2.0.0",
84
- "nodemon": "^3.1.0",
85
- "npm-check-updates": "^16.14.15",
86
- "prettier": "^3.2.5",
87
- "rimraf": "^5.0.5",
88
- "ts-jest": "^29.1.2",
86
+ "nodemon": "^3.1.7",
87
+ "npm-check-updates": "^17.1.4",
88
+ "prettier": "^3.3.3",
89
+ "rimraf": "^6.0.1",
90
+ "ts-jest": "^29.2.5",
89
91
  "ts-loader": "^9.5.1",
90
92
  "ts-node": "^10.9.2",
91
- "typescript": "^5.4.2",
93
+ "typescript": "^5.6.3",
94
+ "typescript-eslint": "^8.10.0",
92
95
  "vinyl-named": "^1.1.0",
93
96
  "webpack-stream": "^7.0.0"
94
97
  },