UNPKG

@vue-ioc/core

Version:

IoC and DI for Vue powered by InversifyJS and inspired by Angular @Module syntactic sugar.

2 lines 12.4 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue-class-component"),require("inversify"),require("reflect-metadata")):"function"==typeof define&&define.amd?define(["vue-class-component","inversify","reflect-metadata"],t):"object"==typeof exports?exports.VueIoc=t(require("vue-class-component"),require("inversify"),require("reflect-metadata")):e.VueIoc=t(e["vue-class-component"],e.inversify,e["reflect-metadata"])}(this,(function(e,t,n){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.$_vueTestUtils_original=t.$vueIocProvidedIn=t.$vueIocInjections=t.$vueIocContainer=t.$vueIocModuleOptions=t.$vueIocOnDestroyMethod=t.$vueIocOnInitMethod=t.$vueIocInstanceListenerMethods=t.$vueIocCustomInstanceListeners=void 0,t.$vueIocCustomInstanceListeners="$vueIocCustomInstanceListeners",t.$vueIocInstanceListenerMethods="$vueIocInstanceListenerMethods",t.$vueIocOnInitMethod="$vueIocOnInitMethod",t.$vueIocOnDestroyMethod="$vueIocOnDestroyMethod",t.$vueIocModuleOptions="$vueIocModuleOptions",t.$vueIocContainer="$vueIocContainer",t.$vueIocInjections="$vueIocInjections",t.$vueIocProvidedIn="$vueIocProvidedIn",t.$_vueTestUtils_original="$_vueTestUtils_original"},function(t,n){t.exports=e},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isVuePrototype=void 0,t.isVuePrototype=function(e){return e.$nextTick&&e.$watch}},function(e,n){e.exports=t},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.onActivation=void 0;var o=n(5);t.onActivation=function(e,t){return t instanceof o.LifecycleHandler||e.container.get(o.LifecycleHandler).registerInstance(t),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LifecycleHandler=void 0;var o=n(0),r=function(){function e(e){this.injector=e,this.containerInstances=[],this.beforeDestroyCustomInstanceListeners=[]}return e.prototype.registerInstance=function(e){var t=e.constructor,n={instance:e,onInit:t[o.$vueIocOnInitMethod],onDestroy:t[o.$vueIocOnDestroyMethod],customInstanceListeners:t[o.$vueIocInstanceListenerMethods]};this.containerInstances.push(n),this.callCustomInstanceListeners(n),function(e){var t=e.instance,n=e.onInit;n&&t[n]()}(n)},e.prototype.destroy=function(){this.containerInstances.forEach(i),this.containerInstances=[],this.beforeDestroyCustomInstanceListeners.forEach(c),this.beforeDestroyCustomInstanceListeners=[]},e.prototype.callCustomInstanceListeners=function(e){var t=e.instance,n=e.customInstanceListeners,o=this.injector;this.beforeDestroyCustomInstanceListeners=(n||[]).map((function(e){var n=e.method;return(0,e.handler)({method:n,instance:t,injector:o})}))},e}();function i(e){var t=e.instance,n=e.onDestroy;n&&t[n]()}function c(e){e&&e()}t.LifecycleHandler=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Injector=void 0;var o=function(){function e(e){this.container=e}return e.prototype.get=function(e){return this.container.get(e)},e}();t.Injector=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(8);Object.defineProperty(t,"Injectable",{enumerable:!0,get:function(){return o.Injectable}});var r=n(9);Object.defineProperty(t,"Inject",{enumerable:!0,get:function(){return r.Inject}}),Object.defineProperty(t,"InjectReactive",{enumerable:!0,get:function(){return r.InjectReactive}});var i=n(11);Object.defineProperty(t,"Module",{enumerable:!0,get:function(){return i.Module}});var c=n(12);Object.defineProperty(t,"PostConstruct",{enumerable:!0,get:function(){return c.PostConstruct}});var u=n(13);Object.defineProperty(t,"BeforeDestroy",{enumerable:!0,get:function(){return u.BeforeDestroy}});var s=n(14);Object.defineProperty(t,"VueIocPlugin",{enumerable:!0,get:function(){return s.VueIocPlugin}});var a=n(20);Object.defineProperty(t,"createInstanceHandlerDecorator",{enumerable:!0,get:function(){return a.createInstanceHandlerDecorator}});var d=n(6);Object.defineProperty(t,"Injector",{enumerable:!0,get:function(){return d.Injector}}),n(21).justForOutputDTSFile()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Injectable=void 0;var o=n(3),r=n(0);t.Injectable=function(e){if(void 0===e&&(e={providedIn:"self"}),3===arguments.length)throw new Error("Please use @Injectable() with parentheses");return function(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];return t[r.$vueIocProvidedIn]=e.providedIn,o.injectable()(t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Inject=t.InjectReactive=void 0;var o=n(3);n(10);var r=n(1),i=n(2),c=n(0);function u(e,t,n,u,s){if(void 0===s&&(s={reactive:!1}),"number"!=typeof n)return i.isVuePrototype(e)?function(e,t,n,o){void 0===o&&(o={reactive:!1});var i=Reflect.getMetadata("design:type",e,t),u=i===Array;return r.createDecorator((function(e){e[c.$vueIocInjections]||(e[c.$vueIocInjections]={}),e[c.$vueIocInjections][t]={isArrayType:u,identifier:n||i,reactive:o.reactive}}))}(e,t,u,s)(e,t):function(e,t,n){var r=Reflect.getMetadata("design:type",e,t);(r===Array?o.multiInject:o.inject)(n||r)(e,t)}(e,t,u);!function(e,t,n,r){var i=Reflect.getMetadata("design:paramtypes",e)[n];(i===Array?o.multiInject:o.inject)(r||i)(e,t,n)}(e,t,n,u)}t.InjectReactive=function(e){if(arguments.length>1)throw new Error("Please use @InjectReactive() with parentheses");return function(t,n,o){return u(t,n,o,e,{reactive:!0})}},t.Inject=function(e){if(arguments.length>1)throw new Error("Please use @Inject() with parentheses");return function(t,n,o){return u(t,n,o,e)}}},function(e,t){e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Module=void 0;var o=n(0);t.Module=function(e){return function(t){return t.prototype[o.$vueIocModuleOptions]=e,t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PostConstruct=void 0;var o=n(2),r=n(1),i=n(0);t.PostConstruct=function(){return function(e,t){if(o.isVuePrototype(e))return r.createDecorator((function(e){e[i.$vueIocOnInitMethod]=t}))(e,t);e.constructor[i.$vueIocOnInitMethod]=t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BeforeDestroy=void 0;var o=n(2),r=n(1),i=n(0);t.BeforeDestroy=function(){return function(e,t){if(o.isVuePrototype(e))return r.createDecorator((function(e){e[i.$vueIocOnDestroyMethod]=t}))(e,t);e.constructor[i.$vueIocOnDestroyMethod]=t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VueIocPlugin=void 0;var o=n(15),r=n(5),i=n(0),c=n(7);function u(e){var t=e.$options;return t[i.$_vueTestUtils_original]?t[i.$_vueTestUtils_original].prototype[i.$vueIocModuleOptions]:e[i.$vueIocModuleOptions]}t.VueIocPlugin={install:function(e,t){var n=(void 0===t?{}:t).containerOptions,s=new e({data:{targetObject:{}}});e.mixin({beforeCreate:function(){var e=this.$options,t=function(e){var t=e;for(;t;){if(t[i.$vueIocContainer])return t[i.$vueIocContainer];t=t.$parent}return null}(this),r=u(this);this[i.$vueIocContainer]=r?o.createContainerWithBindings({initOnStart:r.start,parent:r.parentContainer||t,providers:r.providers,vm:this,containerOptions:n}):t;var c=this[i.$vueIocContainer];if(c&&e[i.$vueIocInjections])for(var a in e[i.$vueIocInjections])if(e[i.$vueIocInjections].hasOwnProperty(a)){var d=e[i.$vueIocInjections][a],v=d.isArrayType,f=d.identifier,l=d.reactive,I=v?c.getAll(f):c.get(f);l&&(s.targetObject=I),this[a]=I}},created:function(){var e=this,t=this.$options;t[i.$vueIocInstanceListenerMethods]&&(this[i.$vueIocCustomInstanceListeners]=t[i.$vueIocInstanceListenerMethods].map((function(t){var n=t.method;return(0,t.handler)({instance:e,method:n,injector:e[i.$vueIocContainer].get(c.Injector)})}))),t[i.$vueIocOnInitMethod]&&this[t[i.$vueIocOnInitMethod]]()},beforeDestroy:function(){var e=this[i.$vueIocCustomInstanceListeners];if(e&&e.forEach((function(e){e&&e()})),!!u(this)){var t=this[i.$vueIocContainer];t.get(r.LifecycleHandler).destroy(),t.unbindAll()}var n=this.$options;n[i.$vueIocOnDestroyMethod]&&this[n[i.$vueIocOnDestroyMethod]]()}})}}},function(e,t,n){"use strict";var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.createContainerWithBindings=void 0;var r=n(3),i=n(16),c={autoBindInjectable:!1,defaultScope:"Singleton",skipBaseClassChecks:!0};t.createContainerWithBindings=function(e){var t=e.providers,n=e.parent,u=e.vm,s=e.initOnStart,a=e.containerOptions,d=o(o({},c),a),v=n?n.createChild(d):new r.Container(d);return i.executeBindings(v,t,u),(s||[]).forEach((function(e){return v.get(e)})),v}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.executeBindings=void 0;var o=n(17),r=n(18),i=n(19),c=n(5),u=n(6),s=n(0),a={useClass:r.bindClass,useFactory:o.bindFactory,useValue:i.bindValue};t.executeBindings=function(e,t,n){void 0===t&&(t=[]);var o=new u.Injector(e);e.bind(u.Injector).toConstantValue(o),e.bind(c.LifecycleHandler).toConstantValue(new c.LifecycleHandler(o)),t.forEach((function(t){var o=function(e,t,n){var o=function(e){if(e.providedIn)return e.providedIn;if("function"==typeof e&&e[s.$vueIocProvidedIn])return e[s.$vueIocProvidedIn];if(e.useClass&&e.useClass.providedIn)return e.useClass.providedIn;return"self"}(e);switch(o){case"root":return function(e){var t=e;for(;t;){if(t[s.$vueIocContainer]){var n=t[s.$vueIocContainer];if(!n.parent)return n}t=t.$parent}throw new Error("Couldn't find root container")}(n);case"self":return t}throw new Error("Invalid providedIn: "+o)}(t,e,n);"function"==typeof t?a.useClass(o,{useClass:t,provide:t}):Object.keys(a).forEach((function(e){t[e]&&a[e](o,t)}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bindFactory=void 0;var o=n(4),r=n(6);t.bindFactory=function(e,t){var n=t.provide,i=t.useFactory;e.isBound(n)||e.bind(n).toDynamicValue((function(e){return i(e.container.get(r.Injector))})).onActivation(o.onActivation)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bindClass=void 0;var o=n(4);t.bindClass=function(e,t){var n=t.provide,r=t.useClass,i=t.noSingleton;if(!e.isBound(n)){var c=e.bind(n).to(r);c.onActivation(o.onActivation),i&&c.inTransientScope()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bindValue=void 0;var o=n(4);t.bindValue=function(e,t){var n=t.provide,r=t.useValue;e.isBound(n)||e.bind(n).toConstantValue(r).onActivation(o.onActivation)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createInstanceHandlerDecorator=void 0;var o=n(2),r=n(1),i=n(0);t.createInstanceHandlerDecorator=function(e){return function(t,n){if(o.isVuePrototype(t))return r.createDecorator((function(t){t[i.$vueIocInstanceListenerMethods]||(t[i.$vueIocInstanceListenerMethods]=[]),t[i.$vueIocInstanceListenerMethods].push({method:n,handler:e})}))(t,n);var c=t.constructor;c[i.$vueIocInstanceListenerMethods]||(c[i.$vueIocInstanceListenerMethods]=[]),c[i.$vueIocInstanceListenerMethods].push({method:n,handler:e})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.justForOutputDTSFile=void 0,t.justForOutputDTSFile=function(){return!1}}])})); //# sourceMappingURL=vue-ioc-core.js.map