DIKit import UIKit extension AppResolver { func resolveAModel() -> AModel { return provideAModel() } func resolveAViewController() -> AViewController { let aViewModel = resolveAViewModel() return AViewController(dependency: .init(viewModel: aViewModel)) } func resolveAViewModel() -> AViewModel { let aModel = resolveAModel() return AViewModel(dependency: .init(model: aModel)) } func resolveBModel() -> BModel { return provideBModel() } func resolveBViewController() -> BViewController { let bViewModel = resolveBViewModel() return BViewController(dependency: .init(viewModel: bViewModel)) } func resolveBViewModel() -> BViewModel { let bModel = resolveBModel() return BViewModel(dependency: .init(model: bModel)) } func resolveCModel() -> CModel { return provideCModel() } func resolveCViewController() -> CViewController { let cViewModel = resolveCViewModel() return CViewController(dependency: .init(viewModel: cViewModel)) } func resolveCViewModel() -> CViewModel { let cModel = resolveCModel() return CViewModel(dependency: .init(model: cModel)) } func resolveViewController() -> ViewController { let aViewController = resolveAViewController() let bViewController = resolveBViewController() let cViewController = resolveCViewController() return ViewController(dependency: .init(aViewController: aViewController, bViewController: bViewController, cViewController: cViewController)) } } func resolveCViewController() -> CViewController { let cViewModel = resolveCViewModel() return CViewController(dependency: .init(viewMode cViewModel)) } func resolveCViewModel() -> CViewModel { let cModel = resolveCModel() return CViewModel(dependency: .init(model: cModel } func resolveViewController() -> ViewController { let aViewController = resolveAViewController() let bViewController = resolveBViewController() let cViewController = resolveCViewController() return ViewController(dependency: .init(aViewCont aViewController, bViewController: bViewController, cViewC cViewController)) } }