Skip to content

Commit 8080f5d

Browse files
committed
feat: improve generate logic
1 parent 979c303 commit 8080f5d

File tree

11 files changed

+37
-26
lines changed

11 files changed

+37
-26
lines changed

cmd/kod/internal/generate_generator.go

+14-4
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,10 @@ func (g *generator) generateFullMethodNames(p printFn) {
667667
p(`const (`)
668668
for _, comp := range g.components {
669669
for _, m := range comp.methods() {
670+
if g.getFirstArgTypeString(m) != "context.Context" {
671+
continue
672+
}
673+
670674
p(`// %s is the full name of the method [%s.%s].`, comp.fullMethodNameVar(m.Name()), comp.implName(), m.Name())
671675
p(`%s = %q`, comp.fullMethodNameVar(m.Name()), comp.fullFullMethodName(m.Name()))
672676
}
@@ -790,10 +794,7 @@ func (g *generator) generateLocalStubs(p printFn) {
790794

791795
mt := m.Type().(*types.Signature)
792796

793-
firstArgTypeString := ""
794-
if mt.Params().Len() > 0 {
795-
firstArgTypeString = g.tset.genTypeString(mt.Params().At(0).Type())
796-
}
797+
firstArgTypeString := g.getFirstArgTypeString(m)
797798

798799
p(``)
799800
p(`// %s wraps the method [%s.%s].`, m.Name(), comp.implName(), m.Name())
@@ -844,6 +845,15 @@ func (g *generator) generateLocalStubs(p printFn) {
844845
}
845846
}
846847

848+
func (g *generator) getFirstArgTypeString(m *types.Func) string {
849+
mt := m.Type().(*types.Signature)
850+
851+
if mt.Params().Len() > 0 {
852+
return g.tset.genTypeString(mt.Params().At(0).Type())
853+
}
854+
return ""
855+
}
856+
847857
func (g *generator) setReturnsList(sig *types.Signature) string {
848858
var returns strings.Builder
849859
for i := 0; i < sig.Results().Len(); i++ {

cmd/kod/internal/struct2interface.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,8 @@ func createFile(c *cobra.Command, objs map[string]*makeInterfaceFile) error {
265265
}
266266

267267
if commandExists("mockgen") {
268-
cmd := exec.Command("mockgen", "-source", fileName, "-destination", filepath.Join(obj.DirPath, "kod_gen_mock.go"), "-package", pkgName, "-typed")
268+
cmd := exec.Command("mockgen", "-source", fileName, "-destination", filepath.Join(obj.DirPath, "kod_gen_mock.go"),
269+
"-package", pkgName, "-typed", "-build_constraint", "!ignoreKodGen")
269270
cmd.Stderr = os.Stderr
270271
cmd.Stdout = os.Stdout
271272

examples/helloworld/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/case1/kod_gen.go

-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/case1/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/case2/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/case3/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/case4/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/case5/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/graphcase/kod_gen.go

-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/graphcase/kod_gen_mock.go

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)