Skip to content

Commit 3ea5d30

Browse files
committed
refactor(codegen): Extract common generators
Extract generators for common constructcs such as errors.New or errors.Join, providing a more expressive syntax where called.
1 parent 25373d4 commit 3ea5d30

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

internal/code-gen/script-wrappers/es_wrapper_generator.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
. "github.com/gost-dom/code-gen/internal"
1111
"github.com/gost-dom/code-gen/packagenames"
1212
"github.com/gost-dom/code-gen/script-wrappers/configuration"
13+
"github.com/gost-dom/code-gen/stdgen"
1314
g "github.com/gost-dom/generators"
1415
"github.com/gost-dom/webref/idl"
1516
legacy "github.com/gost-dom/webref/idl/legacy"
@@ -298,10 +299,14 @@ func (d ESConstructorData) WrapperFunctionsToGenerate() iter.Seq[ESOperation] {
298299
}
299300
for _, a := range d.Attributes {
300301
if a.Getter != nil && !a.Getter.CustomImplementation {
301-
yield(*a.Getter)
302+
if !yield(*a.Getter) {
303+
return
304+
}
302305
}
303306
if a.Setter != nil && !a.Setter.CustomImplementation {
304-
yield(*a.Setter)
307+
if !yield(*a.Setter) {
308+
return
309+
}
305310
}
306311
}
307312
}
@@ -318,11 +323,7 @@ func ReturnOnAnyError(errNames []g.Generator) g.Generator {
318323
}
319324
return g.StatementList(
320325
g.Assign(g.Id("err"),
321-
g.Raw(jen.Qual("errors", "Join").CallFunc(func(g *jen.Group) {
322-
for _, e := range errNames {
323-
g.Add(e.Generate())
324-
}
325-
})),
326+
stdgen.ErrorsJoin(errNames...),
326327
),
327328
ReturnOnError{},
328329
)

internal/code-gen/script-wrappers/v8_generators.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55

66
. "github.com/gost-dom/code-gen/internal"
7+
"github.com/gost-dom/code-gen/stdgen"
78
g "github.com/gost-dom/generators"
89

910
"github.com/dave/jennifer/jen"
@@ -48,9 +49,7 @@ func (gen V8TargetGenerators) CreateInitFunction(data ESConstructorData) g.Gener
4849
}
4950

5051
func (gen V8TargetGenerators) ReturnErrMsg(errGen g.Generator) g.Generator {
51-
return g.Return(g.Nil,
52-
g.NewValuePackage("New", "errors").Call(errGen),
53-
)
52+
return g.Return(g.Nil, stdgen.ErrorsNew(errGen))
5453
}
5554

5655
func (gen V8TargetGenerators) WrapperStructGenerators() PlatformWrapperStructGenerators {
@@ -294,7 +293,7 @@ func CreateV8WrapperMethodInstanceInvocations(
294293
statements.Append(
295294
g.Return(
296295
g.Nil,
297-
g.Raw(jen.Qual("errors", "New").Call(jen.Lit(missingArgsConts))),
296+
stdgen.ErrorsNew(g.Lit(missingArgsConts)),
298297
),
299298
)
300299
break

internal/code-gen/stdgen/stdgen.go

+8
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,11 @@ import (
88
func LogDebug(args ...g.Generator) g.Generator {
99
return g.NewValuePackage("Debug", packagenames.Log).Call(args...)
1010
}
11+
12+
func ErrorsJoin(args ...g.Generator) g.Generator {
13+
return g.NewValuePackage("Join", "errors").Call(args...)
14+
}
15+
16+
func ErrorsNew(arg g.Generator) g.Generator {
17+
return g.NewValuePackage("New", "errors").Call(arg)
18+
}

0 commit comments

Comments
 (0)