ConfigurationModule.kt

package com.sebastmar.module.report.internal.domain.di

import com.sebastmar.module.report.configuration.ModulesInterceptor
import com.sebastmar.module.report.internal.Configuration
import com.sebastmar.module.report.internal.ShouldLinkifyFiles
import com.sebastmar.module.report.internal.ShowCircleIndicators
import com.sebastmar.module.report.internal.ShowLineIndicators
import com.sebastmar.module.report.internal.SkipReportKeyword
import com.sebastmar.module.report.internal.domain.StringProvider
import com.sebastmar.module.report.internal.domain.StringProviderImpl
import org.koin.dsl.module

/**
 * Provides access to the configuration values used within the module report library.
 */
internal fun configurationModule() = module {
    factory<ShouldLinkifyFiles> { get<Configuration>().shouldLinkifyFiles }
    factory<ShowCircleIndicators> { get<Configuration>().showCircleIndicators }
    factory<ShowLineIndicators> { get<Configuration>().showLineIndicators }
    factory<ModulesInterceptor> { get<Configuration>().modulesInterceptor }
    factory<SkipReportKeyword> { get<Configuration>().skipReportKeyword }
    factory<StringProvider> { StringProviderImpl(get<Configuration>().reportStrings) }
}