============================================================================= MODULE CREATION IMPLEMENTATION ============================================================================= validateModuleBuilder validates ModuleBuilder configuration
(builder *ModuleBuilder)
| 82 | |
| 83 | // validateModuleBuilder validates ModuleBuilder configuration |
| 84 | func validateModuleBuilder(builder *ModuleBuilder) error { |
| 85 | if builder.name == "" { |
| 86 | return errors.New("module name cannot be empty") |
| 87 | } |
| 88 | |
| 89 | // Check for duplicate export names |
| 90 | nameSet := make(map[string]bool) |
| 91 | for _, export := range builder.exports { |
| 92 | if export.Name == "" { |
| 93 | return errors.New("export name cannot be empty") |
| 94 | } |
| 95 | if export.Spec == nil { |
| 96 | return fmt.Errorf("export value is required: %s", export.Name) |
| 97 | } |
| 98 | if nameSet[export.Name] { |
| 99 | return fmt.Errorf("duplicate export name: %s", export.Name) |
| 100 | } |
| 101 | nameSet[export.Name] = true |
| 102 | } |
| 103 | |
| 104 | return nil |
| 105 | } |
| 106 | |
| 107 | func cloneModuleBuilder(builder *ModuleBuilder) *ModuleBuilder { |
| 108 | if builder == nil { |