Skip to content

Commit

Permalink
Add WasmJS target (#23)
Browse files Browse the repository at this point in the history
  • Loading branch information
cedrickcooke authored Mar 8, 2024
1 parent 2816f29 commit be11730
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 1 deletion.
11 changes: 11 additions & 0 deletions khronicle-core/api/khronicle-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,17 @@ public final class com/juul/khronicle/Logger$DefaultImpls {
public static fun getMinimumLogLevel (Lcom/juul/khronicle/Logger;)Lcom/juul/khronicle/LogLevel;
}

public final class com/juul/khronicle/PrintlnLogger : com/juul/khronicle/HideFromStackTraceTag, com/juul/khronicle/Logger {
public static final field INSTANCE Lcom/juul/khronicle/PrintlnLogger;
public fun assert (Ljava/lang/String;Ljava/lang/String;Lcom/juul/khronicle/ReadMetadata;Ljava/lang/Throwable;)V
public fun debug (Ljava/lang/String;Ljava/lang/String;Lcom/juul/khronicle/ReadMetadata;Ljava/lang/Throwable;)V
public fun error (Ljava/lang/String;Ljava/lang/String;Lcom/juul/khronicle/ReadMetadata;Ljava/lang/Throwable;)V
public fun getMinimumLogLevel ()Lcom/juul/khronicle/LogLevel;
public fun info (Ljava/lang/String;Ljava/lang/String;Lcom/juul/khronicle/ReadMetadata;Ljava/lang/Throwable;)V
public fun verbose (Ljava/lang/String;Ljava/lang/String;Lcom/juul/khronicle/ReadMetadata;Ljava/lang/Throwable;)V
public fun warn (Ljava/lang/String;Ljava/lang/String;Lcom/juul/khronicle/ReadMetadata;Ljava/lang/Throwable;)V
}

public abstract interface class com/juul/khronicle/ReadMetadata {
public abstract fun copy ()Lcom/juul/khronicle/ReadMetadata;
public abstract fun get (Lcom/juul/khronicle/Key;)Ljava/lang/Object;
Expand Down
1 change: 1 addition & 0 deletions khronicle-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ kotlin {
jvm()
macosArm64()
macosX64()
wasmJs().browser()

sourceSets {
all {
Expand Down
2 changes: 1 addition & 1 deletion khronicle-core/src/commonMain/kotlin/ConsoleLogger.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.juul.khronicle

/** Logger for the console. */
/** Logger for the console, taking advantage of available features such as stderr or js console levels. */
public expect object ConsoleLogger : Logger
41 changes: 41 additions & 0 deletions khronicle-core/src/commonMain/kotlin/PrintlnLogger.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.juul.khronicle

/** Alternative to [ConsoleLogger] that does not take advantage of extra available features. */
public object PrintlnLogger : Logger, HideFromStackTraceTag {

override fun verbose(tag: String, message: String, metadata: ReadMetadata, throwable: Throwable?) {
print('V', tag, message, throwable)
}

override fun debug(tag: String, message: String, metadata: ReadMetadata, throwable: Throwable?) {
print('D', tag, message, throwable)
}

override fun info(tag: String, message: String, metadata: ReadMetadata, throwable: Throwable?) {
print('I', tag, message, throwable)
}

override fun warn(tag: String, message: String, metadata: ReadMetadata, throwable: Throwable?) {
print('W', tag, message, throwable)
}

override fun error(tag: String, message: String, metadata: ReadMetadata, throwable: Throwable?) {
print('E', tag, message, throwable)
}

override fun assert(tag: String, message: String, metadata: ReadMetadata, throwable: Throwable?) {
print('A', tag, message, throwable)
}

private fun print(
level: Char,
tag: String,
message: String,
throwable: Throwable?,
) {
when (throwable) {
null -> println("[$level/$tag] $message")
else -> println("[$level/$tag] $message: ${throwable.stackTraceToString()}")
}
}
}
3 changes: 3 additions & 0 deletions khronicle-core/src/wasmJsMain/kotlin/ConsoleLogger.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.juul.khronicle

public actual object ConsoleLogger : Logger by PrintlnLogger, HideFromStackTraceTag
4 changes: 4 additions & 0 deletions khronicle-core/src/wasmJsMain/kotlin/DefaultTagGenerator.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.juul.khronicle

internal actual val defaultTagGenerator: TagGenerator =
ConstantTagGenerator("Unknown")

0 comments on commit be11730

Please sign in to comment.