Skip to content

num42/swift-macro-autofactory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoFactory Macro

A Swift macro that generates a nested Factory for a class, producing convenient generate(...) methods and a registration helper for dependency injection.

Overview

Annotate a class with @AutoFactory and declare a nested Dependencies struct. For each initializer that accepts dependencies: Dependencies, the macro synthesizes a corresponding generate(...) method that forwards non-dependency parameters and injects the dependencies. It also emits a register(in:scope:) helper to integrate with a dependency container.

import AutoFactory

@AutoFactory
final class CounterCoordinator {
  struct Dependencies {
    let repository: Repository
    let analytics: Analytics
  }

  init(dependencies: Dependencies, startCount: Int) { /* ... */ }
}

let container = DependencyContainer()
CounterCoordinator.Factory.register(in: container)
let factory: CounterCoordinator.Factory = container.resolve()
let coordinator = factory.generate(startCount: 0)

About

Contains Code for AutoFactory Macro

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages