Update vendor (#1560)

This commit is contained in:
Wim
2021-07-31 18:27:55 +02:00
committed by GitHub
parent 1f365c716e
commit 44f3e2557d
95 changed files with 1677 additions and 181 deletions

35
vendor/github.com/d5/tengo/v2/eval.go generated vendored Normal file
View File

@@ -0,0 +1,35 @@
package tengo
import (
"context"
"fmt"
"strings"
)
// Eval compiles and executes given expr with params, and returns an
// evaluated value. expr must be an expression. Otherwise it will fail to
// compile. Expression must not use or define variable "__res__" as it's
// reserved for the internal usage.
func Eval(
ctx context.Context,
expr string,
params map[string]interface{},
) (interface{}, error) {
expr = strings.TrimSpace(expr)
if expr == "" {
return nil, fmt.Errorf("empty expression")
}
script := NewScript([]byte(fmt.Sprintf("__res__ := (%s)", expr)))
for pk, pv := range params {
err := script.Add(pk, pv)
if err != nil {
return nil, fmt.Errorf("script add: %w", err)
}
}
compiled, err := script.RunContext(ctx)
if err != nil {
return nil, fmt.Errorf("script run: %w", err)
}
return compiled.Get("__res__").Value(), nil
}