MCPcopy Create free account
hub / github.com/cel-expr/cel-go / envProtoToConfig

Function envProtoToConfig

tools/compiler/compiler.go:270–311  ·  view source on GitHub ↗
(pbEnv *configpb.Environment)

Source from the content-addressed store, hash-verified

268}
269
270func envProtoToConfig(pbEnv *configpb.Environment) (*env.Config, *descpb.FileDescriptorSet, error) {
271 if pbEnv == nil {
272 return nil, nil, fmt.Errorf("proto environment is not set")
273 }
274 envConfig := env.NewConfig(pbEnv.GetName())
275 envConfig.Description = pbEnv.GetDescription()
276 envConfig.SetContainer(pbEnv.GetContainer())
277 for _, imp := range pbEnv.GetImports() {
278 envConfig.AddImports(env.NewImport(imp.GetName()))
279 }
280 stdLib, err := envToStdLib(pbEnv)
281 if err != nil {
282 return nil, nil, err
283 }
284 envConfig.SetStdLib(stdLib)
285 extensions := make([]*env.Extension, 0, len(pbEnv.GetExtensions()))
286 for _, extension := range pbEnv.GetExtensions() {
287 extensions = append(extensions, &env.Extension{Name: extension.GetName(), Version: extension.GetVersion()})
288 }
289 envConfig.AddExtensions(extensions...)
290 if contextVariable := pbEnv.GetContextVariable(); contextVariable != nil {
291 envConfig.SetContextVariable(env.NewContextVariable(contextVariable.GetTypeName()))
292 }
293 functions, variables, err := protoDeclToFunctionsAndVariables(pbEnv.GetDeclarations())
294 if err != nil {
295 return nil, nil, err
296 }
297 envConfig.AddFunctions(functions...)
298 envConfig.AddVariables(variables...)
299 validators, err := envToValidators(pbEnv)
300 if err != nil {
301 return nil, nil, err
302 }
303 envConfig.AddValidators(validators...)
304 features, err := envToFeatures(pbEnv)
305 if err != nil {
306 return nil, nil, err
307 }
308 envConfig.AddFeatures(features...)
309 fileDescriptorSet := pbEnv.GetMessageTypeExtension()
310 return envConfig, fileDescriptorSet, nil
311}
312
313func envToFeatures(pbEnv *configpb.Environment) ([]*env.Feature, error) {
314 features := make([]*env.Feature, 0, len(pbEnv.GetFeatures())+1)

Callers 2

configFromEnvProtoFunction · 0.85
EnvironmentFileFunction · 0.85

Calls 15

SetContainerMethod · 0.95
AddImportsMethod · 0.95
SetStdLibMethod · 0.95
AddExtensionsMethod · 0.95
SetContextVariableMethod · 0.95
AddFunctionsMethod · 0.95
AddVariablesMethod · 0.95
AddValidatorsMethod · 0.95
AddFeaturesMethod · 0.95
NewConfigFunction · 0.92
NewImportFunction · 0.92
NewContextVariableFunction · 0.92

Tested by 1

configFromEnvProtoFunction · 0.68