-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPresentationDependencyAssembler.swift
More file actions
54 lines (41 loc) · 1.87 KB
/
PresentationDependencyAssembler.swift
File metadata and controls
54 lines (41 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//
// PresentationDependencyAssembler.swift
// Presentation
//
// Created by 최정인 on 6/26/25.
//
import Domain
import Shared
public struct PresentationDependencyAssembler: DependencyAssemblerProtocol {
private let preAssembler: DependencyAssemblerProtocol
public init(preAssembler: DependencyAssemblerProtocol) {
self.preAssembler = preAssembler
}
public func assemble() {
preAssembler.assemble()
DIContainer.shared.register(type: HomeViewModel.self) { _ in
return HomeViewModel()
}
DIContainer.shared.register(type: LoginViewModel.self) { container in
guard let loginUseCase = container.resolve(type: LoginUseCaseProtocol.self)
else { fatalError("loginUseCase 의존성이 등록되지 않았습니다.") }
return LoginViewModel(loginUseCase: loginUseCase)
}
DIContainer.shared.register(type: OnboardingViewModel.self) { container in
guard let onboardingUseCase = container.resolve(type: OnboardingUseCaseProtocol.self)
else { fatalError("onboardingUseCase 의존성이 등록되지 않았습니다.") }
return OnboardingViewModel(onboardingUseCase: onboardingUseCase)
}
DIContainer.shared.register(type: RecommendedRoutineViewModel.self) { _ in
return RecommendedRoutineViewModel()
}
DIContainer.shared.register(type: MypageViewModel.self) { container in
guard let userDataRepository = container.resolve(type: UserDataRepositoryProtocol.self)
else { fatalError("userDataRepository 의존성이 등록되지 않았습니다.") }
return MypageViewModel(userDataRepository: userDataRepository)
}
DIContainer.shared.register(type: EmotionRegisterViewModel.self) { _ in
return EmotionRegisterViewModel()
}
}
}