Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion dart/dart_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (

const (
defaultPart = "generated_rpc_client"
version = "1.0.0"

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

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

if g.settings.Part != "" {
data.Part = g.settings.Part
Expand Down
18 changes: 18 additions & 0 deletions dart/dart_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@ package dart

import (
"bytes"
"flag"
"os"
"testing"

"github.com/vmkteam/zenrpc/v2"
"github.com/vmkteam/zenrpc/v2/testdata"
)

const rpcGenFilePath = "./testdata/client.dart"

var update = flag.Bool("update", false, "update .dart files")

func TestGenerateDartClient(t *testing.T) {
rpc := zenrpc.NewServer(zenrpc.Options{})
rpc.Register("catalogue", testdata.CatalogueService{})
Expand All @@ -20,6 +25,19 @@ func TestGenerateDartClient(t *testing.T) {
t.Fatalf("generate dart client: %v", err)
}

if *update {
var f *os.File
f, err = os.Create(rpcGenFilePath)
if err != nil {
t.Fatal(err)
}
_, err = f.Write(generated)
if err != nil {
t.Fatal(err)
}
return
}

testData, err := os.ReadFile("./testdata/client.dart")
if err != nil {
t.Fatalf("open test data file: %v", err)
Expand Down
2 changes: 1 addition & 1 deletion dart/dart_template.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dart

const client = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT.
const client = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT.

import 'package:json_annotation/json_annotation.dart';
import 'package:smd_annotations/annotations.dart';
Expand Down
2 changes: 1 addition & 1 deletion dart/testdata/client.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// Code generated from jsonrpc schema by rpcgen v2.4.4; DO NOT EDIT.
/// Code generated from jsonrpc schema by rpcgen v2.5.x with dart v1.0.0; DO NOT EDIT.

import 'package:json_annotation/json_annotation.dart';
import 'package:smd_annotations/annotations.dart';
Expand Down
12 changes: 10 additions & 2 deletions gen/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ import (
"golang.org/x/text/language"
)

const version = "2.5.0"
const version = "2.5.x"

const DefinitionsPrefix = "#/definitions/"

type GeneratorData struct {
Version string
Version string
Lang string
LocalVersion string
}

func DefaultGeneratorData() GeneratorData {
Expand All @@ -24,6 +26,12 @@ func DefaultGeneratorData() GeneratorData {
}
}

func (g GeneratorData) AddLangAndLocalVersion(version, lang string) GeneratorData {
g.Lang = lang
g.LocalVersion = version
return g
}

// GetNamespaceNames return all namespace names from schema.
func GetNamespaceNames(schema smd.Schema) (res []string) {
m := map[string]struct{}{}
Expand Down
7 changes: 6 additions & 1 deletion golang/go_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ import (
"github.com/vmkteam/zenrpc/v2/smd"
)

const (
version = "1.0.0"
lang = "golang"
)

type Settings struct {
Package string
}
Expand All @@ -31,7 +36,7 @@ func NewClient(schema smd.Schema, settings Settings) *Generator {

// Generate returns generated Go client.
func (g *Generator) Generate() ([]byte, error) {
g.schema.GeneratorData = gen.DefaultGeneratorData()
g.schema.GeneratorData = gen.DefaultGeneratorData().AddLangAndLocalVersion(version, lang)
g.schema.Package = g.settings.Package

tmpl, err := template.New("golang client").Funcs(templateFuncs).Parse(goTpl)
Expand Down
2 changes: 1 addition & 1 deletion golang/go_template.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package golang

// goTpl contains template for Go client
const goTpl = `// Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT.
const goTpl = `// Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT.

package {{ .Package }}

Expand Down
20 changes: 19 additions & 1 deletion golang/rpcgen_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@ package golang

import (
"bytes"
"flag"
"os"
"testing"

"github.com/vmkteam/zenrpc/v2"
"github.com/vmkteam/zenrpc/v2/testdata"
)

const rpcGenFilePath = "./testdata/catalogue_client.go.test"

var update = flag.Bool("update", false, "update .go files")

func TestGenerateGoClient(t *testing.T) {
rpc := zenrpc.NewServer(zenrpc.Options{})
rpc.Register("catalogue", testdata.CatalogueService{})
Expand All @@ -22,7 +27,20 @@ func TestGenerateGoClient(t *testing.T) {
t.Fatalf("generate go client: %v", err)
}

testData, err := os.ReadFile("./testdata/catalogue_client.go.test")
if *update {
var f *os.File
f, err = os.Create(rpcGenFilePath)
if err != nil {
t.Fatal(err)
}
_, err = f.Write(generated)
if err != nil {
t.Fatal(err)
}
return
}

testData, err := os.ReadFile(rpcGenFilePath)
if err != nil {
t.Fatalf("open test data file: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion golang/testdata/catalogue_client.go.test
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Code generated from jsonrpc schema by rpcgen v2.5.0; DO NOT EDIT.
// Code generated from jsonrpc schema by rpcgen v2.5.x with golang v1.0.0; DO NOT EDIT.

package client

Expand Down
4 changes: 3 additions & 1 deletion kotlin/kotlin_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ const (
DefaultList = "emptyList()"
DefaultMap = "emptyMap()"
DefaultLocalTime = "LocalTime.now()"

version = "1.0.0"
)

var (
Expand Down Expand Up @@ -134,7 +136,7 @@ func (g *Generator) prepareTemplateData() templateData {
g.settings.Class = BaseClass
}

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

modelsMap := make(map[string]Model)
servicesMap := make(map[string][]Method)
Expand Down
4 changes: 2 additions & 2 deletions kotlin/kotlin_template.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kotlin

const model = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT.
const model = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT.
package {{ .PackageAPI }}.model

import java.time.LocalTime
Expand All @@ -26,7 +26,7 @@ data class {{ $model.Name }}(
)
{{ end }}
`
const protocolTemplate = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT.
const protocolTemplate = `/// Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT.
package {{ .PackageAPI }}

import com.google.gson.reflect.TypeToken
Expand Down
2 changes: 1 addition & 1 deletion kotlin/testdata/protocol.generated.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// Code generated from jsonrpc schema by rpcgen v2.7.0; DO NOT EDIT.
/// Code generated from jsonrpc schema by rpcgen v2.5.x with kotlin v1.0.0; DO NOT EDIT.
package api

import com.google.gson.reflect.TypeToken
Expand Down
2 changes: 1 addition & 1 deletion kotlin/testdata/rpc.generated.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// Code generated from jsonrpc schema by rpcgen v2.7.0; DO NOT EDIT.
/// Code generated from jsonrpc schema by rpcgen v2.5.x with kotlin v1.0.0; DO NOT EDIT.
package api.model

import java.time.LocalTime
Expand Down
3 changes: 2 additions & 1 deletion php/php_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (

const (
defaultPhpNamespace = "JsonRpcClient"
version = "1.0.0"

phpBoolean = "bool"
phpInt = "int"
Expand Down Expand Up @@ -41,7 +42,7 @@ func NewClient(schema smd.Schema, phpNamespace string) *Generator {
// Generate returns generate PHP client
func (g *Generator) Generate() ([]byte, error) {
m := g.PHPModels()
m.GeneratorData = gen.DefaultGeneratorData()
m.GeneratorData = gen.DefaultGeneratorData().AddLangAndLocalVersion(version, "php")

funcMap := template.FuncMap{
"now": time.Now,
Expand Down
20 changes: 19 additions & 1 deletion php/php_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@ package php

import (
"bytes"
"flag"
"os"
"testing"

"github.com/vmkteam/zenrpc/v2"
"github.com/vmkteam/zenrpc/v2/testdata"
)

const rpcGenFilePath = "./testdata/RpcClient.php"

var update = flag.Bool("update", false, "update .php files")

func TestGeneratePHPClient(t *testing.T) {
rpc := zenrpc.NewServer(zenrpc.Options{})
rpc.Register("catalogue", testdata.CatalogueService{})
Expand All @@ -20,7 +25,20 @@ func TestGeneratePHPClient(t *testing.T) {
t.Fatalf("generate php client: %v", err)
}

testData, err := os.ReadFile("./testdata/RpcClient.php")
if *update {
var f *os.File
f, err = os.Create(rpcGenFilePath)
if err != nil {
t.Fatal(err)
}
_, err = f.Write(generated)
if err != nil {
t.Fatal(err)
}
return
}

testData, err := os.ReadFile(rpcGenFilePath)
if err != nil {
t.Fatalf("open test data file: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion php/php_template.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package php

const phpTpl = `<?php
/** Code generated from jsonrpc schema by rpcgen v{{ .Version }}; DO NOT EDIT. */
/** Code generated from jsonrpc schema by rpcgen v{{ .Version }} with {{ .Lang }} v{{ .LocalVersion }}; DO NOT EDIT. */

namespace {{.Namespace}};

Expand Down
2 changes: 1 addition & 1 deletion php/testdata/RpcClient.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php
/** Code generated from jsonrpc schema by rpcgen v2.4.0; DO NOT EDIT. */
/** Code generated from jsonrpc schema by rpcgen v2.5.x with php v1.0.0; DO NOT EDIT. */

namespace JsonRpcClient;

Expand Down
4 changes: 3 additions & 1 deletion swift/swift_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
)

const (
version = "1.0.0"
lang = "swift"
defaultClass = "RPCAPI"

Bool = "Bool"
Expand Down Expand Up @@ -100,7 +102,7 @@ func NewClient(schema smd.Schema, settings Settings) *Generator {

// Generate returns generated Swift client
func (g *Generator) Generate() ([]byte, error) {
data := templateData{Class: defaultClass, GeneratorData: gen.DefaultGeneratorData()}
data := templateData{Class: defaultClass, GeneratorData: gen.DefaultGeneratorData().AddLangAndLocalVersion(version, lang)}
if g.settings.Class != "" {
data.Class = g.settings.Class
}
Expand Down
24 changes: 20 additions & 4 deletions swift/swift_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@ package swift

import (
"bytes"
"flag"
"os"
"testing"

"github.com/vmkteam/rpcgen/v2/swift/testdata"
"github.com/vmkteam/zenrpc/v2"
"github.com/vmkteam/zenrpc/v2/testdata"
)

const rpcGenFilePath = "./testdata/rpc.generated.swift"
const protocolGenFilePath = "./testdata/protocol.generated.swift"

var update = flag.Bool("update", false, "update .swift files")

func TestGenerator_Generate(t *testing.T) {
type fields struct {
settings Settings
Expand All @@ -27,7 +30,7 @@ func TestGenerator_Generate(t *testing.T) {
name: "generate rpc",
fields: fields{
servicesMap: map[string]zenrpc.Invoker{
"catalogue": testdata.CatalogueService{},
"arith": testdata.ArithService{},
},
settings: Settings{},
},
Expand All @@ -37,8 +40,7 @@ func TestGenerator_Generate(t *testing.T) {
name: "generate multi protocol",
fields: fields{
servicesMap: map[string]zenrpc.Invoker{
"catalogue": testdata.CatalogueService{},
"arith": testdata.ArithService{},
"arith": testdata.ArithService{},
},
settings: Settings{IsProtocol: true},
},
Expand All @@ -57,6 +59,20 @@ func TestGenerator_Generate(t *testing.T) {
if err != nil {
t.Fatalf("generate swift client: %v", err)
}

if *update {
var f *os.File
f, err = os.Create(tt.outputFile)
if err != nil {
t.Fatal(err)
}
_, err = f.Write(got)
if err != nil {
t.Fatal(err)
}
return
}

testData, err := os.ReadFile(tt.outputFile)
if err != nil {
t.Fatalf("open test data file: %v", err)
Expand Down
Loading