Implement composable refinement handlers...
for compilation and evaluation configurations. Add utilities to apply refinements uniformly. Also fix one invoke for list values - it was not consistent with other builders
This commit is contained in:
+3
-12
@@ -31,18 +31,9 @@ open class BasicJvmScriptEvaluator : ScriptEvaluator {
|
||||
}.onSuccess { importedScriptsEvalResults ->
|
||||
|
||||
val refinedEvalConfiguration =
|
||||
configuration[ScriptEvaluationConfiguration.refineConfigurationBeforeEvaluate]
|
||||
?.handler?.invoke(
|
||||
ScriptEvaluationConfigurationRefinementContext(
|
||||
compiledScript,
|
||||
configuration
|
||||
)
|
||||
)
|
||||
?.onFailure {
|
||||
return@invoke ResultWithDiagnostics.Failure(it.reports)
|
||||
}
|
||||
?.valueOrNull()
|
||||
?: configuration
|
||||
configuration.refineBeforeEvaluation(compiledScript).valueOr {
|
||||
return@invoke ResultWithDiagnostics.Failure(it.reports)
|
||||
}
|
||||
|
||||
val resultValue = try {
|
||||
val instance =
|
||||
|
||||
+4
-9
@@ -43,15 +43,10 @@ class BridgeDependenciesResolver(
|
||||
|
||||
val script = getScriptSource(scriptContents) ?: scriptContents.toScriptSource()
|
||||
|
||||
val refineResults = scriptCompilationConfiguration.refineWith(
|
||||
scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationOnAnnotations]?.handler,
|
||||
processedScriptData, script
|
||||
).onSuccess {
|
||||
it.refineWith(
|
||||
scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationBeforeCompiling]?.handler,
|
||||
processedScriptData, script
|
||||
)
|
||||
}
|
||||
val refineResults =
|
||||
scriptCompilationConfiguration.refineOnAnnotations(script, processedScriptData).onSuccess {
|
||||
it.refineBeforeCompiling(script, processedScriptData)
|
||||
}
|
||||
|
||||
val refinedConfiguration = when (refineResults) {
|
||||
is ResultWithDiagnostics.Failure ->
|
||||
|
||||
Reference in New Issue
Block a user