UNPKG

reactant-di

Version:

A dependency injection lib for Reactant

73 lines (70 loc) 2.86 kB
import { __values } from './node_modules/tslib/tslib.es6.js'; import 'reflect-metadata'; import { Optional } from './optional.js'; var getMetadata = function (metaKey) { return Reflect.getMetadata(metaKey, Reflect) || new Map(); }; var setMetadata = function (metaKey, target, serviceIdentifier) { if (serviceIdentifier === void 0) { serviceIdentifier = target; } var providesMeta = getMetadata(metaKey); providesMeta.set(serviceIdentifier || target, target); Reflect.defineMetadata(metaKey, providesMeta, Reflect); }; var modulesDeps; var setModulesDeps = function (deps) { modulesDeps = deps; }; var lookupServiceIdentifier = function (target, original, index) { var e_1, _a; if (typeof index === 'undefined') return original; try { for (var modulesDeps_1 = __values(modulesDeps), modulesDeps_1_1 = modulesDeps_1.next(); !modulesDeps_1_1.done; modulesDeps_1_1 = modulesDeps_1.next()) { var modulesDep = modulesDeps_1_1.value; if (typeof modulesDep === 'object') { var deps = modulesDep.deps; if ((modulesDep.provide === target || modulesDep.useClass === target) && Array.isArray(deps) && typeof deps[index] !== 'undefined') { if (deps[index] instanceof Optional) { return deps[index].key; } return deps[index]; } } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (modulesDeps_1_1 && !modulesDeps_1_1.done && (_a = modulesDeps_1.return)) _a.call(modulesDeps_1); } finally { if (e_1) throw e_1.error; } } return original; }; var lookupOptionalIdentifier = function (serviceIdentifier) { var e_2, _a; try { for (var modulesDeps_2 = __values(modulesDeps), modulesDeps_2_1 = modulesDeps_2.next(); !modulesDeps_2_1.done; modulesDeps_2_1 = modulesDeps_2.next()) { var modulesDep = modulesDeps_2_1.value; var deps = modulesDep.deps; if (typeof modulesDep === 'object' && Array.isArray(deps) && (modulesDep.useClass || Object.keys(modulesDep).length === 2)) { return !!deps.filter(function (dep) { return dep instanceof Optional && dep.identifier === serviceIdentifier; }).length; } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (modulesDeps_2_1 && !modulesDeps_2_1.done && (_a = modulesDeps_2.return)) _a.call(modulesDeps_2); } finally { if (e_2) throw e_2.error; } } return false; }; export { getMetadata, lookupOptionalIdentifier, lookupServiceIdentifier, setMetadata, setModulesDeps };