BaseProvider.swift 615 B

123456789101112131415161718192021222324252627282930
  1. import Combine
  2. import Foundation
  3. import Swinject
  4. protocol Provider {
  5. init(resolver: Resolver)
  6. var user: CurrentValueSubject<User?, Never> { get }
  7. }
  8. class BaseProvider: Provider, Injectable {
  9. let user = CurrentValueSubject<User?, Never>(nil)
  10. var lifetime = Set<AnyCancellable>()
  11. required init(resolver: Resolver) {
  12. injectServices(resolver)
  13. makeTestUser()
  14. }
  15. }
  16. extension BaseProvider {
  17. func makeTestUser() {
  18. let user = User(
  19. id: UUID(),
  20. name: "Vasiliy",
  21. email: "example@mail.ru"
  22. )
  23. self.user.send(user)
  24. }
  25. }