UNPKG

vue-inversify-decorator

Version:

PoC of combining vue-class-component and Inversify together

31 lines (30 loc) 1.11 kB
import { createDecorator } from 'vue-class-component'; var containerKey = '__inversify_container__'; export var Provide = function (container) { return createDecorator(function (options) { options.mixins = options.mixins || []; options.mixins.push({ provide: (_a = {}, _a[containerKey] = container, _a) }); var _a; }); }; export var Inject = function (identifier) { return function (proto, key) { var Type; if (typeof Reflect !== 'undefined' && typeof Reflect.getMetadata === 'function') { Type = Reflect.getMetadata('design:type', proto, key); } return createDecorator(function (options, key) { if (!options.__container_injected__) { options.mixins = options.mixins || []; options.mixins.push({ inject: [containerKey] }); options.__container_injected__ = true; } options.computed = options.computed || {}; options.computed[key] = function () { return this[containerKey].get(identifier || Type); }; })(proto, key); }; };