needle icon indicating copy to clipboard operation
needle copied to clipboard

public properties

Open nurk02 opened this issue 2 years ago • 3 comments

Hello! i enjoy using this framework and huge thanks to you for it. there is an issue we faced in our team while using it. I guess from some version of needle you have to change properties(child components) in component as public. Otherwise needle wouldn't be able to see dependency providers. Please update information about it in readme and other documentations.

Example:

final class RootComponent: BootstrapComponent {

//if it is only var someService: SomeServiceType (as internal) it won't work public var someService: SomeServiceType { let provider = MoyaProvider<AnyTarget>(plugins: [NetworkLoggerPlugin()]) return SomeServiceType(provider: provider) }

//if it is only var someTracker: SomeServiceType (as internal) it won't work public var someTracker: SomeTracker { return shared { SomeTrackerImpl(storage: UserDefaultsStorage(), rootModuleBuilder: self, someService: someService) } }

Thank you. would be thankful if you mention me somewhere in this repo. Wish you all the best! :)

nurk02 avatar Sep 18 '23 13:09 nurk02

Even i faced it. Is this a fix for some issue in the framework? Even i wouldn't like to use public for the dependencies used inside the same module.

shreesha-kedilaya avatar Sep 29 '23 06:09 shreesha-kedilaya

I've just started using needle and ran into the same issue, which was quite troublesome. Personally, I agree that I don’t want to use 'public' for use within the same module. But for the time being, I think it would be helpful if the documentation stated that 'public' should be used for the dependencies, to save time for new users.

maiyama18 avatar Sep 30 '23 01:09 maiyama18

#459 This looks like the exact commit that completely changed how we're supposed to use Needle.

xezero avatar Mar 06 '24 11:03 xezero