MCPcopy Create free account
hub / github.com/aws-cloudformation/rain / parseModule

Function parseModule

cft/pkg/module.go:485–510  ·  view source on GitHub ↗

parseModule parses module content and converts it to a yaml node Also process new sections: Rain, Constants, Modules, Packages

(content []byte, rootDir string, fs *embed.FS)

Source from the content-addressed store, hash-verified

483// parseModule parses module content and converts it to a yaml node
484// Also process new sections: Rain, Constants, Modules, Packages
485func parseModule(content []byte, rootDir string, fs *embed.FS) (*ParsedModule, error) {
486
487 var err error
488
489 // Parse the file
490 var moduleNode yaml.Node
491 err = yaml.Unmarshal(content, &moduleNode)
492 if err != nil {
493 return nil, err
494 }
495
496 err = parse.NormalizeNode(&moduleNode)
497 if err != nil {
498 return nil, err
499 }
500
501 // Treat the module as a template
502 moduleAsTemplate := cft.Template{Node: &moduleNode}
503
504 return &ParsedModule{
505 Node: moduleNode.Content[0],
506 AsTemplate: &moduleAsTemplate,
507 RootDir: rootDir,
508 FS: fs,
509 }, nil
510}
511
512// Type: !Rain::Module
513// This handles the Rain Module directive, not the Modules section

Callers 3

FnInvokeMethod · 0.85
processModulesSectionFunction · 0.85
moduleFunction · 0.85

Calls 1

NormalizeNodeFunction · 0.92

Tested by

no test coverage detected