Hmlongco Factory Versions Save

A new approach to Container-Based Dependency Injection for Swift and SwiftUI.

2.3.2

2 months ago
  • Project updated CocoaPods to 1.15.2
  • Public aliases for masked Factory objects - Issue #154
  • Fix key issue when building xcframeworks - Issue #173
  • Add VisionOS target to package.swift - PR #186
  • Add Privacy Manifest file - PR #180
  • Update README to include example for use with Swift's new Observable macro - PR #172

2.3.1

7 months ago
  • Fix for SpinLock on Linux
  • Add action to test linux - Issue #113
  • Add various aliases to avoid external naming conflicts - Issue #154

2.3.0

8 months ago
  • Dramatic performance enhancements: Up to 200% faster in debug builds! Up to 400% faster in production builds!
  • Fixed bug where registering a context in the Factory definition cleared the scope cache. - Issue #146 Note that issue #146 could be a breaking change if your code attempts to replace a scoped context registration. Add a manual reset. Container.shared.myService.reset(.scope).onTest { MockService() } See The Factory Wins section in the Modifiers documentation for more on this.
  • Update trace output to also show actual instance type

2.2.0

10 months ago

2.2.0

  • Converts "shared" container variables from var to let. - Issue #111
  • Add convenience reset() function to container. - Issue #111 Note that issue #111 could be a breaking change if your code attempts to "replace" a shared container. Do reset instead. Container.shared.reset() // Do this... Container.shared = Container() // Not this...
  • Removes @MainActor from @InjectedObject property wrapper variables. - Issue #107
  • Fix registering a new context doesn't clear existing cache as did register. - Issue #114
  • Fix FactoryContext not public. - Issue #116
  • Update Modular Application documentation. - Issue #121
  • Adds $service.resolvedOrNil() function to LazyInjected and WeakLazyInjected. - Issue #122
  • Adds keypath-based global resolutions functions for shared containers.
  • Removes func register(scope:factory:) function deprecated in 2.1 Use container.service.scope(.cached).register { Service() } instead.

2.1.5

1 year ago
  • Adds TimeToLive to scoped instances.

2.1.4

1 year ago
  • Fix singletons in multiple modules keyed with same type and name. Issue - #99
  • Fix building on Linux. Issue - #100

2.1.3

1 year ago
  • Fix singleton scope issue with SharedContainer across multiple container types. Issue - #92
  • Fix unit test context to detect when run from command line. Issue - #94
  • Fix where new registration on Factory also clears singleton cache. Issue - #96
  • Minor update to trace logging for better presentation of nil optionals

2.1.2

1 year ago
  • Fixing POD issue

2.1.1

1 year ago
  • Fix SPM/POD build issue

2.1.0

1 year ago
  • Contexts allow quick and easy Factory customization when doing previews, debugging and testing.
  • Provides once modifier which allows one-time initialization on a per-Factory basis.
  • Let's you define the default scope used for a given container.
  • Allows you to specify promised optionals that warn when registrations are not provided.
  • Singletons now span containers and are cached separately.
  • Factory library now implemented across multiple files.