github.com/octohelm/cuekit@v0.0.0-20240424021256-e7df8d743066/pkg/cuecontext/eval.go (about)

     1  package cuecontext
     2  
     3  import (
     4  	"cuelang.org/go/cue"
     5  	"cuelang.org/go/cue/cuecontext"
     6  )
     7  
     8  func Build(c *Config, inputs ...string) (cue.Value, error) {
     9  	inst, err := BuildInstance(c, inputs)
    10  	if err != nil {
    11  		return cue.Value{}, err
    12  	}
    13  
    14  	v := cuecontext.New().BuildInstance(inst)
    15  	if err := v.Err(); err != nil {
    16  		return cue.Value{}, err
    17  	}
    18  	return v, nil
    19  }
    20  
    21  func EvalJSON(c *Config, inputs ...string) ([]byte, error) {
    22  	v, err := Build(c, inputs...)
    23  	if err != nil {
    24  		return nil, err
    25  	}
    26  	if err := v.Validate(); err != nil {
    27  		return nil, err
    28  	}
    29  	return v.MarshalJSON()
    30  }