
commonMain.com.apadmi.mockzilla.lib.Mockzilla.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mockzilla-jvm Show documentation
Show all versions of mockzilla-jvm Show documentation
Solution for running and configuring a local HTTP server on mobile.
The newest version!
package com.apadmi.mockzilla.lib
import com.apadmi.mockzilla.lib.internal.di.DependencyInjector
import com.apadmi.mockzilla.lib.internal.discovery.ZeroConfDiscoveryService
import com.apadmi.mockzilla.lib.internal.service.validate
import com.apadmi.mockzilla.lib.internal.startServer
import com.apadmi.mockzilla.lib.internal.stopServer
import com.apadmi.mockzilla.lib.internal.utils.FileIo
import com.apadmi.mockzilla.lib.models.MetaData
import com.apadmi.mockzilla.lib.models.MockzillaConfig
import com.apadmi.mockzilla.lib.models.MockzillaRuntimeParams
import com.apadmi.mockzilla.lib.service.toKermitLogWriter
import com.apadmi.mockzilla.lib.service.toKermitSeverity
import co.touchlab.kermit.Logger
import co.touchlab.kermit.StaticConfig
import co.touchlab.kermit.platformLogWriter
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
/**
* Stops the Mockzilla server,
*/
fun stopMockzilla() {
stopServer()
}
internal fun startMockzilla(
config: MockzillaConfig,
metaData: MetaData,
fileIo: FileIo,
zeroConfDiscoveryService: (Logger) -> ZeroConfDiscoveryService
): MockzillaRuntimeParams {
val logger = Logger(
StaticConfig(
config.logLevel.toKermitSeverity(),
listOf(platformLogWriter()) + config.additionalLogWriters.map { it.toKermitLogWriter() }
), "Mockzilla"
)
return startMockzilla(config, prepareMockzilla(config, metaData, fileIo, logger, zeroConfDiscoveryService(logger)))
}
internal fun prepareMockzilla(
config: MockzillaConfig,
metaData: MetaData,
fileIo: FileIo,
logger: Logger,
zeroConfDiscoveryService: ZeroConfDiscoveryService,
) = DependencyInjector(config, metaData, fileIo, zeroConfDiscoveryService, logger).also {
config.validate()
}
internal fun startMockzilla(
config: MockzillaConfig,
di: DependencyInjector,
scope: CoroutineScope = GlobalScope
): MockzillaRuntimeParams {
scope.launch { di.localCacheService.clearStaleCaches(config.endpoints) }
return startServer(config.port, di)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy