Skip to content

Commit 222f51e

Browse files
qnqatopandrey
andauthored
Add new local version in code gen and update swift template (#34)
* Generate new extension in swift rpc and update templates * Add new flow with versions Use local version in generators * Update kotlin package * Regenerate swift testdata --------- Co-authored-by: andrey <palchikov@uteka.ru>
1 parent 471d445 commit 222f51e

30 files changed

+1882
-120
lines changed

dart/dart_client.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
const (
1616
defaultPart = "generated_rpc_client"
17+
version = "1.0.0"
1718

1819
Bool = "bool"
1920
Int = "int"
@@ -104,7 +105,7 @@ func NewClient(schema smd.Schema, settings Settings) *Generator {
104105

105106
// Generate returns generated Dart client
106107
func (g *Generator) Generate() ([]byte, error) {
107-
data := templateData{Part: defaultPart, GeneratorData: gen.DefaultGeneratorData()}
108+
data := templateData{Part: defaultPart, GeneratorData: gen.DefaultGeneratorData().AddLangAndLocalVersion(version, "dart")}
108109

109110
if g.settings.Part != "" {
110111
data.Part = g.settings.Part

dart/dart_client_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@ package dart
22

33
import (
44
"bytes"
5+
"flag"
56
"os"
67
"testing"
78

89
"github.com/vmkteam/zenrpc/v2"
910
"github.com/vmkteam/zenrpc/v2/testdata"
1011
)
1112

13+
const rpcGenFilePath = "./testdata/client.dart"
14+
15+
var update = flag.Bool("update", false, "update .dart files")
16+
1217
func TestGenerateDartClient(t *testing.T) {
1318
rpc := zenrpc.NewServer(zenrpc.Options{})
1419
rpc.Register("catalogue", testdata.CatalogueService{})
@@ -20,6 +25,19 @@ func TestGenerateDartClient(t *testing.T) {
2025
t.Fatalf("generate dart client: %v", err)
2126
}
2227

28+
if *update {
29+
var f *os.File
30+
f, err = os.Create(rpcGenFilePath)
31+
if err != nil {
32+
t.Fatal(err)
33+
}
34+
_, err = f.Write(generated)
35+
if err != nil {
36+
t.Fatal(err)
37+
}
38+
return
39+
}
40+
2341
testData, err := os.ReadFile("./testdata/client.dart")
2442
if err != nil {
2543
t.Fatalf("open test data file: %v", err)

dart/dart_template.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dart
22

3-
const client = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT.
3+
const client = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT.
44
55
import 'package:json_annotation/json_annotation.dart';
66
import 'package:smd_annotations/annotations.dart';

dart/testdata/client.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// Code generated from jsonrpc schema by rpcgen v2.4.4; DO NOT EDIT.
1+
/// Code generated from jsonrpc schema by rpcgen v2.5.x with dart v1.0.0; DO NOT EDIT.
22
33
import 'package:json_annotation/json_annotation.dart';
44
import 'package:smd_annotations/annotations.dart';

gen/gen.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ import (
1010
"golang.org/x/text/language"
1111
)
1212

13-
const version = "2.5.0"
13+
const version = "2.5.x"
1414

1515
const DefinitionsPrefix = "#/definitions/"
1616

1717
type GeneratorData struct {
18-
Version string
18+
Version string
19+
Lang string
20+
LocalVersion string
1921
}
2022

2123
func DefaultGeneratorData() GeneratorData {
@@ -24,6 +26,12 @@ func DefaultGeneratorData() GeneratorData {
2426
}
2527
}
2628

29+
func (g GeneratorData) AddLangAndLocalVersion(version, lang string) GeneratorData {
30+
g.Lang = lang
31+
g.LocalVersion = version
32+
return g
33+
}
34+
2735
// GetNamespaceNames return all namespace names from schema.
2836
func GetNamespaceNames(schema smd.Schema) (res []string) {
2937
m := map[string]struct{}{}

golang/go_client.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ import (
1111
"github.com/vmkteam/zenrpc/v2/smd"
1212
)
1313

14+
const (
15+
version = "1.0.0"
16+
lang = "golang"
17+
)
18+
1419
type Settings struct {
1520
Package string
1621
}
@@ -31,7 +36,7 @@ func NewClient(schema smd.Schema, settings Settings) *Generator {
3136

3237
// Generate returns generated Go client.
3338
func (g *Generator) Generate() ([]byte, error) {
34-
g.schema.GeneratorData = gen.DefaultGeneratorData()
39+
g.schema.GeneratorData = gen.DefaultGeneratorData().AddLangAndLocalVersion(version, lang)
3540
g.schema.Package = g.settings.Package
3641

3742
tmpl, err := template.New("golang client").Funcs(templateFuncs).Parse(goTpl)

golang/go_template.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package golang
22

33
// goTpl contains template for Go client
4-
const goTpl = `// Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT.
4+
const goTpl = `// Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT.
55
66
package {{ .Package }}
77

golang/rpcgen_test.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@ package golang
22

33
import (
44
"bytes"
5+
"flag"
56
"os"
67
"testing"
78

89
"github.com/vmkteam/zenrpc/v2"
910
"github.com/vmkteam/zenrpc/v2/testdata"
1011
)
1112

13+
const rpcGenFilePath = "./testdata/catalogue_client.go.test"
14+
15+
var update = flag.Bool("update", false, "update .go files")
16+
1217
func TestGenerateGoClient(t *testing.T) {
1318
rpc := zenrpc.NewServer(zenrpc.Options{})
1419
rpc.Register("catalogue", testdata.CatalogueService{})
@@ -22,7 +27,20 @@ func TestGenerateGoClient(t *testing.T) {
2227
t.Fatalf("generate go client: %v", err)
2328
}
2429

25-
testData, err := os.ReadFile("./testdata/catalogue_client.go.test")
30+
if *update {
31+
var f *os.File
32+
f, err = os.Create(rpcGenFilePath)
33+
if err != nil {
34+
t.Fatal(err)
35+
}
36+
_, err = f.Write(generated)
37+
if err != nil {
38+
t.Fatal(err)
39+
}
40+
return
41+
}
42+
43+
testData, err := os.ReadFile(rpcGenFilePath)
2644
if err != nil {
2745
t.Fatalf("open test data file: %v", err)
2846
}

golang/testdata/catalogue_client.go.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Code generated from jsonrpc schema by rpcgen v2.5.0; DO NOT EDIT.
1+
// Code generated from jsonrpc schema by rpcgen v2.5.x with golang v1.0.0; DO NOT EDIT.
22

33
package client
44

kotlin/kotlin_client.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ const (
3535
DefaultList = "emptyList()"
3636
DefaultMap = "emptyMap()"
3737
DefaultLocalTime = "LocalTime.now()"
38+
39+
version = "1.0.0"
3840
)
3941

4042
var (
@@ -134,7 +136,7 @@ func (g *Generator) prepareTemplateData() templateData {
134136
g.settings.Class = BaseClass
135137
}
136138

137-
data := templateData{GeneratorData: gen.DefaultGeneratorData(), PackageAPI: g.settings.PackageAPI, Imports: g.settings.Imports, Class: g.settings.Class}
139+
data := templateData{GeneratorData: gen.DefaultGeneratorData().AddLangAndLocalVersion(version, "kotlin"), PackageAPI: g.settings.PackageAPI, Imports: g.settings.Imports, Class: g.settings.Class}
138140

139141
modelsMap := make(map[string]Model)
140142
servicesMap := make(map[string][]Method)

0 commit comments

Comments
 (0)