UNPKG

729 BJavaScriptView Raw
1const _bindAll = require('lodash.bindall');
2const _assign = require('lodash.assign');
3const Logger = require('./Logger');
4const ContainerManagement = require('./ContainerManagement');
5const DependencyManagement = require('./DependencyManagement');
6const RegistrationManagement = require('./RegistrationManagement');
7
8class Injector {
9 constructor(name = 'anonymous_injector', logger = Logger.create()) {
10 _bindAll(this, 'resolveDependency');
11 this.name = name;
12 this.logger = logger;
13 this.dependencies = {};
14 }
15
16 static create(name, logger) {
17 return new Injector(name, logger);
18 }
19}
20
21_assign(Injector.prototype, ContainerManagement, DependencyManagement, RegistrationManagement);
22
23module.exports = Injector;