diff --git a/gradle.properties b/gradle.properties index 61dd01d..3f6ccfd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ kotlin.code.style=official -libVersion=1.0.4 \ No newline at end of file +libVersion=1.0.5 \ No newline at end of file diff --git a/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/CORS.kt b/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/CORS.kt index fe8bb9a..b5fb7cc 100644 --- a/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/CORS.kt +++ b/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/CORS.kt @@ -14,21 +14,14 @@ import org.w3c.fetch.ResponseInit * Auto add cors response headers */ @Suppress("FunctionName") -internal fun WorkerApplication._addCorsHeaders( - init: ResponseInit, - origin: String = "*", - allowedMethods: Set = setOf( - HttpMethod.GET, HttpMethod.POST, - HttpMethod.DELETE, HttpMethod.DELETE, - HttpMethod.OPTIONS - ), -): ResponseInit { +internal fun WorkerApplication._addCorsHeaders(init: ResponseInit, ): ResponseInit { val headers = if (this.corsConfig.enabled) { val corsHeaders = init.headers ?: js("{}") - corsHeaders["Access-Control-Allow-Origin"] = origin - corsHeaders["Access-Control-Allow-Methods"] = allowedMethods.joinToString(", ") + corsHeaders["Access-Control-Allow-Origin"] = corsConfig.origin + corsHeaders["Access-Control-Allow-Methods"] = corsConfig.allowedMethods.joinToString(", ") corsHeaders["Access-Control-Allow-Headers"] = "Content-Type, Authorization" - corsHeaders["Access-Control-Max-Age"] = "86400" + if (corsConfig.allowCredentials) corsHeaders["Access-Control-Allow-Credentials"] = corsConfig.allowCredentials + corsHeaders["Access-Control-Max-Age"] = "${corsConfig.maxAge}" corsHeaders } else init.headers return ResponseInit( diff --git a/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/config/CORSConfig.kt b/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/config/CORSConfig.kt index c0efc04..5513755 100644 --- a/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/config/CORSConfig.kt +++ b/worker-core/src/jsMain/kotlin/cn/rtast/cfworker/config/CORSConfig.kt @@ -28,4 +28,8 @@ public class CORSConfig { HttpMethod.DELETE, HttpMethod.DELETE, HttpMethod.OPTIONS ) + + public var allowCredentials: Boolean = false + + public var maxAge: Int = 86400 } \ No newline at end of file diff --git a/worker-gradle-plugin/build.gradle.kts b/worker-gradle-plugin/build.gradle.kts index 96d6ae2..50d05e3 100644 --- a/worker-gradle-plugin/build.gradle.kts +++ b/worker-gradle-plugin/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { kotlin("jvm") id("java-gradle-plugin") @@ -19,4 +21,13 @@ gradlePlugin { dependencies { implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.21") +} + +tasks.compileKotlin { + compilerOptions.jvmTarget = JvmTarget.JVM_11 +} + +tasks.compileJava { + sourceCompatibility = "11" + targetCompatibility = "11" } \ No newline at end of file