script.runtime 1.1.4: Copy new API to kotlin.script.experimental package
Minor: Move Environment type alias to resolvers_deprecated.kt file
This commit is contained in:
@@ -21,8 +21,6 @@ package kotlin.script.dependencies
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.script.dependencies.DependenciesResolver.ResolveResult
|
import kotlin.script.dependencies.DependenciesResolver.ResolveResult
|
||||||
|
|
||||||
typealias Environment = Map<String, Any?>
|
|
||||||
|
|
||||||
interface DependenciesResolver : ScriptDependenciesResolver {
|
interface DependenciesResolver : ScriptDependenciesResolver {
|
||||||
fun resolve(scriptContents: ScriptContents, environment: Environment): ResolveResult
|
fun resolve(scriptContents: ScriptContents, environment: Environment): ResolveResult
|
||||||
|
|
||||||
@@ -55,7 +53,7 @@ interface ScriptContents {
|
|||||||
data class Position(val line: Int, val col: Int)
|
data class Position(val line: Int, val col: Int)
|
||||||
}
|
}
|
||||||
|
|
||||||
data class ScriptReport(val message: String, val severity: Severity = ScriptReport.Severity.ERROR, val position: Position? = null) {
|
data class ScriptReport(val message: String, val severity: Severity = Severity.ERROR, val position: Position? = null) {
|
||||||
data class Position(val startLine: Int, val startColumn: Int, val endLine: Int? = null, val endColumn: Int? = null)
|
data class Position(val startLine: Int, val startColumn: Int, val endLine: Int? = null, val endColumn: Int? = null)
|
||||||
enum class Severity { ERROR, WARNING, INFO, DEBUG }
|
enum class Severity { ERROR, WARNING, INFO, DEBUG }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ package kotlin.script.dependencies
|
|||||||
import java.util.concurrent.Future
|
import java.util.concurrent.Future
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
|
typealias Environment = Map<String, Any?>
|
||||||
|
|
||||||
interface ScriptDependenciesResolver {
|
interface ScriptDependenciesResolver {
|
||||||
|
|
||||||
enum class ReportSeverity { ERROR, WARNING, INFO, DEBUG }
|
enum class ReportSeverity { ERROR, WARNING, INFO, DEBUG }
|
||||||
|
|||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("unused")
|
||||||
|
|
||||||
|
package kotlin.script.experimental.dependencies
|
||||||
|
|
||||||
|
import kotlin.script.dependencies.Environment
|
||||||
|
|
||||||
|
interface AsyncDependenciesResolver : DependenciesResolver {
|
||||||
|
suspend fun resolveAsync(
|
||||||
|
scriptContents: ScriptContents, environment: Environment
|
||||||
|
): DependenciesResolver.ResolveResult
|
||||||
|
|
||||||
|
/* 'resolve' implementation is supposed to invoke resolveAsync in a blocking manner
|
||||||
|
* To avoid dependency on kotlinx-coroutines-core we leave this method unimplemented
|
||||||
|
* and provide 'resolve' implementation when loading resolver.
|
||||||
|
*/
|
||||||
|
override fun resolve(scriptContents: ScriptContents, environment: Environment): DependenciesResolver.ResolveResult
|
||||||
|
= /*runBlocking { resolveAsync(scriptContents, environment) } */ throw NotImplementedError()
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kotlin.script.experimental.dependencies
|
||||||
|
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
data class ScriptDependencies(
|
||||||
|
val javaHome: File? = null,
|
||||||
|
val classpath: List<File> = emptyList(),
|
||||||
|
val imports: List<String> = emptyList(),
|
||||||
|
val sources: List<File> = emptyList(),
|
||||||
|
val scripts: List<File> = emptyList()
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
val Empty = ScriptDependencies()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("unused")
|
||||||
|
|
||||||
|
package kotlin.script.experimental.dependencies
|
||||||
|
|
||||||
|
import java.io.File
|
||||||
|
import kotlin.script.dependencies.Environment
|
||||||
|
import kotlin.script.dependencies.ScriptDependenciesResolver
|
||||||
|
import kotlin.script.experimental.dependencies.DependenciesResolver.ResolveResult
|
||||||
|
|
||||||
|
interface DependenciesResolver : ScriptDependenciesResolver {
|
||||||
|
fun resolve(scriptContents: ScriptContents, environment: Environment): ResolveResult
|
||||||
|
|
||||||
|
object NoDependencies : DependenciesResolver {
|
||||||
|
override fun resolve(scriptContents: ScriptContents, environment: Environment) = ScriptDependencies.Empty.asSuccess()
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class ResolveResult {
|
||||||
|
abstract val dependencies: ScriptDependencies?
|
||||||
|
abstract val reports: List<ScriptReport>
|
||||||
|
|
||||||
|
data class Success(
|
||||||
|
override val dependencies: ScriptDependencies,
|
||||||
|
override val reports: List<ScriptReport> = listOf()
|
||||||
|
) : ResolveResult()
|
||||||
|
|
||||||
|
data class Failure(override val reports: List<ScriptReport>) : ResolveResult() {
|
||||||
|
constructor(vararg reports: ScriptReport) : this(reports.asList())
|
||||||
|
|
||||||
|
override val dependencies: ScriptDependencies? get() = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ScriptContents {
|
||||||
|
val file: File?
|
||||||
|
val annotations: Iterable<Annotation>
|
||||||
|
val text: CharSequence?
|
||||||
|
|
||||||
|
data class Position(val line: Int, val col: Int)
|
||||||
|
}
|
||||||
|
|
||||||
|
data class ScriptReport(val message: String, val severity: Severity = Severity.ERROR, val position: Position? = null) {
|
||||||
|
data class Position(val startLine: Int, val startColumn: Int, val endLine: Int? = null, val endColumn: Int? = null)
|
||||||
|
enum class Severity { ERROR, WARNING, INFO, DEBUG }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ScriptDependencies.asSuccess(): ResolveResult.Success = ResolveResult.Success(this)
|
||||||
Reference in New Issue
Block a user