Inversify - конструктор с введенным и не введенным аргументом
РЕДАКТИРОВАТЬ:
Здесь вы можете найти рабочую копию моего старого теста, который я пытаюсь переписать с помощью Inversify.
В server.ts у меня есть этот кусок кода:
public api() {
let router: express.Router = express.Router();
API.UserAPI.InitController(router, new UserRepository())
this.app.use(router);
}
Представьте, что у меня есть несколько контроллеров. InitController - это статический метод любого контроллера, который использует собственный репозиторий и тот же экземпляр экспресс-маршрутизатора, который будет использоваться для настройки маршрутов API. Пример контроллера:
constructor(router: Router, userRepository: UserRepository) {
super(router, userRepository);
this.InitRoutes();
}
public static InitController(router: Router, userRepository: UserRepository): UserAPI {
return new UserAPI(router, userRepository);
}
public InitRoutes() {
LogHelper.Info('Creating User API');
this.Router.get('/api/Users', this.GetAll.bind(this));
this.Router.get('/api/Users/:id', this.Get.bind(this));
this.Router.post('/api/Users', this.Add.bind(this));
this.Router.put('/api/Users', this.Update.bind(this));
this.Router.delete('/api/Users/:id', this.Delete.bind(this));
}
Как я могу использовать один и тот же экземпляр маршрутизатора для инициализации всех контроллеров с Inversify?