refactor: rewrite formatImportSpecs to eliminate dupe
parent
c8a2bac5f1
commit
2e435dd37b
|
@ -287,39 +287,8 @@ func (ft *Formatter) formatImportSpecs(
|
||||||
) ([]ast.Spec, error) {
|
) ([]ast.Spec, error) {
|
||||||
result := make([]ast.Spec, 0, len(importSpecs))
|
result := make([]ast.Spec, 0, len(importSpecs))
|
||||||
|
|
||||||
if stdImportSpecs, ok := groupedImportSpecs[stdImport]; ok && len(stdImportSpecs) != 0 {
|
appendToResultFn := func(groupImportType string) {
|
||||||
for _, importSpec := range stdImportSpecs {
|
if specs, ok := groupedImportSpecs[groupImportType]; ok && len(specs) != 0 {
|
||||||
result = append(result, &ast.ImportSpec{
|
|
||||||
Path: &ast.BasicLit{
|
|
||||||
Value: importSpec.Path.Value,
|
|
||||||
Kind: token.IMPORT,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if thirdPartImportSpecs, ok := groupedImportSpecs[thirdPartyImport]; ok && len(thirdPartImportSpecs) != 0 {
|
|
||||||
if len(result) != 0 {
|
|
||||||
result = append(result, &ast.ImportSpec{
|
|
||||||
Path: &ast.BasicLit{
|
|
||||||
Value: "",
|
|
||||||
Kind: token.STRING,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, importSpec := range thirdPartImportSpecs {
|
|
||||||
result = append(result, &ast.ImportSpec{
|
|
||||||
Path: &ast.BasicLit{
|
|
||||||
Value: importSpec.Path.Value,
|
|
||||||
Kind: token.IMPORT,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ft.companyPrefix != "" {
|
|
||||||
if companyImportSpecs, ok := groupedImportSpecs[companyImport]; ok && len(companyImportSpecs) != 0 {
|
|
||||||
if len(result) != 0 {
|
if len(result) != 0 {
|
||||||
result = append(result, &ast.ImportSpec{
|
result = append(result, &ast.ImportSpec{
|
||||||
Path: &ast.BasicLit{
|
Path: &ast.BasicLit{
|
||||||
|
@ -329,10 +298,10 @@ func (ft *Formatter) formatImportSpecs(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, importSpec := range companyImportSpecs {
|
for _, spec := range specs {
|
||||||
result = append(result, &ast.ImportSpec{
|
result = append(result, &ast.ImportSpec{
|
||||||
Path: &ast.BasicLit{
|
Path: &ast.BasicLit{
|
||||||
Value: importSpec.Path.Value,
|
Value: ft.importNameAndPath(spec),
|
||||||
Kind: token.IMPORT,
|
Kind: token.IMPORT,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -340,25 +309,12 @@ func (ft *Formatter) formatImportSpecs(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if localImportSpecs, ok := groupedImportSpecs[localImport]; ok && len(localImportSpecs) != 0 {
|
appendToResultFn(stdImport)
|
||||||
if len(result) != 0 {
|
appendToResultFn(thirdPartyImport)
|
||||||
result = append(result, &ast.ImportSpec{
|
if ft.companyPrefix != "" {
|
||||||
Path: &ast.BasicLit{
|
appendToResultFn(companyImport)
|
||||||
Value: "",
|
|
||||||
Kind: token.STRING,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, importSpec := range localImportSpecs {
|
|
||||||
result = append(result, &ast.ImportSpec{
|
|
||||||
Path: &ast.BasicLit{
|
|
||||||
Value: importSpec.Path.Value,
|
|
||||||
Kind: token.IMPORT,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
appendToResultFn(localImport)
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
@ -420,3 +376,15 @@ func (ft *Formatter) moduleName(path string) (string, error) {
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ft *Formatter) importNameAndPath(importSpec *ast.ImportSpec) string {
|
||||||
|
if importSpec == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if importSpec.Name != nil {
|
||||||
|
return importSpec.Name.String() + " " + importSpec.Path.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
return importSpec.Path.Value
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue