feature: file namestyle (#223)
* add api filename style * new feature: config.yaml * optimize * optimize logic generation * check hanlder valid * optimize * reactor naming style * optimize * optimize test * optimize gen middleware * format Co-authored-by: anqiansong <anqiansong@xiaoheiban.cn> Co-authored-by: kim <xutao@xiaoheiban.cn>
This commit is contained in:
41
tools/goctl/util/name/naming.go
Normal file
41
tools/goctl/util/name/naming.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package name
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/tal-tech/go-zero/tools/goctl/util/stringx"
|
||||
)
|
||||
|
||||
type NamingStyle = string
|
||||
|
||||
const (
|
||||
NamingLower NamingStyle = "lower"
|
||||
NamingCamel NamingStyle = "camel"
|
||||
NamingSnake NamingStyle = "snake"
|
||||
)
|
||||
|
||||
// IsNamingValid validates whether the namingStyle is valid or not,return
|
||||
// namingStyle and true if it is valid, or else return empty string
|
||||
// and false, and it is a valid value even namingStyle is empty string
|
||||
func IsNamingValid(namingStyle string) (NamingStyle, bool) {
|
||||
if len(namingStyle) == 0 {
|
||||
namingStyle = NamingLower
|
||||
}
|
||||
switch namingStyle {
|
||||
case NamingLower, NamingCamel, NamingSnake:
|
||||
return namingStyle, true
|
||||
default:
|
||||
return "", false
|
||||
}
|
||||
}
|
||||
|
||||
func FormatFilename(filename string, style NamingStyle) string {
|
||||
switch style {
|
||||
case NamingCamel:
|
||||
return stringx.From(filename).ToCamel()
|
||||
case NamingSnake:
|
||||
return stringx.From(filename).ToSnake()
|
||||
default:
|
||||
return strings.ToLower(stringx.From(filename).ToCamel())
|
||||
}
|
||||
}
|
||||
35
tools/goctl/util/name/naming_test.go
Normal file
35
tools/goctl/util/name/naming_test.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package name
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestIsNamingValid(t *testing.T) {
|
||||
style, valid := IsNamingValid("")
|
||||
assert.True(t, valid)
|
||||
assert.Equal(t, NamingLower, style)
|
||||
|
||||
_, valid = IsNamingValid("lower1")
|
||||
assert.False(t, valid)
|
||||
|
||||
_, valid = IsNamingValid("lower")
|
||||
assert.True(t, valid)
|
||||
|
||||
_, valid = IsNamingValid("snake")
|
||||
assert.True(t, valid)
|
||||
|
||||
_, valid = IsNamingValid("camel")
|
||||
assert.True(t, valid)
|
||||
}
|
||||
|
||||
func TestFormatFilename(t *testing.T) {
|
||||
assert.Equal(t, "abc", FormatFilename("a_b_c", NamingLower))
|
||||
assert.Equal(t, "ABC", FormatFilename("a_b_c", NamingCamel))
|
||||
assert.Equal(t, "a_b_c", FormatFilename("a_b_c", NamingSnake))
|
||||
assert.Equal(t, "a", FormatFilename("a", NamingSnake))
|
||||
assert.Equal(t, "A", FormatFilename("a", NamingCamel))
|
||||
// no flag to convert to snake
|
||||
assert.Equal(t, "abc", FormatFilename("abc", NamingSnake))
|
||||
}
|
||||
Reference in New Issue
Block a user