Weaver
Weaver copied to clipboard
Convenience `DependencyResolver` typealias for each injectable type
When injecting dependencies into a type, it is currently required to write the following:
final class AVeryLoooooooooooooooooooongTypeName {
private let dependencies: AVeryLoooooooooooooooooooongTypeNameDependencyResolver
init(injecting dependencies: AVeryLoooooooooooooooooooongTypeNameDependencyResolver) {
self.dependencies = dependencies
}
}
Weaver cannot auto generate that part as dependencies cannot be declared in an extension, but it can facilitate the declaration by generating a typealias for the dependency resolver.
Generated code:
extension AVeryLoooooooooooooooooooongTypeName {
typealias DependencyResolver = AVeryLoooooooooooooooooooongTypeNameDependencyResolver
}
User's code:
final class AVeryLoooooooooooooooooooongTypeName {
private let dependencies: DependencyResolver
init(injecting dependencies: DependencyResolver) {
self.dependencies = dependencies
}
}