protomapper

package module
v0.0.10 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2022 License: MIT Imports: 9 Imported by: 0

README

protomapper

WIP: Generates relevant go-structures for protobuf messages and mappings between them

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FilepathResolver = func(path ...string) FileResolver {
	return func(s string) (string, error) {
		path := append(path, s)
		return filepath.Join(path...), nil
	}
}

FilepathResolver resolver for files in directory path.

Functions

func AddMapper added in v0.0.6

func AddMapper(pbTypeName string, mapper FieldMapper)

func GoTypeName added in v0.0.6

func GoTypeName(typ ProtoType) string

Types

type Config

type Config struct {
	// AppName - app name to include in generated comment.
	AppName string
	// TypesDir - folder, where types will be generated.
	TypesDir string
	// TypesGoPackage - go package name for generated types.
	TypesGoPackage string
	// ConvertersDir - folder, where type converters will be generated.
	ConvertersDir string
	// ConvertersGoPkg - go package for converters.
	ConvertersGoPkg string
	// TypesImport - import types package in converters.
	TypesImport string
	// PbImport - import protobuf generated package in converters.
	PbImport string
	// GenHelpers - generate helpers for slice mappings.
	GenHelpers bool
	// AddComment - generate comment 'Code generated by...' at the top of the files.
	AddComment bool
}

Config protomapper configuration.

func (*Config) GetAddComment added in v0.0.9

func (c *Config) GetAddComment() bool

func (*Config) GetAppName added in v0.0.9

func (c *Config) GetAppName() string

func (*Config) GetConvertersDir added in v0.0.9

func (c *Config) GetConvertersDir() string

func (*Config) GetConvertersGoPkg added in v0.0.9

func (c *Config) GetConvertersGoPkg() string

func (*Config) GetGenHelpers added in v0.0.9

func (c *Config) GetGenHelpers() bool

func (*Config) GetPbImport added in v0.0.9

func (c *Config) GetPbImport() string

func (*Config) GetTypesDir added in v0.0.9

func (c *Config) GetTypesDir() string

func (*Config) GetTypesGoPackage added in v0.0.9

func (c *Config) GetTypesGoPackage() string

func (*Config) GetTypesImport added in v0.0.9

func (c *Config) GetTypesImport() string

type Field

type Field = types.Field

type FieldMapper added in v0.0.6

type FieldMapper = types.FieldMapper

type FieldMapperFunc added in v0.0.6

type FieldMapperFunc = types.FieldMapperFunc

type FieldResolver added in v0.0.6

type FieldResolver = types.FieldResolver

type FileResolver

type FileResolver func(string) (string, error)

type ImportsResolver added in v0.0.6

type ImportsResolver = types.ImportsResolver

type Option

type Option interface {
	// contains filtered or unexported methods
}

func WithExcludeMessageFields

func WithExcludeMessageFields(exclude func(field ProtoField) bool) Option

type ProtoField

type ProtoField = ast.Field

type ProtoMapper added in v0.0.2

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

func NewProtoMapper

func NewProtoMapper(cfg *Config) *ProtoMapper

NewProtoMapper setup new protomapper.

func (*ProtoMapper) ASTBuilder added in v0.0.6

func (p *ProtoMapper) ASTBuilder() *protoast.Builder

func (*ProtoMapper) ConvertersRenderer added in v0.0.2

func (p *ProtoMapper) ConvertersRenderer() Renderer

ConvertersRenderer get converters renderer.

func (*ProtoMapper) Fields added in v0.0.2

func (p *ProtoMapper) Fields() *registry.FieldDict

Fields get fields.

func (*ProtoMapper) ResolveTypes added in v0.0.2

func (p *ProtoMapper) ResolveTypes(
	resolver FileResolver,
	serviceFilter ServiceFilter,
	fileNames ...string,
) error

ResolveTypes resolver *.proto files and collect defined types.

func (*ProtoMapper) SetFieldResolver added in v0.0.6

func (p *ProtoMapper) SetFieldResolver(resolver func(r FieldResolver) FieldResolver)

func (*ProtoMapper) SetFileResolver added in v0.0.6

func (p *ProtoMapper) SetFileResolver(resolver func(r TypeResolver) TypeResolver)

func (*ProtoMapper) SetImportsResolver added in v0.0.6

func (p *ProtoMapper) SetImportsResolver(resolver func(r ImportsResolver) ImportsResolver)

func (*ProtoMapper) SetTypeResolver added in v0.0.6

func (p *ProtoMapper) SetTypeResolver(resolver func(r TypeResolver) TypeResolver)

func (*ProtoMapper) TypeMapper added in v0.0.2

func (p *ProtoMapper) TypeMapper() TypeMapper

TypeMapper get type mapper.

func (*ProtoMapper) TypeRenderer added in v0.0.2

func (p *ProtoMapper) TypeRenderer() Renderer

TypeRenderer get type renderer.

func (*ProtoMapper) Types added in v0.0.2

func (p *ProtoMapper) Types() *registry.TypeDict

Types get types.

func (*ProtoMapper) WithOptions added in v0.0.2

func (p *ProtoMapper) WithOptions(opts ...Option) *ProtoMapper

WithOptions add options for protomapper.

type ProtoOption

type ProtoOption = ast.Option

type ProtoScalar

type ProtoScalar = ast.ScalarNode

type ProtoService added in v0.0.8

type ProtoService = ast.Service

type ProtoType

type ProtoType = ast.Type

type Renderer

type Renderer interface {
	Render(pbTyp ProtoType) error
}

Renderer renderer for types.

type ServiceFilter added in v0.0.8

type ServiceFilter func(service *ProtoService) bool

type Type

type Type = types.Type

type TypeMapper

type TypeMapper interface {
	FromProtoType(t ProtoType) (Type, error)
	FromProtoField(f ProtoField) (Field, error)
}

TypeMapper mapper for protobuf types.

type TypeResolver added in v0.0.6

type TypeResolver = types.TypeResolver

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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