PATH:
opt
/
bitninja-threat-hunting
/
node_modules
/
tsyringe
/
dist
/
esm2015
/
decorators
import { getParamInfo } from "../reflection-helpers"; import { instance as globalContainer } from "../dependency-container"; import { isTokenDescriptor, isTransformDescriptor } from "../providers/injection-token"; import { formatErrorCtor } from "../error-helpers"; function autoInjectable() { return function (target) { const paramInfo = getParamInfo(target); return class extends target { constructor(...args) { super(...args.concat(paramInfo.slice(args.length).map((type, index) => { try { if (isTokenDescriptor(type)) { if (isTransformDescriptor(type)) { return type.multiple ? globalContainer .resolve(type.transform) .transform(globalContainer.resolveAll(type.token), ...type.transformArgs) : globalContainer .resolve(type.transform) .transform(globalContainer.resolve(type.token), ...type.transformArgs); } else { return type.multiple ? globalContainer.resolveAll(type.token) : globalContainer.resolve(type.token); } } else if (isTransformDescriptor(type)) { return globalContainer .resolve(type.transform) .transform(globalContainer.resolve(type.token), ...type.transformArgs); } return globalContainer.resolve(type); } catch (e) { const argIndex = index + args.length; throw new Error(formatErrorCtor(target, argIndex, e)); } }))); } }; }; } export default autoInjectable;
[-] scoped.js
[edit]
[-] inject-with-transform.js
[edit]
[+]
..
[-] singleton.js
[edit]
[-] inject.js
[edit]
[-] inject-all.js
[edit]
[-] index.js
[edit]
[-] injectable.js
[edit]
[-] auto-injectable.js
[edit]
[-] registry.js
[edit]
[-] inject-all-with-transform.js
[edit]