generator

package
v0.0.11 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const ExtTagGoType = "x-goag-go-type"

Variables

This section is empty.

Functions

func AddImport added in v0.0.11

func AddImport(i string)

func CustomImports added in v0.0.8

func CustomImports() []string

func ExecuteTemplate added in v0.0.10

func ExecuteTemplate(name string, data any) (string, error)

func IfaceRender added in v0.0.11

func IfaceRender(value reflect.Value) (string, error)

func NewParameterSchema added in v0.0.11

func NewParameterSchema(spec specification.Schema) (interface {
	Render
	Formatter
}, error)

func OperationName added in v0.0.2

func OperationName(operationID string, path specification.Path, method string) string

func PrefixTitle added in v0.0.2

func PrefixTitle(s specification.Prefix) string

func PrivateFieldName

func PrivateFieldName(name string) string

func PublicFieldName

func PublicFieldName(name string) string

func Title added in v0.0.2

func Title(s string) string

Types

type AssignData added in v0.0.2

type AssignData struct {
	From, To Templater
	IsNew    bool
}

type BoolType added in v0.0.10

type BoolType struct{}

func (BoolType) Render added in v0.0.11

func (b BoolType) Render() (string, error)

func (BoolType) RenderFormat added in v0.0.10

func (b BoolType) RenderFormat(from Render) (string, error)

func (BoolType) RenderParser added in v0.0.10

func (b BoolType) RenderParser(from, to Render, mkErr ErrorRender) (string, error)

type Client added in v0.0.2

type Client struct {
	Handlers []Handler

	IsDecodeJSONFunc bool
}

func NewClient added in v0.0.2

func NewClient(handlers []Handler) Client

func (Client) Execute added in v0.0.2

func (c Client) Execute() (string, error)

type Components

type Components struct {
	Schemas []SchemaComponent
}

func NewComponents

func NewComponents(spec specification.Components) (zero Components, _ error)

type CustomType added in v0.0.5

type CustomType string

func NewCustomType added in v0.0.8

func NewCustomType(s string) CustomType

func (CustomType) Render added in v0.0.11

func (c CustomType) Render() (string, error)

func (CustomType) RenderFormat added in v0.0.11

func (c CustomType) RenderFormat(from Render) (string, error)

type ErrorRender added in v0.0.10

type ErrorRender interface {
	Wrap(message string) string
	New(message string) string
}

type ExecTemplater added in v0.0.2

type ExecTemplater interface {
	Execute() (string, error)
}

type FloatType added in v0.0.10

type FloatType struct {
	BitSize int
}

func (FloatType) Render added in v0.0.11

func (f FloatType) Render() (string, error)

func (FloatType) RenderFormat added in v0.0.10

func (i FloatType) RenderFormat(from Render) (string, error)

func (FloatType) RenderParser added in v0.0.10

func (i FloatType) RenderParser(from, to Render, mkErr ErrorRender) (string, error)

type Formatter added in v0.0.10

type Formatter interface {
	RenderFormat(from Render) (string, error)
}

Formatter formats 'string' from '<type>'.

type FormatterFunc added in v0.0.10

type FormatterFunc func(from Render) (string, error)

func (FormatterFunc) RenderFormat added in v0.0.10

func (f FormatterFunc) RenderFormat(from Render) (string, error)

type GenOption added in v0.0.2

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

func IfOption added in v0.0.2

func IfOption(opt GenOption, ifCond ...bool) GenOption

func PackageName added in v0.0.2

func PackageName(packageName string) GenOption

func SkipDoNotEdit added in v0.0.2

func SkipDoNotEdit() GenOption

type Generator added in v0.0.2

type Generator struct {
	Options Options

	Spec *specification.Spec

	Handlers []Handler
	Client   Client

	Paths      []*PathItem
	Operations []*Operation
}

func NewGenerator added in v0.0.2

func NewGenerator(spec *specification.Spec, opts ...GenOption) (*Generator, error)

func (*Generator) ClientFile added in v0.0.2

func (g *Generator) ClientFile() (Templater, error)

func (*Generator) HandlersFile added in v0.0.2

func (g *Generator) HandlersFile(hs []HandlerOld, isJSON bool) (Templater, error)

func (*Generator) RouterFile added in v0.0.2

func (g *Generator) RouterFile(basePath, baseFilename string, hs []HandlerOld, oldRouter any) (Templater, error)

type GoFile

type GoFile struct {
	SkipDoNotEdit bool
	PackageName   string
	Imports       []string
	Body          any
}

func (GoFile) Render added in v0.0.11

func (g GoFile) Render() (string, error)

type Handler

type Handler struct {
	Name       string
	Method     string
	HTTPMethod string
	Path       specification.Path

	PathBuilder []PathDir

	HandlerTypeName      string
	HandlerInputTypeName string
	RequestTypeName      string
	RequestVarName       string

	Params struct {
		Query   []QueryParameter
		Path    PathParameters
		Headers []HeaderParameter
	}

	IsRequestBody bool

	ResponseTypeName        string
	ResponsePrivateFuncName string

	DefaultResponse Optional[*Response]
	Responses       []*Response
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler(o *specification.Operation) (zero Handler, _ error)

type HandlerOld added in v0.0.2

type HandlerOld struct {

	// deprecated
	Name        string
	Description string
	Summary     string

	BasePathPrefix string

	CanParseError bool

	ResponserInterfaceName string

	Parameters struct {
		Query   []Param
		Path    []Param
		Headers []Param

		PathParsers []Templater
	}

	Body struct {
		TypeName Templater
	}

	IsWriteJSONFunc bool

	Responses []Templater
}

func (HandlerOld) Execute added in v0.0.2

func (h HandlerOld) Execute() (string, error)

func (HandlerOld) HandlerFuncName added in v0.0.2

func (h HandlerOld) HandlerFuncName() string

type HandlersFile added in v0.0.2

type HandlersFile struct {
	Handlers []HandlerOld

	IsWriteJSONFunc bool
}

func (HandlersFile) Execute added in v0.0.2

func (h HandlersFile) Execute() (string, error)
type Header struct {
	Spec specification.Header

	FieldName string
	Key       string
}

func NewHeader added in v0.0.2

func NewHeader(spec specification.Header) Header

type HeaderParameter added in v0.0.2

type HeaderParameter struct {
	Name          string
	FieldName     string
	FieldTypeName string
	Type          Formatter
	Required      bool
	// contains filtered or unexported fields
}

func NewHeaderParameter added in v0.0.2

func NewHeaderParameter(s *specification.HeaderParameter) (zero HeaderParameter, _ error)

type IntType added in v0.0.2

type IntType struct {
	BitSize int
}

func (IntType) Render added in v0.0.11

func (i IntType) Render() (string, error)

func (IntType) RenderFormat added in v0.0.10

func (i IntType) RenderFormat(from Render) (string, error)

func (IntType) RenderParser added in v0.0.10

func (i IntType) RenderParser(from, to Render, mkErr ErrorRender) (string, error)

type Operation added in v0.0.2

type Operation struct {
	Operation *specification.Operation

	Name            string
	HandlerTypeName string

	PathParameters   []Parameter[*specification.PathParameter]
	QueryParameters  []Parameter[specification.QueryParameter]
	HeaderParameters []Parameter[*specification.HeaderParameter]

	Handler *HandlerOld // Deprecated
}

func NewOperation added in v0.0.2

func NewOperation(operation *specification.Operation) *Operation

type Optional added in v0.0.2

type Optional[T any] struct {
	Value T
	OK    bool
}

func (*Optional[T]) Set added in v0.0.2

func (o *Optional[T]) Set(v T)

type Options added in v0.0.2

type Options struct {
	DoNotEdit   bool
	PackageName string
}

type Param

type Param struct {
	Field  Templater
	Parser Templater
}

type Parameter added in v0.0.2

type Parameter[T interface {
	*specification.PathParameter | specification.QueryParameter | *specification.HeaderParameter
}] struct {
	Spec T

	FieldName string
}

type Parser added in v0.0.10

type Parser interface {
	RenderParser(from, to Render, mkErr ErrorRender) (string, error)
}

Parser parses 'string' to '<type>'.

type ParserFunc added in v0.0.10

type ParserFunc func(from, to Render, mkErr ErrorRender) (string, error)

func (ParserFunc) RenderParser added in v0.0.10

func (p ParserFunc) RenderParser(from, to Render, mkErr ErrorRender) (string, error)

type PathDir added in v0.0.2

type PathDir struct {
	V     string
	Param *PathParameter
}

func (PathDir) FormatTemplater added in v0.0.2

func (p PathDir) FormatTemplater(varName string) Templater

type PathItem

type PathItem struct {
	PathItem   *specification.PathItem
	Operations []*Operation
}

type PathParameter

type PathParameter struct {
	Name          string
	FieldName     string
	FieldTypeName string
	Type          Formatter
	// contains filtered or unexported fields
}

func NewPathParameter

func NewPathParameter(s *specification.PathParameter) (zero PathParameter, _ error)

type PathParameters added in v0.0.2

type PathParameters []PathParameter

func (PathParameters) Get added in v0.0.2

func (s PathParameters) Get(name string) (zero PathParameter, _ error)

type QueryParameter added in v0.0.2

type QueryParameter struct {
	Name      string
	FieldName string
	Required  bool
	Type      Formatter
	// contains filtered or unexported fields
}

func NewQueryParameter added in v0.0.2

func NewQueryParameter(s specification.QueryParameter) (zero QueryParameter, _ error)

func (QueryParameter) ExecuteFormat added in v0.0.2

func (p QueryParameter) ExecuteFormat(from, to string) (string, error)

type RawTemplate added in v0.0.2

type RawTemplate string

func (RawTemplate) Execute added in v0.0.2

func (t RawTemplate) Execute() (string, error)

func (RawTemplate) String added in v0.0.2

func (t RawTemplate) String() (string, error)

type Ref

type Ref string

func NewRef

func NewRef(ref string) Ref

func (Ref) Render added in v0.0.11

func (r Ref) Render() (string, error)

type Render

type Render interface {
	Render() (string, error)
}

func NewSchema

func NewSchema(spec specification.Schema) (Render, error)

type RenderFunc added in v0.0.10

type RenderFunc func() (string, error)

func (RenderFunc) Render added in v0.0.10

func (r RenderFunc) Render() (string, error)

type Response

type Response struct {
	Name       string
	StatusCode string

	Headers []Header

	Body Optional[any]
	// contains filtered or unexported fields
}

func NewResponse

func NewResponse(handlerName string, response *specification.Response) *Response

type RouterFile added in v0.0.2

type RouterFile struct {
	BasePath         string
	BaseSpecFilename string
	SpecFileExt      string

	Handlers []routerHandler
	Routes   []routeMethod
}

func (RouterFile) Execute added in v0.0.2

func (r RouterFile) Execute() (string, error)

type SchemaComponent added in v0.0.11

type SchemaComponent struct {
	Name string
	Type Render
}

type SliceType added in v0.0.2

type SliceType struct {
	Items Render
}

func (SliceType) Render added in v0.0.11

func (s SliceType) Render() (string, error)

func (SliceType) RenderFormat added in v0.0.11

func (s SliceType) RenderFormat(from Render) (string, error)

type StringRender added in v0.0.10

type StringRender string

func (StringRender) Render added in v0.0.10

func (s StringRender) Render() (string, error)

type StringType

type StringType struct{}

func (StringType) Render added in v0.0.11

func (s StringType) Render() (string, error)

func (StringType) RenderFormat added in v0.0.11

func (_ StringType) RenderFormat(from Render) (string, error)

type StructureField added in v0.0.11

type StructureField struct {
	Comment string
	Name    string
	Type    Render
	Tags    []StructureFieldTag
}

func NewStructureField added in v0.0.11

func NewStructureField(s specification.SchemaProperty) (zero StructureField, _ error)

type StructureFieldTag added in v0.0.11

type StructureFieldTag struct {
	Key    string
	Values []string
}

type StructureType added in v0.0.11

type StructureType struct {
	Fields []StructureField
}

func NewStructureType added in v0.0.11

func NewStructureType(s specification.Schema) (zero StructureType, _ error)

func (StructureType) Render added in v0.0.11

func (s StructureType) Render() (string, error)

type TData added in v0.0.2

type TData map[string]any

type Template added in v0.0.2

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

func InitTemplate added in v0.0.2

func InitTemplate(name, text string) *Template

func (*Template) Execute added in v0.0.2

func (t *Template) Execute(data interface{}) (string, error)

func (*Template) ExecuteTemplate added in v0.0.2

func (t *Template) ExecuteTemplate(name string, data interface{}) (string, error)

type Templater added in v0.0.2

type Templater interface {
	// Execute() (string, error)
	String() (string, error)
}

func AssignTemplate added in v0.0.2

func AssignTemplate(from, to Templater, isNew bool) Templater

func OldTemplater added in v0.0.2

func OldTemplater(t interface{ Execute() (string, error) }) Templater

func TemplateData added in v0.0.2

func TemplateData(name string, data interface{}) Templater

func ToSliceStrings added in v0.0.2

func ToSliceStrings(t Templater) Templater

type TemplaterFunc added in v0.0.10

type TemplaterFunc func() (string, error)

func (TemplaterFunc) String added in v0.0.10

func (t TemplaterFunc) String() (string, error)

type Templaters added in v0.0.2

type Templaters []Templater

func (Templaters) Execute added in v0.0.2

func (t Templaters) Execute() (string, error)

func (Templaters) ExecuteArgs added in v0.0.2

func (t Templaters) ExecuteArgs(args ...any) (string, error)

Jump to

Keyboard shortcuts

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