Skip to content

Commit 52fc38a

Browse files
lvan100lianghuan
authored andcommitted
111
1 parent ed009cc commit 52fc38a

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

gen/gen.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package gen
1919
import (
2020
"github.com/go-spring/gs-http-gen/gen/generator"
2121
"github.com/go-spring/gs-http-gen/gen/generator/golang"
22-
"github.com/go-spring/gs-http-gen/lib/tidl"
2322
"github.com/lvan100/errutil"
2423
)
2524

@@ -33,15 +32,5 @@ func Gen(language string, config *generator.Config) error {
3332
if !ok {
3433
return errutil.Explain(nil, "unsupported language: %s", language)
3534
}
36-
files, meta, err := tidl.ParseDir(config.IDLSrcDir)
37-
if err != nil {
38-
return err
39-
}
40-
if meta == nil {
41-
return errutil.Explain(nil, "no meta file")
42-
}
43-
if len(files) == 0 {
44-
return errutil.Explain(nil, "no idl file")
45-
}
46-
return g.Gen(config, files, meta)
35+
return g.Gen(config)
4736
}

gen/generator/generator.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ var generators = map[string]Generator{}
3737
// must implement. The Gen method generates code based on the given
3838
// configuration, documents, and metadata.
3939
type Generator interface {
40-
Gen(config *Config, files map[string]tidl.Document, meta *tidl.MetaInfo) error
40+
Gen(config *Config) error
4141
}
4242

4343
// GetGenerator retrieves a registered generator for a given language.
@@ -53,3 +53,17 @@ func RegisterGenerator(language string, g Generator) {
5353
}
5454
generators[language] = g
5555
}
56+
57+
func ParseDir(dir string) ( /* files */ map[string]tidl.Document /* meta */, *tidl.MetaInfo, error) {
58+
files, meta, err := tidl.ParseDir(dir)
59+
if err != nil {
60+
return nil, nil, err
61+
}
62+
if meta == nil {
63+
return nil, nil, errutil.Explain(nil, "no meta file")
64+
}
65+
if len(files) == 0 {
66+
return nil, nil, errutil.Explain(nil, "no idl file")
67+
}
68+
return files, meta, nil
69+
}

gen/generator/golang/main.go

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/generator/golang/spec.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"strconv"
77
"strings"
88

9+
"github.com/go-spring/gs-http-gen/gen/generator"
910
"github.com/go-spring/gs-http-gen/lib/tidl"
1011
"github.com/go-spring/gs-http-gen/lib/vidl"
1112
"github.com/lvan100/errutil"
@@ -117,7 +118,12 @@ type Go struct {
117118
Funcs map[string]ValidateFunc // Collected validation functions
118119
}
119120

120-
func Convert(files map[string]tidl.Document, meta *tidl.MetaInfo) (Go, error) {
121+
func Convert(dir string) (Go, error) {
122+
files, meta, err := generator.ParseDir(dir)
123+
if err != nil {
124+
return Go{}, err
125+
}
126+
121127
g := Go{
122128
Files: files,
123129
Meta: meta,

0 commit comments

Comments
 (0)