diff --git a/paramgen/internal/paramgen.go b/paramgen/internal/paramgen.go index fba037e..a5fd573 100644 --- a/paramgen/internal/paramgen.go +++ b/paramgen/internal/paramgen.go @@ -282,7 +282,7 @@ func (p *parameterParser) parseStructType(st *ast.StructType, f *ast.Field) (par for _, f := range st.Fields.List { fieldParams, err := p.parseField(f) if err != nil { - return nil, fmt.Errorf("error parsing field %q: %w", f.Names[0].Name, err) + return nil, fmt.Errorf("error parsing field %q: %w", p.getFieldNameOrUnknown(f), err) } if params == nil { params = fieldParams @@ -568,6 +568,14 @@ func (p *parameterParser) getFieldName(f *ast.Field) (string, error) { } } +func (p *parameterParser) getFieldNameOrUnknown(f *ast.Field) string { + name, err := p.getFieldName(f) + if err != nil { + return "" + } + return name +} + func (p *parameterParser) getParamType(i *ast.Ident) config.ParameterType { switch i.Name { case "int8", "uint8", "int16", "uint16", "int32", "rune", "uint32", "int64", "uint64", "int", "uint": diff --git a/paramgen/internal/testdata/basic/go.mod b/paramgen/internal/testdata/basic/go.mod index 01c8603..98c0431 100644 --- a/paramgen/internal/testdata/basic/go.mod +++ b/paramgen/internal/testdata/basic/go.mod @@ -1,11 +1,11 @@ module example.com/test -go 1.22.3 +go 1.22.4 -require github.com/conduitio/conduit-commons v0.2.0 +require github.com/conduitio/conduit-commons v0.3.0 require ( - github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect ) diff --git a/paramgen/internal/testdata/basic/go.sum b/paramgen/internal/testdata/basic/go.sum index a4534be..9b7bb31 100644 --- a/paramgen/internal/testdata/basic/go.sum +++ b/paramgen/internal/testdata/basic/go.sum @@ -1,12 +1,12 @@ -github.com/conduitio/conduit-commons v0.2.0 h1:TMpVGXi0Wski537qLAyQWdGjuGHEhaZxOS5L90pZJSQ= -github.com/conduitio/conduit-commons v0.2.0/go.mod h1:i7Q2jm7FBSi2zj1/4MCsFD1hIKAbvamlNtSQfkhUTiY= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/conduitio/conduit-commons v0.3.0 h1:nxQ++O4dK1p717upkyzbCQu0FLIFyP3OrgHZ9Zxvzvg= +github.com/conduitio/conduit-commons v0.3.0/go.mod h1:roxZ88dv+fpbEjjTzkdGwwbmcpunSuiD8he43y0lAoo= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/paramgen/internal/testdata/complex/go.mod b/paramgen/internal/testdata/complex/go.mod index 01c8603..98c0431 100644 --- a/paramgen/internal/testdata/complex/go.mod +++ b/paramgen/internal/testdata/complex/go.mod @@ -1,11 +1,11 @@ module example.com/test -go 1.22.3 +go 1.22.4 -require github.com/conduitio/conduit-commons v0.2.0 +require github.com/conduitio/conduit-commons v0.3.0 require ( - github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect ) diff --git a/paramgen/internal/testdata/complex/go.sum b/paramgen/internal/testdata/complex/go.sum index 71e523c..9b7bb31 100644 --- a/paramgen/internal/testdata/complex/go.sum +++ b/paramgen/internal/testdata/complex/go.sum @@ -1,4 +1,12 @@ -github.com/conduitio/conduit-commons v0.2.0/go.mod h1:i7Q2jm7FBSi2zj1/4MCsFD1hIKAbvamlNtSQfkhUTiY= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/conduitio/conduit-commons v0.3.0 h1:nxQ++O4dK1p717upkyzbCQu0FLIFyP3OrgHZ9Zxvzvg= +github.com/conduitio/conduit-commons v0.3.0/go.mod h1:roxZ88dv+fpbEjjTzkdGwwbmcpunSuiD8he43y0lAoo= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= +github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/paramgen/internal/testdata/invalid1/specs.go b/paramgen/internal/testdata/invalid1/specs.go index f580535..16b8af2 100644 --- a/paramgen/internal/testdata/invalid1/specs.go +++ b/paramgen/internal/testdata/invalid1/specs.go @@ -16,7 +16,11 @@ package example import "net/http" -type SourceConfig struct { +type GlobalConfig struct { // We don't support types imported from packages outside this module. InvalidType http.Client } + +type SourceConfig struct { + GlobalConfig +} diff --git a/paramgen/internal/testdata/tags/go.mod b/paramgen/internal/testdata/tags/go.mod index 01c8603..98c0431 100644 --- a/paramgen/internal/testdata/tags/go.mod +++ b/paramgen/internal/testdata/tags/go.mod @@ -1,11 +1,11 @@ module example.com/test -go 1.22.3 +go 1.22.4 -require github.com/conduitio/conduit-commons v0.2.0 +require github.com/conduitio/conduit-commons v0.3.0 require ( - github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect ) diff --git a/paramgen/internal/testdata/tags/go.sum b/paramgen/internal/testdata/tags/go.sum index 71e523c..9b7bb31 100644 --- a/paramgen/internal/testdata/tags/go.sum +++ b/paramgen/internal/testdata/tags/go.sum @@ -1,4 +1,12 @@ -github.com/conduitio/conduit-commons v0.2.0/go.mod h1:i7Q2jm7FBSi2zj1/4MCsFD1hIKAbvamlNtSQfkhUTiY= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/conduitio/conduit-commons v0.3.0 h1:nxQ++O4dK1p717upkyzbCQu0FLIFyP3OrgHZ9Zxvzvg= +github.com/conduitio/conduit-commons v0.3.0/go.mod h1:roxZ88dv+fpbEjjTzkdGwwbmcpunSuiD8he43y0lAoo= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= +github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=