Loading console/openapi-gen-angular/main.go +48 −37 Original line number Diff line number Diff line Loading @@ -218,10 +218,18 @@ func enumDescriptions(def Definition) (output []string) { return def.Enum } func convertRefToClassName(input string) (className string) { func convertRefToClassName(prefixesToRemove []string) func(string) string { return func(input string) string { cleanRef := strings.TrimPrefix(input, "#/definitions/") className = strings.Title(cleanRef) return for _, prefix := range prefixesToRemove { if strings.HasPrefix(cleanRef, prefix) { cleanRef = strings.TrimPrefix(cleanRef, prefix) break } } return strings.Title(cleanRef) } } // camelToPascal converts a string from camel case to Pascal case. Loading Loading @@ -272,11 +280,12 @@ func main() { var schema = &Swagger{} convertRefToClassNameFunc := convertRefToClassName(prefixesToRemove) fmap := template.FuncMap{ "enumDescriptions": enumDescriptions, "enumSummary": enumSummary, "snakeToCamel": snakeToCamel, "cleanRef": convertRefToClassName, "cleanRef": convertRefToClassNameFunc, "isRefToEnum": func(ref string) bool { // swagger schema definition keys have inconsistent casing var camelOk bool Loading @@ -303,7 +312,7 @@ func main() { "title": strings.Title, "camelToSnake": camelToSnake, "uppercase": strings.ToUpper, "convertType": convertType, "convertType": convertType(prefixesToRemove, convertRefToClassNameFunc), "convertPathToJs": convertPathToJs, "inc": func(i int) int { return i + 1 }, "removeNewline": func(s string) string { return strings.Replace(s, "\n", " / ", -1) }, Loading Loading @@ -352,7 +361,8 @@ func main() { writer.Flush() } func convertType(prop Property) (tsType string) { func convertType(prefixesToRemove []string, convertRefToClassName func(string) string) func(Property) (tsType string) { return func(prop Property) (tsType string) { switch prop.Type { case "string": return "string" Loading Loading @@ -386,12 +396,13 @@ func convertType(prop Property) (tsType string) { case "boolean": return "Map<string, boolean>" default: return "Map<string, " + convertRefToClassName(prop.AdditionalProperties.Type) + ">" return "Map<string, " + convertRefToClassName(prop.AdditionalProperties.Ref) + ">" } default: return convertRefToClassName(prop.Ref) } } } // Converts a path with params to a JS interpolated string // E.g.: "/v1/builder/{name}/user/{user_id}" becomes `/v1/builder/${name}/user/${user_id}` Loading console/openapi-gen-angular/types.go +9 −8 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ type Property struct { } AdditionalProperties struct { // used for dictionaries with string keys (Property.Type=object) Type string Ref string `json:"$ref"` } Description string Title string Loading Loading
console/openapi-gen-angular/main.go +48 −37 Original line number Diff line number Diff line Loading @@ -218,10 +218,18 @@ func enumDescriptions(def Definition) (output []string) { return def.Enum } func convertRefToClassName(input string) (className string) { func convertRefToClassName(prefixesToRemove []string) func(string) string { return func(input string) string { cleanRef := strings.TrimPrefix(input, "#/definitions/") className = strings.Title(cleanRef) return for _, prefix := range prefixesToRemove { if strings.HasPrefix(cleanRef, prefix) { cleanRef = strings.TrimPrefix(cleanRef, prefix) break } } return strings.Title(cleanRef) } } // camelToPascal converts a string from camel case to Pascal case. Loading Loading @@ -272,11 +280,12 @@ func main() { var schema = &Swagger{} convertRefToClassNameFunc := convertRefToClassName(prefixesToRemove) fmap := template.FuncMap{ "enumDescriptions": enumDescriptions, "enumSummary": enumSummary, "snakeToCamel": snakeToCamel, "cleanRef": convertRefToClassName, "cleanRef": convertRefToClassNameFunc, "isRefToEnum": func(ref string) bool { // swagger schema definition keys have inconsistent casing var camelOk bool Loading @@ -303,7 +312,7 @@ func main() { "title": strings.Title, "camelToSnake": camelToSnake, "uppercase": strings.ToUpper, "convertType": convertType, "convertType": convertType(prefixesToRemove, convertRefToClassNameFunc), "convertPathToJs": convertPathToJs, "inc": func(i int) int { return i + 1 }, "removeNewline": func(s string) string { return strings.Replace(s, "\n", " / ", -1) }, Loading Loading @@ -352,7 +361,8 @@ func main() { writer.Flush() } func convertType(prop Property) (tsType string) { func convertType(prefixesToRemove []string, convertRefToClassName func(string) string) func(Property) (tsType string) { return func(prop Property) (tsType string) { switch prop.Type { case "string": return "string" Loading Loading @@ -386,12 +396,13 @@ func convertType(prop Property) (tsType string) { case "boolean": return "Map<string, boolean>" default: return "Map<string, " + convertRefToClassName(prop.AdditionalProperties.Type) + ">" return "Map<string, " + convertRefToClassName(prop.AdditionalProperties.Ref) + ">" } default: return convertRefToClassName(prop.Ref) } } } // Converts a path with params to a JS interpolated string // E.g.: "/v1/builder/{name}/user/{user_id}" becomes `/v1/builder/${name}/user/${user_id}` Loading
console/openapi-gen-angular/types.go +9 −8 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ type Property struct { } AdditionalProperties struct { // used for dictionaries with string keys (Property.Type=object) Type string Ref string `json:"$ref"` } Description string Title string Loading