diff --git a/v2/internal/binding/generate.go b/v2/internal/binding/generate.go index c04f09ee8..7bbb60b25 100644 --- a/v2/internal/binding/generate.go +++ b/v2/internal/binding/generate.go @@ -35,7 +35,7 @@ func (b *Bindings) GenerateGoBindings(baseDir string) error { tsContent.WriteString(`// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT `) - var importClasses []string + var importClasses slicer.StringSlicer for methodName, methodDetails := range methods { // Generate JS @@ -55,9 +55,7 @@ func (b *Bindings) GenerateGoBindings(baseDir string) error { // Generate TS if len(methodDetails.StructNames) > 0 { - for _, structName := range methodDetails.StructNames { - importClasses = append(importClasses, structName) - } + importClasses.AddSlice(methodDetails.StructNames) } tsBody.WriteString(fmt.Sprintf("\nexport function %s(", methodName)) @@ -82,10 +80,10 @@ func (b *Bindings) GenerateGoBindings(baseDir string) error { tsBody.WriteString(returnType + ";\n") } - importClasses = removeDuplicates(importClasses) - for _, class := range importClasses { + importClasses.Deduplicate() + importClasses.Each(func(class string) { tsContent.WriteString("import {" + class + "} from '../models';\n") - } + }) tsContent.WriteString(tsBody.String()) jsfilename := filepath.Join(packageDir, structName+".js") @@ -333,15 +331,3 @@ func goTypeToTypescriptType(input string, useModelsNamespace bool) string { } return goTypeToJSDocType(input, useModelsNamespace) } - -func removeDuplicates(input []string) []string { - seen := make(map[string]bool) - var result []string - for _, val := range input { - if _, ok := seen[val]; !ok { - result = append(result, val) - seen[val] = true - } - } - return result -}