github.com/grafana/tanka@v0.26.1-0.20240506093700-c22cfc35c21a/pkg/jsonnet/implementations/goimpl/impl.go (about)

     1  package goimpl
     2  
     3  import (
     4  	"github.com/google/go-jsonnet"
     5  	"github.com/grafana/tanka/pkg/jsonnet/implementations/types"
     6  )
     7  
     8  type JsonnetGoVM struct {
     9  	vm *jsonnet.VM
    10  
    11  	path string
    12  }
    13  
    14  func (vm *JsonnetGoVM) EvaluateAnonymousSnippet(snippet string) (string, error) {
    15  	return vm.vm.EvaluateAnonymousSnippet(vm.path, snippet)
    16  }
    17  
    18  func (vm *JsonnetGoVM) EvaluateFile(filename string) (string, error) {
    19  	return vm.vm.EvaluateFile(filename)
    20  }
    21  
    22  type JsonnetGoImplementation struct {
    23  	Path string
    24  }
    25  
    26  func (i *JsonnetGoImplementation) MakeEvaluator(importPaths []string, extCode map[string]string, tlaCode map[string]string, maxStack int) types.JsonnetEvaluator {
    27  	return &JsonnetGoVM{
    28  		vm: MakeRawVM(importPaths, extCode, tlaCode, maxStack),
    29  
    30  		path: i.Path,
    31  	}
    32  }