@decaf-ts/injectable-decorators 1.4.4 → 1.5.1
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 +4 -4
- package/dist/esm/injectable-decorators.bundle.min.esm.js +1 -1
- package/dist/injectable-decorators.bundle.min.js +1 -1
- package/lib/Injectables.cjs +70 -1
- package/lib/constants.cjs +20 -1
- package/lib/decorators.cjs +137 -1
- package/lib/decorators.d.ts +2 -2
- package/lib/esm/Injectables.js +66 -1
- package/lib/esm/constants.js +17 -1
- package/lib/esm/decorators.d.ts +2 -2
- package/lib/esm/decorators.js +132 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +24 -1
- package/lib/esm/registry.js +60 -1
- package/lib/esm/utils.js +23 -1
- package/lib/index.cjs +41 -1
- package/lib/index.d.ts +1 -1
- package/lib/registry.cjs +64 -1
- package/lib/utils.cjs +27 -1
- package/package.json +22 -19
package/README.md
CHANGED
|
@@ -14,10 +14,10 @@ Simple implementation of injectables
|
|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
|
17
|
-

|
|
18
|
+

|
|
19
|
+

|
|
20
|
+

|
|
21
21
|
|
|
22
22
|
|
|
23
23
|

|
|
@@ -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,c)=>{const u=e||o.name,s=function(...e){let c=i.Injectables.get(u,...e);if(!c){if(i.Injectables.register(o,u,!0,t),c=i.Injectables.get(u,...e),!c)return;if(r)try{r(c)}catch(e){console.error(`Failed to call injectable callback for ${u}: ${e}`)}}const s=Object.assign({},{class:u});return Reflect.defineMetadata(a(n.InjectablesKeys.INJECTABLE),s,c.constructor),c};return s.prototype=o.prototype,Object.defineProperty(s,"name",{writable:!1,enumerable:!0,configurable:!1,value:o.prototype.constructor.name}),s},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.5.0"},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,c)=>{const u=e||o.name,s=function(...e){let c=i.Injectables.get(u,...e);if(!c){if(i.Injectables.register(o,u,!0,t),c=i.Injectables.get(u,...e),!c)return;if(r)try{r(c)}catch(e){console.error(`Failed to call injectable callback for ${u}: ${e}`)}}const s=Object.assign({},{class:u});return Reflect.defineMetadata(a(n.InjectablesKeys.INJECTABLE),s,c.constructor),c};return s.prototype=o.prototype,Object.defineProperty(s,"name",{writable:!1,enumerable:!0,configurable:!1,value:o.prototype.constructor.name}),s},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.5.0"},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)})()));
|
package/lib/Injectables.cjs
CHANGED
|
@@ -1 +1,70 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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=
|
package/lib/decorators.cjs
CHANGED
|
@@ -1 +1,137 @@
|
|
|
1
|
-
|
|
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) =>
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
(original, propertyKey) => {
|
|
30
|
+
const name = category || original.name;
|
|
31
|
+
// the new constructor behaviour
|
|
32
|
+
const newConstructor = function (...args) {
|
|
33
|
+
let inj = Injectables_1.Injectables.get(name, ...args);
|
|
34
|
+
if (!inj) {
|
|
35
|
+
Injectables_1.Injectables.register(original, name, true, force);
|
|
36
|
+
inj = Injectables_1.Injectables.get(name, ...args);
|
|
37
|
+
if (!inj)
|
|
38
|
+
return undefined;
|
|
39
|
+
if (instanceCallback)
|
|
40
|
+
try {
|
|
41
|
+
instanceCallback(inj);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
console.error(`Failed to call injectable callback for ${name}: ${e}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const metadata = Object.assign({}, {
|
|
48
|
+
class: name,
|
|
49
|
+
});
|
|
50
|
+
Reflect.defineMetadata(getInjectKey(constants_1.InjectablesKeys.INJECTABLE), metadata, inj.constructor);
|
|
51
|
+
return inj;
|
|
52
|
+
};
|
|
53
|
+
// copy prototype so instanceof operator still works
|
|
54
|
+
newConstructor.prototype = original.prototype;
|
|
55
|
+
// newConstructor.__proto__ = original.__proto__;
|
|
56
|
+
// Sets the proper constructor name for type verification
|
|
57
|
+
Object.defineProperty(newConstructor, "name", {
|
|
58
|
+
writable: false,
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: false,
|
|
61
|
+
value: original.prototype.constructor.name,
|
|
62
|
+
});
|
|
63
|
+
// return new constructor (will override original)
|
|
64
|
+
return newConstructor;
|
|
65
|
+
};
|
|
66
|
+
exports.injectable = injectable;
|
|
67
|
+
/**
|
|
68
|
+
* @summary Allows for the injection of an {@link injectable} decorated dependency
|
|
69
|
+
* @description the property must be typed for the requested dependency.
|
|
70
|
+
*
|
|
71
|
+
* Only concrete classes. No generics are supported
|
|
72
|
+
*
|
|
73
|
+
* Injected properties should be described like so:
|
|
74
|
+
* <pre>
|
|
75
|
+
* class ClassName {
|
|
76
|
+
* ...
|
|
77
|
+
*
|
|
78
|
+
* @inject()
|
|
79
|
+
* propertyName!: InjectableClass;
|
|
80
|
+
*
|
|
81
|
+
* ...
|
|
82
|
+
* }
|
|
83
|
+
* </pre>
|
|
84
|
+
*
|
|
85
|
+
* where InjectableClass is the class you want to inject.
|
|
86
|
+
* Notice the use of '!:' to ensure the transpiler the property will be set outside the constructor but will always be defined
|
|
87
|
+
* For project where minification occours, you should use the category param to ensure the name is the same throughout
|
|
88
|
+
*
|
|
89
|
+
* @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)
|
|
90
|
+
* @param {InstanceTransformer} [transformer]
|
|
91
|
+
*
|
|
92
|
+
* @function inject
|
|
93
|
+
*
|
|
94
|
+
* @memberOf module:injectable-decorators.Decorators
|
|
95
|
+
*/
|
|
96
|
+
const inject = (category, transformer) => (target, propertyKey) => {
|
|
97
|
+
const values = new WeakMap();
|
|
98
|
+
const name = category || (0, utils_1.getTypeFromDecorator)(target, propertyKey);
|
|
99
|
+
if (!name)
|
|
100
|
+
throw new Error(`Could not get Type from decorator`);
|
|
101
|
+
Reflect.defineMetadata(getInjectKey(constants_1.InjectablesKeys.INJECT), {
|
|
102
|
+
injectable: name,
|
|
103
|
+
}, target, propertyKey);
|
|
104
|
+
Object.defineProperty(target, propertyKey, {
|
|
105
|
+
configurable: true,
|
|
106
|
+
get() {
|
|
107
|
+
const descriptor = Object.getOwnPropertyDescriptor(target, propertyKey);
|
|
108
|
+
if (descriptor.configurable) {
|
|
109
|
+
Object.defineProperty(this, propertyKey, {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
configurable: false,
|
|
112
|
+
get() {
|
|
113
|
+
let obj = values.get(this);
|
|
114
|
+
if (!obj) {
|
|
115
|
+
obj = Injectables_1.Injectables.get(name);
|
|
116
|
+
if (!obj)
|
|
117
|
+
throw new Error(`Could not get Injectable ${name} to inject in ${target.constructor ? target.constructor.name : target.name}'s ${propertyKey}`);
|
|
118
|
+
if (transformer)
|
|
119
|
+
try {
|
|
120
|
+
obj = transformer(obj, target);
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
console.error(e);
|
|
124
|
+
}
|
|
125
|
+
values.set(this, obj);
|
|
126
|
+
}
|
|
127
|
+
return obj;
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
return this[propertyKey];
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
exports.inject = inject;
|
|
136
|
+
|
|
137
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUN4QixDQUFDO3dCQUNELE9BQU8sR0FBRyxDQUFDO29CQUNiLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBcERTLFFBQUEsTUFBTSxVQW9EZiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZXNLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlcyB9IGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5pbXBvcnQgeyBnZXRUeXBlRnJvbURlY29yYXRvciB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgUmV0dXJuIHRoZSByZWZsZWN0aW9uIGtleSBmb3IgaW5qZWN0YWJsZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiBAZnVuY3Rpb24gZ2V0SW5qZWN0S2V5XG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuY29uc3QgZ2V0SW5qZWN0S2V5ID0gKGtleTogc3RyaW5nKSA9PiBJbmplY3RhYmxlc0tleXMuUkVGTEVDVCArIGtleTtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgY2xhc3MgYXMgYW4gaW5qZWN0YWJsZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbY2F0ZWdvcnldIGRlZmF1bHRzIHRvIHRoZSBjbGFzcyBOYW1lLiAoVXNlZnVsIHdoZW4gbWluaWZpY2F0aW9uIG9jY291cnMgYW5kIG5hbWVzIGFyZSBjaGFuZ2VkIHNvIHdlIGNhbiBubyBsb25nZXIgcmVseSBvbiB0aGUgY2xhc3MgbmFtZSwgb3Igd2hlbiB3ZSB3YW50IHRvIHVwY2FzdCB0aGUgT2JqZWN0KVxuICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VdIGRlZmluZXMgaWYgdGhlIGluamVjdGFibGUgc2hvdWxkIG92ZXJyaWRlIHRoZSBhbHJlYWR5IGV4aXN0aW5nIGluc3RhbmNlIChpZiBhbnkpLiAob25seSBtZWFudCBmb3IgZXh0ZW5kaW5nIGRlY29yYXRvcnNcbiAqIEBwYXJhbSBpbnN0YW5jZUNhbGxiYWNrXG4gKlxuICogQGZ1bmN0aW9uIGluamVjdGFibGVcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9ycy5EZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RhYmxlID1cbiAgKFxuICAgIGNhdGVnb3J5OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpbnN0YW5jZUNhbGxiYWNrPzogKGluc3RhbmNlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkXG4gICkgPT5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCBuYW1lID0gY2F0ZWdvcnkgfHwgb3JpZ2luYWwubmFtZTtcbiAgICAvLyB0aGUgbmV3IGNvbnN0cnVjdG9yIGJlaGF2aW91clxuICAgIGNvbnN0IG5ld0NvbnN0cnVjdG9yOiBhbnkgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgIGxldCBpbmo6IGFueSA9IEluamVjdGFibGVzLmdldDxhbnk+KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgaWYgKCFpbmopIHtcbiAgICAgICAgSW5qZWN0YWJsZXMucmVnaXN0ZXIob3JpZ2luYWwsIG5hbWUsIHRydWUsIGZvcmNlKTtcbiAgICAgICAgaW5qID0gSW5qZWN0YWJsZXMuZ2V0PGFueT4obmFtZSwgLi4uYXJncyk7XG4gICAgICAgIGlmICghaW5qKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZUNhbGxiYWNrKVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbnN0YW5jZUNhbGxiYWNrKGluaik7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIGNhbGwgaW5qZWN0YWJsZSBjYWxsYmFjayBmb3IgJHtuYW1lfTogJHtlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXRhZGF0YSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3M6IG5hbWUsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICAgIGdldEluamVjdEtleShJbmplY3RhYmxlc0tleXMuSU5KRUNUQUJMRSksXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBpbmouY29uc3RydWN0b3JcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBpbmo7XG4gICAgfTtcblxuICAgIC8vIGNvcHkgcHJvdG90eXBlIHNvIGluc3RhbmNlb2Ygb3BlcmF0b3Igc3RpbGwgd29ya3NcbiAgICBuZXdDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBvcmlnaW5hbC5wcm90b3R5cGU7XG4gICAgLy8gbmV3Q29uc3RydWN0b3IuX19wcm90b19fID0gb3JpZ2luYWwuX19wcm90b19fO1xuICAgIC8vIFNldHMgdGhlIHByb3BlciBjb25zdHJ1Y3RvciBuYW1lIGZvciB0eXBlIHZlcmlmaWNhdGlvblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdDb25zdHJ1Y3RvciwgXCJuYW1lXCIsIHtcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IG9yaWdpbmFsLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgIH0pO1xuICAgIC8vIHJldHVybiBuZXcgY29uc3RydWN0b3IgKHdpbGwgb3ZlcnJpZGUgb3JpZ2luYWwpXG4gICAgcmV0dXJuIG5ld0NvbnN0cnVjdG9yO1xuICB9O1xuXG4vKipcbiAqIEBzdW1tYXJ5IGZ1bmN0aW9uIHdpdGNoIHRyYW5zZm9ybXMgYSBjYWNoZWQge0BsaW5rIGluamVjdGFibGV9XG4gKlxuICogQHBhcmFtIHthbnl9IGluamVjdGFibGVcbiAqIEBwYXJhbSB7YW55fSBvYmogdGhlIG9iaiB0aGUgaW5qZWN0YWJsZSB3aWxsIGJlIGluamVjdGVkIG9uXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VUcmFuc2Zvcm1lciA9IChpbmplY3RhYmxlOiBhbnksIG9iajogYW55KSA9PiBhbnk7XG5cbi8qKlxuICogQHN1bW1hcnkgQWxsb3dzIGZvciB0aGUgaW5qZWN0aW9uIG9mIGFuIHtAbGluayBpbmplY3RhYmxlfSBkZWNvcmF0ZWQgZGVwZW5kZW5jeVxuICogQGRlc2NyaXB0aW9uIHRoZSBwcm9wZXJ0eSBtdXN0IGJlIHR5cGVkIGZvciB0aGUgcmVxdWVzdGVkIGRlcGVuZGVuY3kuXG4gKlxuICogT25seSBjb25jcmV0ZSBjbGFzc2VzLiBObyBnZW5lcmljcyBhcmUgc3VwcG9ydGVkXG4gKlxuICogSW5qZWN0ZWQgcHJvcGVydGllcyBzaG91bGQgYmUgZGVzY3JpYmVkIGxpa2Ugc286XG4gKiA8cHJlPlxuICogICAgIGNsYXNzIENsYXNzTmFtZSB7XG4gKiAgICAgICAgIC4uLlxuICpcbiAqICAgICAgICAgQGluamVjdCgpXG4gKiAgICAgICAgIHByb3BlcnR5TmFtZSE6IEluamVjdGFibGVDbGFzcztcbiAqXG4gKiAgICAgICAgIC4uLlxuICogICAgIH1cbiAqIDwvcHJlPlxuICpcbiAqIHdoZXJlIEluamVjdGFibGVDbGFzcyBpcyB0aGUgY2xhc3MgeW91IHdhbnQgdG8gaW5qZWN0LlxuICogTm90aWNlIHRoZSB1c2Ugb2YgJyE6JyB0byBlbnN1cmUgdGhlIHRyYW5zcGlsZXIgdGhlIHByb3BlcnR5IHdpbGwgYmUgc2V0IG91dHNpZGUgdGhlIGNvbnN0cnVjdG9yIGJ1dCB3aWxsIGFsd2F5cyBiZSBkZWZpbmVkXG4gKiBGb3IgcHJvamVjdCB3aGVyZSBtaW5pZmljYXRpb24gb2Njb3VycywgeW91IHNob3VsZCB1c2UgdGhlIGNhdGVnb3J5IHBhcmFtIHRvIGVuc3VyZSB0aGUgbmFtZSBpcyB0aGUgc2FtZSB0aHJvdWdob3V0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtjYXRlZ29yeV0gZGVmYXVsdHMgdG8gdGhlIGNsYXNzIE5hbWUuIChVc2VmdWwgd2hlbiBtaW5pZmljYXRpb24gb2Njb3VycyBhbmQgbmFtZXMgYXJlIGNoYW5nZWQgc28gd2UgY2FuIG5vIGxvbmdlciByZWx5IG9uIHRoZSBjbGFzcyBuYW1lLCBvciB3aGVuIHdlIHdhbnQgdG8gdXBjYXN0IHRoZSBPYmplY3QpXG4gKiBAcGFyYW0ge0luc3RhbmNlVHJhbnNmb3JtZXJ9IFt0cmFuc2Zvcm1lcl1cbiAqXG4gKiBAZnVuY3Rpb24gaW5qZWN0XG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnMuRGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgaW5qZWN0ID1cbiAgKGNhdGVnb3J5Pzogc3RyaW5nLCB0cmFuc2Zvcm1lcj86IEluc3RhbmNlVHJhbnNmb3JtZXIpID0+XG4gICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgY29uc3QgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgIGNhdGVnb3J5IHx8IGdldFR5cGVGcm9tRGVjb3JhdG9yKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIGlmICghbmFtZSkgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZ2V0IFR5cGUgZnJvbSBkZWNvcmF0b3JgKTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBnZXRJbmplY3RLZXkoSW5qZWN0YWJsZXNLZXlzLklOSkVDVCksXG4gICAgICB7XG4gICAgICAgIGluamVjdGFibGU6IG5hbWUsXG4gICAgICB9LFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldCh0aGlzOiBhbnkpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgcHJvcGVydHlLZXlcbiAgICAgICAgKSBhcyBQcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgICAgIGlmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eUtleSwge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBnZXQodGhpczogYW55KSB7XG4gICAgICAgICAgICAgIGxldCBvYmogPSB2YWx1ZXMuZ2V0KHRoaXMpO1xuICAgICAgICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgICAgIG9iaiA9IEluamVjdGFibGVzLmdldChuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoIW9iailcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENvdWxkIG5vdCBnZXQgSW5qZWN0YWJsZSAke25hbWV9IHRvIGluamVjdCBpbiAke3RhcmdldC5jb25zdHJ1Y3RvciA/IHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lIDogdGFyZ2V0Lm5hbWV9J3MgJHtwcm9wZXJ0eUtleX1gXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1lcilcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIG9iaiA9IHRyYW5zZm9ybWVyKG9iaiwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2V0KHRoaXMsIG9iaik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXNbcHJvcGVydHlLZXldO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuIl19
|
package/lib/decorators.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @memberOf module:injectable-decorators.Decorators
|
|
11
11
|
*/
|
|
12
|
-
export declare const injectable: (category?: string | undefined, force?: boolean, instanceCallback?: (instance: any, ...args: any[]) => void) => (original: any) => any;
|
|
12
|
+
export declare const injectable: (category?: string | undefined, force?: boolean, instanceCallback?: (instance: any, ...args: any[]) => void) => (original: any, propertyKey?: any) => any;
|
|
13
13
|
/**
|
|
14
14
|
* @summary function witch transforms a cached {@link injectable}
|
|
15
15
|
*
|
|
@@ -48,4 +48,4 @@ export type InstanceTransformer = (injectable: any, obj: any) => any;
|
|
|
48
48
|
*
|
|
49
49
|
* @memberOf module:injectable-decorators.Decorators
|
|
50
50
|
*/
|
|
51
|
-
export declare const inject: (category?: string, transformer?: InstanceTransformer) => (target: any, propertyKey
|
|
51
|
+
export declare const inject: (category?: string, transformer?: InstanceTransformer) => (target: any, propertyKey?: any) => void;
|
package/lib/esm/Injectables.js
CHANGED
|
@@ -1 +1,66 @@
|
|
|
1
|
-
import
|
|
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
|
package/lib/esm/constants.js
CHANGED
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
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
|
package/lib/esm/decorators.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @memberOf module:injectable-decorators.Decorators
|
|
11
11
|
*/
|
|
12
|
-
export declare const injectable: (category?: string | undefined, force?: boolean, instanceCallback?: (instance: any, ...args: any[]) => void) => (original: any) => any;
|
|
12
|
+
export declare const injectable: (category?: string | undefined, force?: boolean, instanceCallback?: (instance: any, ...args: any[]) => void) => (original: any, propertyKey?: any) => any;
|
|
13
13
|
/**
|
|
14
14
|
* @summary function witch transforms a cached {@link injectable}
|
|
15
15
|
*
|
|
@@ -48,4 +48,4 @@ export type InstanceTransformer = (injectable: any, obj: any) => any;
|
|
|
48
48
|
*
|
|
49
49
|
* @memberOf module:injectable-decorators.Decorators
|
|
50
50
|
*/
|
|
51
|
-
export declare const inject: (category?: string, transformer?: InstanceTransformer) => (target: any, propertyKey
|
|
51
|
+
export declare const inject: (category?: string, transformer?: InstanceTransformer) => (target: any, propertyKey?: any) => void;
|
package/lib/esm/decorators.js
CHANGED
|
@@ -1 +1,132 @@
|
|
|
1
|
-
import
|
|
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) =>
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
26
|
+
(original, propertyKey) => {
|
|
27
|
+
const name = category || original.name;
|
|
28
|
+
// the new constructor behaviour
|
|
29
|
+
const newConstructor = function (...args) {
|
|
30
|
+
let inj = Injectables.get(name, ...args);
|
|
31
|
+
if (!inj) {
|
|
32
|
+
Injectables.register(original, name, true, force);
|
|
33
|
+
inj = Injectables.get(name, ...args);
|
|
34
|
+
if (!inj)
|
|
35
|
+
return undefined;
|
|
36
|
+
if (instanceCallback)
|
|
37
|
+
try {
|
|
38
|
+
instanceCallback(inj);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
console.error(`Failed to call injectable callback for ${name}: ${e}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const metadata = Object.assign({}, {
|
|
45
|
+
class: name,
|
|
46
|
+
});
|
|
47
|
+
Reflect.defineMetadata(getInjectKey(InjectablesKeys.INJECTABLE), metadata, inj.constructor);
|
|
48
|
+
return inj;
|
|
49
|
+
};
|
|
50
|
+
// copy prototype so instanceof operator still works
|
|
51
|
+
newConstructor.prototype = original.prototype;
|
|
52
|
+
// newConstructor.__proto__ = original.__proto__;
|
|
53
|
+
// Sets the proper constructor name for type verification
|
|
54
|
+
Object.defineProperty(newConstructor, "name", {
|
|
55
|
+
writable: false,
|
|
56
|
+
enumerable: true,
|
|
57
|
+
configurable: false,
|
|
58
|
+
value: original.prototype.constructor.name,
|
|
59
|
+
});
|
|
60
|
+
// return new constructor (will override original)
|
|
61
|
+
return newConstructor;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* @summary Allows for the injection of an {@link injectable} decorated dependency
|
|
65
|
+
* @description the property must be typed for the requested dependency.
|
|
66
|
+
*
|
|
67
|
+
* Only concrete classes. No generics are supported
|
|
68
|
+
*
|
|
69
|
+
* Injected properties should be described like so:
|
|
70
|
+
* <pre>
|
|
71
|
+
* class ClassName {
|
|
72
|
+
* ...
|
|
73
|
+
*
|
|
74
|
+
* @inject()
|
|
75
|
+
* propertyName!: InjectableClass;
|
|
76
|
+
*
|
|
77
|
+
* ...
|
|
78
|
+
* }
|
|
79
|
+
* </pre>
|
|
80
|
+
*
|
|
81
|
+
* where InjectableClass is the class you want to inject.
|
|
82
|
+
* Notice the use of '!:' to ensure the transpiler the property will be set outside the constructor but will always be defined
|
|
83
|
+
* For project where minification occours, you should use the category param to ensure the name is the same throughout
|
|
84
|
+
*
|
|
85
|
+
* @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)
|
|
86
|
+
* @param {InstanceTransformer} [transformer]
|
|
87
|
+
*
|
|
88
|
+
* @function inject
|
|
89
|
+
*
|
|
90
|
+
* @memberOf module:injectable-decorators.Decorators
|
|
91
|
+
*/
|
|
92
|
+
export const inject = (category, transformer) => (target, propertyKey) => {
|
|
93
|
+
const values = new WeakMap();
|
|
94
|
+
const name = category || getTypeFromDecorator(target, propertyKey);
|
|
95
|
+
if (!name)
|
|
96
|
+
throw new Error(`Could not get Type from decorator`);
|
|
97
|
+
Reflect.defineMetadata(getInjectKey(InjectablesKeys.INJECT), {
|
|
98
|
+
injectable: name,
|
|
99
|
+
}, target, propertyKey);
|
|
100
|
+
Object.defineProperty(target, propertyKey, {
|
|
101
|
+
configurable: true,
|
|
102
|
+
get() {
|
|
103
|
+
const descriptor = Object.getOwnPropertyDescriptor(target, propertyKey);
|
|
104
|
+
if (descriptor.configurable) {
|
|
105
|
+
Object.defineProperty(this, propertyKey, {
|
|
106
|
+
enumerable: true,
|
|
107
|
+
configurable: false,
|
|
108
|
+
get() {
|
|
109
|
+
let obj = values.get(this);
|
|
110
|
+
if (!obj) {
|
|
111
|
+
obj = Injectables.get(name);
|
|
112
|
+
if (!obj)
|
|
113
|
+
throw new Error(`Could not get Injectable ${name} to inject in ${target.constructor ? target.constructor.name : target.name}'s ${propertyKey}`);
|
|
114
|
+
if (transformer)
|
|
115
|
+
try {
|
|
116
|
+
obj = transformer(obj, target);
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
console.error(e);
|
|
120
|
+
}
|
|
121
|
+
values.set(this, obj);
|
|
122
|
+
}
|
|
123
|
+
return obj;
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
return this[propertyKey];
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ25CLENBQUM7NEJBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3hCLENBQUM7d0JBQ0QsT0FBTyxHQUFHLENBQUM7b0JBQ2IsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGVzS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZXMgfSBmcm9tIFwiLi9JbmplY3RhYmxlc1wiO1xuaW1wb3J0IHsgZ2V0VHlwZUZyb21EZWNvcmF0b3IgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgcmVmbGVjdGlvbiBrZXkgZm9yIGluamVjdGFibGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQGZ1bmN0aW9uIGdldEluamVjdEtleVxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmNvbnN0IGdldEluamVjdEtleSA9IChrZXk6IHN0cmluZykgPT4gSW5qZWN0YWJsZXNLZXlzLlJFRkxFQ1QgKyBrZXk7XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyBhIGNsYXNzIGFzIGFuIGluamVjdGFibGVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NhdGVnb3J5XSBkZWZhdWx0cyB0byB0aGUgY2xhc3MgTmFtZS4gKFVzZWZ1bCB3aGVuIG1pbmlmaWNhdGlvbiBvY2NvdXJzIGFuZCBuYW1lcyBhcmUgY2hhbmdlZCBzbyB3ZSBjYW4gbm8gbG9uZ2VyIHJlbHkgb24gdGhlIGNsYXNzIG5hbWUsIG9yIHdoZW4gd2Ugd2FudCB0byB1cGNhc3QgdGhlIE9iamVjdClcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlXSBkZWZpbmVzIGlmIHRoZSBpbmplY3RhYmxlIHNob3VsZCBvdmVycmlkZSB0aGUgYWxyZWFkeSBleGlzdGluZyBpbnN0YW5jZSAoaWYgYW55KS4gKG9ubHkgbWVhbnQgZm9yIGV4dGVuZGluZyBkZWNvcmF0b3JzXG4gKiBAcGFyYW0gaW5zdGFuY2VDYWxsYmFja1xuICpcbiAqIEBmdW5jdGlvbiBpbmplY3RhYmxlXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnMuRGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgaW5qZWN0YWJsZSA9XG4gIChcbiAgICBjYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIGZvcmNlOiBib29sZWFuID0gZmFsc2UsXG4gICAgaW5zdGFuY2VDYWxsYmFjaz86IChpbnN0YW5jZTogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZFxuICApID0+XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgKG9yaWdpbmFsOiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGNhdGVnb3J5IHx8IG9yaWdpbmFsLm5hbWU7XG4gICAgLy8gdGhlIG5ldyBjb25zdHJ1Y3RvciBiZWhhdmlvdXJcbiAgICBjb25zdCBuZXdDb25zdHJ1Y3RvcjogYW55ID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBsZXQgaW5qOiBhbnkgPSBJbmplY3RhYmxlcy5nZXQ8YW55PihuYW1lLCAuLi5hcmdzKTtcbiAgICAgIGlmICghaW5qKSB7XG4gICAgICAgIEluamVjdGFibGVzLnJlZ2lzdGVyKG9yaWdpbmFsLCBuYW1lLCB0cnVlLCBmb3JjZSk7XG4gICAgICAgIGluaiA9IEluamVjdGFibGVzLmdldDxhbnk+KG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgICBpZiAoIWluaikgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoaW5zdGFuY2VDYWxsYmFjaylcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5zdGFuY2VDYWxsYmFjayhpbmopO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBjYWxsIGluamVjdGFibGUgY2FsbGJhY2sgZm9yICR7bmFtZX06ICR7ZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzOiBuYW1lLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgICBnZXRJbmplY3RLZXkoSW5qZWN0YWJsZXNLZXlzLklOSkVDVEFCTEUpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgaW5qLmNvbnN0cnVjdG9yXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gaW5qO1xuICAgIH07XG5cbiAgICAvLyBjb3B5IHByb3RvdHlwZSBzbyBpbnN0YW5jZW9mIG9wZXJhdG9yIHN0aWxsIHdvcmtzXG4gICAgbmV3Q29uc3RydWN0b3IucHJvdG90eXBlID0gb3JpZ2luYWwucHJvdG90eXBlO1xuICAgIC8vIG5ld0NvbnN0cnVjdG9yLl9fcHJvdG9fXyA9IG9yaWdpbmFsLl9fcHJvdG9fXztcbiAgICAvLyBTZXRzIHRoZSBwcm9wZXIgY29uc3RydWN0b3IgbmFtZSBmb3IgdHlwZSB2ZXJpZmljYXRpb25cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3Q29uc3RydWN0b3IsIFwibmFtZVwiLCB7XG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBvcmlnaW5hbC5wcm90b3R5cGUuY29uc3RydWN0b3IubmFtZSxcbiAgICB9KTtcbiAgICAvLyByZXR1cm4gbmV3IGNvbnN0cnVjdG9yICh3aWxsIG92ZXJyaWRlIG9yaWdpbmFsKVxuICAgIHJldHVybiBuZXdDb25zdHJ1Y3RvcjtcbiAgfTtcblxuLyoqXG4gKiBAc3VtbWFyeSBmdW5jdGlvbiB3aXRjaCB0cmFuc2Zvcm1zIGEgY2FjaGVkIHtAbGluayBpbmplY3RhYmxlfVxuICpcbiAqIEBwYXJhbSB7YW55fSBpbmplY3RhYmxlXG4gKiBAcGFyYW0ge2FueX0gb2JqIHRoZSBvYmogdGhlIGluamVjdGFibGUgd2lsbCBiZSBpbmplY3RlZCBvblxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlVHJhbnNmb3JtZXIgPSAoaW5qZWN0YWJsZTogYW55LCBvYmo6IGFueSkgPT4gYW55O1xuXG4vKipcbiAqIEBzdW1tYXJ5IEFsbG93cyBmb3IgdGhlIGluamVjdGlvbiBvZiBhbiB7QGxpbmsgaW5qZWN0YWJsZX0gZGVjb3JhdGVkIGRlcGVuZGVuY3lcbiAqIEBkZXNjcmlwdGlvbiB0aGUgcHJvcGVydHkgbXVzdCBiZSB0eXBlZCBmb3IgdGhlIHJlcXVlc3RlZCBkZXBlbmRlbmN5LlxuICpcbiAqIE9ubHkgY29uY3JldGUgY2xhc3Nlcy4gTm8gZ2VuZXJpY3MgYXJlIHN1cHBvcnRlZFxuICpcbiAqIEluamVjdGVkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGRlc2NyaWJlZCBsaWtlIHNvOlxuICogPHByZT5cbiAqICAgICBjbGFzcyBDbGFzc05hbWUge1xuICogICAgICAgICAuLi5cbiAqXG4gKiAgICAgICAgIEBpbmplY3QoKVxuICogICAgICAgICBwcm9wZXJ0eU5hbWUhOiBJbmplY3RhYmxlQ2xhc3M7XG4gKlxuICogICAgICAgICAuLi5cbiAqICAgICB9XG4gKiA8L3ByZT5cbiAqXG4gKiB3aGVyZSBJbmplY3RhYmxlQ2xhc3MgaXMgdGhlIGNsYXNzIHlvdSB3YW50IHRvIGluamVjdC5cbiAqIE5vdGljZSB0aGUgdXNlIG9mICchOicgdG8gZW5zdXJlIHRoZSB0cmFuc3BpbGVyIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHNldCBvdXRzaWRlIHRoZSBjb25zdHJ1Y3RvciBidXQgd2lsbCBhbHdheXMgYmUgZGVmaW5lZFxuICogRm9yIHByb2plY3Qgd2hlcmUgbWluaWZpY2F0aW9uIG9jY291cnMsIHlvdSBzaG91bGQgdXNlIHRoZSBjYXRlZ29yeSBwYXJhbSB0byBlbnN1cmUgdGhlIG5hbWUgaXMgdGhlIHNhbWUgdGhyb3VnaG91dFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbY2F0ZWdvcnldIGRlZmF1bHRzIHRvIHRoZSBjbGFzcyBOYW1lLiAoVXNlZnVsIHdoZW4gbWluaWZpY2F0aW9uIG9jY291cnMgYW5kIG5hbWVzIGFyZSBjaGFuZ2VkIHNvIHdlIGNhbiBubyBsb25nZXIgcmVseSBvbiB0aGUgY2xhc3MgbmFtZSwgb3Igd2hlbiB3ZSB3YW50IHRvIHVwY2FzdCB0aGUgT2JqZWN0KVxuICogQHBhcmFtIHtJbnN0YW5jZVRyYW5zZm9ybWVyfSBbdHJhbnNmb3JtZXJdXG4gKlxuICogQGZ1bmN0aW9uIGluamVjdFxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzLkRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IGluamVjdCA9XG4gIChjYXRlZ29yeT86IHN0cmluZywgdHJhbnNmb3JtZXI/OiBJbnN0YW5jZVRyYW5zZm9ybWVyKSA9PlxuICAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGNvbnN0IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICBjYXRlZ29yeSB8fCBnZXRUeXBlRnJvbURlY29yYXRvcih0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGdldCBUeXBlIGZyb20gZGVjb3JhdG9yYCk7XG5cbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgZ2V0SW5qZWN0S2V5KEluamVjdGFibGVzS2V5cy5JTkpFQ1QpLFxuICAgICAge1xuICAgICAgICBpbmplY3RhYmxlOiBuYW1lLFxuICAgICAgfSxcbiAgICAgIHRhcmdldCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5LCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQodGhpczogYW55KSB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIHByb3BlcnR5S2V5XG4gICAgICAgICkgYXMgUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgcHJvcGVydHlLZXksIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZ2V0KHRoaXM6IGFueSkge1xuICAgICAgICAgICAgICBsZXQgb2JqID0gdmFsdWVzLmdldCh0aGlzKTtcbiAgICAgICAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgICAgICBvYmogPSBJbmplY3RhYmxlcy5nZXQobmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFvYmopXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBDb3VsZCBub3QgZ2V0IEluamVjdGFibGUgJHtuYW1lfSB0byBpbmplY3QgaW4gJHt0YXJnZXQuY29uc3RydWN0b3IgPyB0YXJnZXQuY29uc3RydWN0b3IubmFtZSA6IHRhcmdldC5uYW1lfSdzICR7cHJvcGVydHlLZXl9YFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAodHJhbnNmb3JtZXIpXG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBvYmogPSB0cmFuc2Zvcm1lcihvYmosIHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFsdWVzLnNldCh0aGlzLCBvYmopO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0aGlzW3Byb3BlcnR5S2V5XTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcbiJdfQ==
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -1 +1,24 @@
|
|
|
1
|
-
|
|
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.5.0";
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVIOzs7O0dBSUc7QUFFSCxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUV4Qjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgQWRkcyBhIHNpbXBsZSBJbmplY3RhYmxlcyBpbXBsZW1lbnRhdGlvbiB0byBjcmVhdGUgc2luZ2xldG9uIGluc3RhbmNlcyBvZiBhbiBvYmplY3RcbiAqIGFuZCBlYXNpbHkgaW5qZWN0IGl0IGludG8gb3RoZXIgb2JqZWN0c1xuICpcbiAqIEBtb2R1bGUgaW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBmdW5jdGlvbnMgdGhhdCBkZWNvcmF0ZSBjbGFzc2VzIG9yIGNsYXNzIHByb3BlcnRpZXNcbiAqIEBuYW1lc3BhY2UgRGVjb3JhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVkIG9uIGxpYnJhcnkgYnVpbGQuIGhvbGRzIHRoZSBsaWJyYXJ5IGN1cnJlbnQgdmVyc2lvblxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIxLjUuMFwiO1xuIl19
|
package/lib/esm/registry.js
CHANGED
|
@@ -1 +1,60 @@
|
|
|
1
|
-
|
|
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";
|
|
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
|
-
|
|
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.5.0";
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUg7Ozs7R0FJRztBQUVILDhDQUE0QjtBQUM1QiwrQ0FBNkI7QUFDN0IsZ0RBQThCO0FBQzlCLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFFeEI7Ozs7R0FJRztBQUNVLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgQWRkcyBhIHNpbXBsZSBJbmplY3RhYmxlcyBpbXBsZW1lbnRhdGlvbiB0byBjcmVhdGUgc2luZ2xldG9uIGluc3RhbmNlcyBvZiBhbiBvYmplY3RcbiAqIGFuZCBlYXNpbHkgaW5qZWN0IGl0IGludG8gb3RoZXIgb2JqZWN0c1xuICpcbiAqIEBtb2R1bGUgaW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cblxuLyoqXG4gKiBAc3VtbWFyeSBmdW5jdGlvbnMgdGhhdCBkZWNvcmF0ZSBjbGFzc2VzIG9yIGNsYXNzIHByb3BlcnRpZXNcbiAqIEBuYW1lc3BhY2UgRGVjb3JhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVkIG9uIGxpYnJhcnkgYnVpbGQuIGhvbGRzIHRoZSBsaWJyYXJ5IGN1cnJlbnQgdmVyc2lvblxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIxLjUuMFwiO1xuIl19
|
package/lib/index.d.ts
CHANGED
package/lib/registry.cjs
CHANGED
|
@@ -1 +1,64 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/injectable-decorators",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "injectable decorators extension for decorator validation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
"@
|
|
63
|
-
"@
|
|
64
|
-
"
|
|
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": "^
|
|
67
|
+
"eslint": "^9.13.0",
|
|
67
68
|
"eslint-config-prettier": "^9.1.0",
|
|
68
|
-
"eslint-plugin-prettier": "^5.1
|
|
69
|
-
"
|
|
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": "^
|
|
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.
|
|
80
|
+
"jest-coverage-badges": "^1.0.0",
|
|
79
81
|
"jest-junit": "^16.0.0",
|
|
80
|
-
"jsdoc": "^4.0.
|
|
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.
|
|
85
|
-
"npm-check-updates": "^
|
|
86
|
-
"prettier": "^3.
|
|
87
|
-
"rimraf": "^
|
|
88
|
-
"ts-jest": "^29.
|
|
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.
|
|
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
|
},
|