Injector

develop

A Swift package for simple dependency injection that also supports Swift UI previews.
ptrkstr/Injector




A Swift package for simple dependency injection that also supports Swift UI previews.

Features

  • Built upon the amazing Factory
  • Tiny footprint (Injector.swift and Factory.swift are the only source files).
  • Built for mocking in UnitTests, UITests and SwiftUI previews.
  • Unit Tested.
  • Cool logo.

Usage

Injector uses the concept of a syringe:

extension Syringe {

}

Filled with medicine:

extension Syringe {
  static let person = Medicine<PersonType>(Person(), mock: Person_Mock())
  static let dog = Medicine<DogType>(Dog(), mock: Dog_Mock())
}

And at runtime injected:

let person = Syringe.person.inject()
// or
let person = Syringe.person()
// or
@Inject(Syringe.person) var person

Performing a clean will reset the instances:

Syringe.clean()

Installation

SPM

https://github.com/ptrkstr/injector

Description

  • Swift Tools 5.6.0
View More Packages from this Author

Dependencies

Last updated: Thu Mar 16 2023 09:25:36 GMT-0500 (GMT-05:00)