UNPKG

@lattice/core

Version:
41 lines (40 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("reflect-metadata"); var inversify_1 = require("inversify"); var __1 = require(".."); function Injectable(serviceIdentifier, container) { if (container === void 0) { container = 'provider'; } return function (constructor) { var targetContainer = container == 'root' ? __1.rootContainer : __1.providerContainer; var target = inversify_1.injectable()(constructor); targetContainer.bind(serviceIdentifier || target).to(target).inSingletonScope(); return target; }; } exports.Injectable = Injectable; function Overwrite(serviceIdentifier, container) { if (container === void 0) { container = 'provider'; } return function (constructor) { var targetContainer = container == 'root' ? __1.rootContainer : __1.providerContainer; if (targetContainer.isBound(serviceIdentifier)) targetContainer.unbind(serviceIdentifier); return Injectable(serviceIdentifier, container)(constructor); }; } exports.Overwrite = Overwrite; function Inject(serviceIdentifier) { return function (target, targetKey, index) { var token = serviceIdentifier || Reflect.getMetadata('design:type', target, targetKey); return inversify_1.inject(token)(target, targetKey, index); }; } exports.Inject = Inject; function MultiInject(serviceIdentifier) { return inversify_1.multiInject(serviceIdentifier); } exports.MultiInject = MultiInject; function Optional() { return inversify_1.optional(); } exports.Optional = Optional;