generator

package
v1.3.0-beta1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2022 License: MIT Imports: 21 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Category

func Category() string

Category returns a const string value for rpc template category

func Clean

func Clean() error

Clean deletes all template files

func GenTemplates

func GenTemplates(_ *cli.Context) error

GenTemplates is the entry for command goctl template, it will create the specified category

func ProtoTmpl

func ProtoTmpl(out string) error

ProtoTmpl returns a sample of a proto file

func RevertTemplate

func RevertTemplate(name string) error

RevertTemplate restores the deleted template files

func Update

func Update() error

Update is used to update the template files, it will delete the existing old templates at first, and then create the latest template files

Types

type DefaultGenerator

type DefaultGenerator struct {
	// contains filtered or unexported fields
}

DefaultGenerator defines the environment needs of rpc service generation

func (*DefaultGenerator) GenCall

func (g *DefaultGenerator) GenCall(ctx DirContext, proto parser.Proto, cfg *conf.Config) error

GenCall generates the rpc client code, which is the entry point for the rpc service call. It is a layer of encapsulation for the rpc client and shields the details in the pb.

func (*DefaultGenerator) GenConfig

func (g *DefaultGenerator) GenConfig(ctx DirContext, _ parser.Proto, cfg *conf.Config) error

GenConfig generates the configuration structure definition file of the rpc service, which contains the zrpc.RpcServerConf configuration item by default. You can specify the naming style of the target file name through config.Config. For details, see https://github.com/zeromicro/go-zero/tree/master/tools/goctl/config/config.go

func (*DefaultGenerator) GenEtc

func (g *DefaultGenerator) GenEtc(ctx DirContext, _ parser.Proto, cfg *conf.Config) error

GenEtc generates the yaml configuration file of the rpc service, including host, port monitoring configuration items and etcd configuration

func (*DefaultGenerator) GenLogic

func (g *DefaultGenerator) GenLogic(ctx DirContext, proto parser.Proto, cfg *conf.Config) error

GenLogic generates the logic file of the rpc service, which corresponds to the RPC definition items in proto.

func (*DefaultGenerator) GenMain

func (g *DefaultGenerator) GenMain(ctx DirContext, proto parser.Proto, cfg *conf.Config) error

GenMain generates the main file of the rpc service, which is an rpc service program call entry

func (*DefaultGenerator) GenPb

func (g *DefaultGenerator) GenPb(ctx DirContext, protoImportPath []string, proto parser.Proto, _ *conf.Config, c *ZRpcContext, goOptions ...string) error

GenPb generates the pb.go file, which is a layer of packaging for protoc to generate gprc, but the commands and flags in protoc are not completely joined in goctl. At present, proto_path(-I) is introduced

func (*DefaultGenerator) GenServer

func (g *DefaultGenerator) GenServer(ctx DirContext, proto parser.Proto, cfg *conf.Config) error

GenServer generates rpc server file, which is an implementation of rpc server

func (*DefaultGenerator) GenSvc

func (g *DefaultGenerator) GenSvc(ctx DirContext, _ parser.Proto, cfg *conf.Config) error

GenSvc generates the servicecontext.go file, which is the resource dependency of a service, such as rpc dependency, model dependency, etc.

func (*DefaultGenerator) Prepare

func (g *DefaultGenerator) Prepare() error

Prepare provides environment detection generated by rpc service, including go environment, protoc, whether protoc-gen-go is installed or not

type Dir

type Dir struct {
	Base     string
	Filename string
	Package  string
}

Dir defines a directory

func (*Dir) Valid

func (d *Dir) Valid() bool

Valid returns true if the directory is valid

type DirContext

type DirContext interface {
	GetCall() Dir
	GetEtc() Dir
	GetInternal() Dir
	GetConfig() Dir
	GetLogic() Dir
	GetServer() Dir
	GetSvc() Dir
	GetPb() Dir
	GetProtoGo() Dir
	GetMain() Dir
	GetServiceName() stringx.String
}

DirContext defines a rpc service directories context

type Generator

type Generator interface {
	Prepare() error
	GenMain(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenCall(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenEtc(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenConfig(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenLogic(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenServer(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenSvc(ctx DirContext, proto parser.Proto, cfg *conf.Config) error
	GenPb(ctx DirContext, protoImportPath []string, proto parser.Proto, cfg *conf.Config, c *ZRpcContext, goOptions ...string) error
}

Generator defines a generator interface to describe how to generate rpc service

func NewDefaultGenerator

func NewDefaultGenerator() Generator

NewDefaultGenerator returns an instance of DefaultGenerator

type RPCGenerator

type RPCGenerator struct {
	// contains filtered or unexported fields
}

RPCGenerator defines a generator and configure

func NewDefaultRPCGenerator

func NewDefaultRPCGenerator(style string, options ...RPCGeneratorOption) (*RPCGenerator, error)

NewDefaultRPCGenerator wraps Generator with configure

func NewRPCGenerator

func NewRPCGenerator(g Generator, cfg *conf.Config, options ...RPCGeneratorOption) *RPCGenerator

NewRPCGenerator creates an instance for RPCGenerator

func (*RPCGenerator) Generate

func (g *RPCGenerator) Generate(src, target string, protoImportPath []string, goOptions ...string) error

Generate generates an rpc service, through the proto file, code storage directory, and proto import parameters to control the source file and target location of the rpc service that needs to be generated

type RPCGeneratorOption

type RPCGeneratorOption func(g *RPCGenerator)

func WithZRpcContext

func WithZRpcContext(c *ZRpcContext) RPCGeneratorOption

type ZRpcContext

type ZRpcContext struct {
	Src             string
	ProtocCmd       string
	ProtoGenGrpcDir string
	ProtoGenGoDir   string
	Output          string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL