generator

package
v0.0.17 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

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

Variables

This section is empty.

Functions

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 NewCustomType added in v0.0.8

func NewCustomType(s string) (CustomType, Imports)

func NewHeaderParameter added in v0.0.2

func NewHeaderParameter(sr specification.Ref[specification.HeaderParameter]) (zero *HeaderParameter, _ Imports, _ error)

func NewOperation added in v0.0.2

func NewOperation(s *specification.Operation, components specification.Components) (zero *Operation, _ Imports, _ error)

func NewOperationParams added in v0.0.14

func NewOperationParams(params specification.OperationParameters) (zero OperationParams, _ Imports, _ error)

func NewQueryParameter added in v0.0.2

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

func NewStructureField added in v0.0.11

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

func NewStructureType added in v0.0.11

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

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 {
	Imports []Import

	Operations []ClientOperation

	IsDecodeJSONFunc bool
}

func NewClient added in v0.0.2

func NewClient(s *specification.Spec, ops []*Operation) Client

type ClientHeader added in v0.0.14

type ClientHeader struct {
	Name      string
	FieldName string
	Required  bool
}

type ClientOperation added in v0.0.14

type ClientOperation struct {
	*Operation

	RequestVarName string
	IsRequestBody  bool

	Headers []ClientHeader
}

func NewClientOperation added in v0.0.14

func NewClientOperation(o *Operation) ClientOperation

func (ClientOperation) PathFormat added in v0.0.14

func (c ClientOperation) PathFormat() (Renders, error)

type Components

type Components struct {
	Imports Imports

	Schemas []SchemaComponent
}

func NewComponents

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

type CookieParameter added in v0.0.14

type CookieParameter struct {
	specification.CookieParameter
}

type CustomType added in v0.0.5

type CustomType string

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 BasePath added in v0.0.14

func BasePath(basePath string) GenOption

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

func SpecFilename added in v0.0.14

func SpecFilename(specFilename string) GenOption

type Generator added in v0.0.2

type Generator struct {
	Options GeneratorOptions

	Spec *specification.Spec

	Imports    Imports
	Operations []*Operation
	Paths      []*PathItem

	Router Router
	Client Client
}

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() GoFile

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 GeneratorOptions added in v0.0.14

type GeneratorOptions struct {
	DoNotEdit    bool
	PackageName  string
	BasePath     string
	SpecFilename string
}

type GoFile

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

func (GoFile) Render added in v0.0.11

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

type Handler

type Handler struct {
	Imports Imports

	Name       OperationName
	Method     specification.HTTPMethodTitle
	HTTPMethod specification.HTTPMethod
	Path       specification.PathOld2

	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        OperationName
	Description string
	Summary     string

	BasePathPrefix string

	CanParseError bool

	ResponserInterfaceName string

	IsJWT bool

	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.HeaderOld

	FieldName string
	Key       string
}

func NewHeader added in v0.0.2

func NewHeader(spec specification.HeaderOld) 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
}

type Import added in v0.0.14

type Import string

type Imports added in v0.0.14

type Imports []Import

func NewImportsS added in v0.0.14

func NewImportsS(ss ...string) Imports

func NewParameterSchema added in v0.0.11

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

func (Imports) AppendS added in v0.0.14

func (i Imports) AppendS(s string) Imports

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 {
	*specification.Operation

	Name OperationName
	Path specification.PathOld2

	APIHandlerFieldName string
	HandlerTypeName     string

	RequestTypeName  string
	ResponseTypeName string

	Params OperationParams

	DefaultResponse Optional[*Response]
	Responses       []*Response
}

type OperationName added in v0.0.2

type OperationName string

func NewOperationName added in v0.0.14

func NewOperationName(s *specification.Operation) OperationName

func OperationNameOld added in v0.0.14

func OperationNameOld(operationID string, path specification.PathOld2, method specification.HTTPMethodTitle) OperationName

type OperationOld added in v0.0.14

type OperationOld struct {
	Operation *specification.Operation

	Name            OperationName
	HandlerTypeName string

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

	Handler *HandlerOld // Deprecated
}

func NewOperationOld added in v0.0.14

func NewOperationOld(operation *specification.Operation) *OperationOld

type OperationParams added in v0.0.14

type Optional added in v0.0.2

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

func NewOptional added in v0.0.14

func NewOptional[T any](v T) Optional[T]

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

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

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 {
	*specification.PathItem
	Operations []*Operation
}

type PathParameter

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

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 (QueryParameter) ExecuteFormat added in v0.0.2

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

type QuotedRender added in v0.0.14

type QuotedRender string

func (QuotedRender) Render added in v0.0.14

func (s QuotedRender) Render() (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)
}

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 Renders added in v0.0.14

type Renders []Render

func (Renders) Render added in v0.0.14

func (r Renders) 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 OperationName, response *specification.ResponseOld) *Response

type Route

type Route struct {
	Name     string
	BasePath string
	Prefix   string

	PrefixPathItems []*RoutePathItem
	Variable        *RoutePathItem
	Routes          []*Route

	VariableRoute *Route
	// contains filtered or unexported fields
}

func (*Route) Add added in v0.0.14

func (r *Route) Add(pi *RouterPathItem)

func (*Route) GetRoutes added in v0.0.14

func (r *Route) GetRoutes() []*Route

type RoutePathItem added in v0.0.14

type RoutePathItem struct {
	*RouterPathItem
	Prefix string
}

type Router

type Router struct {
	BasePath     string
	SpecFilename string
	SpecFileExt  string

	Imports    Imports
	PathItems  []*RouterPathItem
	Operations []*Operation
	Routes     []*Route

	JWT bool
}

func NewRouter

func NewRouter(s *specification.Spec, ps []*PathItem, os []*Operation, opt GeneratorOptions) Router

type RouterPathItem added in v0.0.14

type RouterPathItem struct {
	*PathItem

	JWT bool
}

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
}

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 (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