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 }