1 package expo.modules.devlauncher.koin 2 3 import org.koin.core.Koin 4 import org.koin.core.component.KoinComponent 5 import org.koin.core.component.get 6 import org.koin.core.parameter.ParametersDefinition 7 import org.koin.core.qualifier.Qualifier 8 import org.koin.mp.KoinPlatformTools 9 10 interface DevLauncherKoinComponent : KoinComponent { getKoinnull11 override fun getKoin(): Koin = devLauncherKoin() 12 } 13 14 inline fun <reified T : Any> DevLauncherKoinComponent.optInject( 15 qualifier: Qualifier? = null, 16 mode: LazyThreadSafetyMode = KoinPlatformTools.defaultLazyMode(), 17 noinline parameters: ParametersDefinition? = null 18 ): Lazy<T?> = 19 lazy(mode) { 20 try { 21 get(qualifier, parameters) 22 } catch (e: Exception) { 23 return@lazy null 24 } 25 } 26