UNPKG

nestjs-custom-injector

Version:

Custom injecting logic for NestJS with support multi providing

38 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CustomInject = exports.CustomInjector = void 0; const custom_injector_service_1 = require("./custom-injector.service"); const custom_injector_types_1 = require("./custom-injector.types"); function CustomInjector() { return function (target, propertyKey) { Object.defineProperty(target, propertyKey, { get: function () { return custom_injector_service_1.CustomInjectorService.getInstance(); }, }); }; } exports.CustomInjector = CustomInjector; function CustomInject(token, options) { return function (target, propertyKey) { let injectedProvidersStorageItem = Reflect.getMetadata(`${custom_injector_types_1.CUSTOM_INJECTOR_METADATA}_${propertyKey}`, target); if (injectedProvidersStorageItem === undefined) { injectedProvidersStorageItem = custom_injector_service_1.CustomInjectorService.getInstance().createInjectedProvidersStorageItem(token, target, options || {}); } Reflect.defineMetadata(`${custom_injector_types_1.CUSTOM_INJECTOR_METADATA}_${propertyKey}`, injectedProvidersStorageItem, target); Object.defineProperty(target, propertyKey, { get: function () { if (!injectedProvidersStorageItem) { throw new custom_injector_types_1.CustomInjectorError('injectedProvidersStorageItem not set'); } if ((options === null || options === void 0 ? void 0 : options.lazy) || !injectedProvidersStorageItem.appiled) { injectedProvidersStorageItem.init(); } return injectedProvidersStorageItem.instance; }, }); }; } exports.CustomInject = CustomInject; //# sourceMappingURL=custom-injector.decorators.js.map