in internal/core/component.go [97:125]
func (c *Component) LoadComponent() (loadedComponent Component, err error) {
// If success or loading or parsing the yaml component failed for reasons other than it didn't exist, return.
if err = c.UnmarshalComponent("yaml", yaml.Unmarshal, &loadedComponent); err != nil && !os.IsNotExist(err) {
return loadedComponent, err
}
// If YAML component definition did not exist, try JSON.
if err != nil {
if err = c.UnmarshalComponent("json", json.Unmarshal, &loadedComponent); err != nil {
if !os.IsNotExist(err) {
return loadedComponent, err
}
errorMessage := fmt.Sprintf("Error loading component in path %s", c.PhysicalPath)
return loadedComponent, errors.New(errorMessage)
}
}
if err = loadedComponent.applyDefaultsAndMigrations(); err != nil {
return loadedComponent, err
}
loadedComponent.PhysicalPath = c.PhysicalPath
loadedComponent.LogicalPath = c.LogicalPath
err = loadedComponent.Config.Merge(c.Config)
return loadedComponent, err
}