importer

package
v0.157.0 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2020 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StringTypeName = "string"
	ObjectTypeName = "object"
	ArrayTypeName  = "array"
)
View Source
const (
	MinOnly maxType = iota
	MaxSpecified
	OpenEnded
)
View Source
const BlankLine = "&& !!"
View Source
const CommentLineLength = 80
View Source
const PopIndent = "&& <<"
View Source
const PushIndent = "&& >>"

Variables

View Source
var Formats = []Format{
	Grammar,
	OpenAPI3,
	Swagger,
	XSD,
}
View Source
var Grammar = Format{
	Name:      "grammar",
	Signature: "",
	FileExt:   []string{".g"},
}
View Source
var OpenAPI3 = Format{
	Name:      "openapi3",
	Signature: `openapi:`,
	FileExt:   []string{".yaml", ".json", ".yml"},
}

OpenAPI3 is identified by the openapi header. - The value MUST be "3.x.x". For more details refer to https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#oasDocument

View Source
var SYSL = Format{
	Name:      "sysl",
	Signature: "",
	FileExt:   []string{".sysl"},
}
View Source
var StringAlias = &SyslBuiltIn{name: StringTypeName}
View Source
var Swagger = Format{
	Name:      "swagger",
	Signature: `swagger:`,
	FileExt:   []string{".yaml", ".json", ".yml"},
}

Swagger only has 2.0.0 as the single valid format - The value MUST be "2.0". For more details refer to https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#swaggerObject

View Source
var XSD = Format{
	Name:      "xsd",
	Signature: ``,
	FileExt:   []string{".xsd", ".xml"},
}

Functions

func IsBuiltIn

func IsBuiltIn(name string) bool

func NewOpenAPILoader added in v0.136.0

func NewOpenAPILoader(logger *logrus.Logger, fs afero.Fs) *openapi3.SwaggerLoader

Types

type Alias

type Alias struct {
	Target Type
	Attrs  []string
	// contains filtered or unexported fields
}

!alias type without the EXTERNAL_ prefix

func (*Alias) Name

func (s *Alias) Name() string

type Array

type Array struct {
	Items Type
	Attrs []string
	// contains filtered or unexported fields
}

func (*Array) Name

func (s *Array) Name() string

type Endpoint

type Endpoint struct {
	Path        string
	Description string

	Params Parameters

	Responses []Response
}

type Enum

type Enum struct {
	Attrs []string
	// contains filtered or unexported fields
}

func (*Enum) Name

func (s *Enum) Name() string

type ExternalAlias

type ExternalAlias struct {
	Target Type
	Attrs  []string
	// contains filtered or unexported fields
}

func (*ExternalAlias) Name

func (s *ExternalAlias) Name() string

type Field

type Field struct {
	Name       string
	Type       Type
	Optional   bool
	Attributes []string
	SizeSpec   *sizeSpec
}

type FieldList

type FieldList []Field

type Format added in v0.124.0

type Format struct {
	Name      string   // Name of the format
	Signature string   // This is a string which can be used to uniquely identify the format
	FileExt   []string // The file extension of the format
}

Format represents a format that can be imported into Sysl

func GuessFileType added in v0.124.0

func GuessFileType(filename string, data []byte, validFormats []Format) (*Format, error)

GuessFileType detects the file based on the extension and the file itself. It returns the detected format if successful, or an error, if it has failed. It first tries to match the file extensions before checking the files for signatures such as swagger: "2.0"

type Func

type Func func(args OutputData, text string, logger *logrus.Logger) (out string, err error)

type ImportedBuiltInAlias

type ImportedBuiltInAlias struct {
	Target Type
	// contains filtered or unexported fields
}

func (*ImportedBuiltInAlias) Name

func (s *ImportedBuiltInAlias) Name() string

type Importer added in v0.124.0

type Importer interface {
	// Load takes in a string in a format supported by an the importer
	// It returns the converted Sysl as a string
	Load(file string) (string, error)
	// WithAppName allows the exported Sysl application name to be specified
	WithAppName(appName string) Importer
	// WithPackage allows the exported Sysl package attribute to be specified
	WithPackage(packageName string) Importer
}

Importer is an interface implemented by all sysl importers

func Factory added in v0.124.0

func Factory(filePath string, file []byte, logger *logrus.Logger) (Importer, error)

Factory takes in an absolute filePath and a file and returns an importer from the detected file type

func NewOpenAPIV3Importer added in v0.136.0

func NewOpenAPIV3Importer(logger *logrus.Logger, fs afero.Fs) Importer

type IndentWriter

type IndentWriter struct {
	io.Writer
	// contains filtered or unexported fields
}

func NewIndentWriter

func NewIndentWriter(text string, out io.Writer) *IndentWriter

func (*IndentWriter) CurrentIndentLen

func (i *IndentWriter) CurrentIndentLen() int

func (*IndentWriter) Pop

func (i *IndentWriter) Pop()

func (*IndentWriter) Push

func (i *IndentWriter) Push()

func (*IndentWriter) Write

func (i *IndentWriter) Write() error

type MethodEndpoints

type MethodEndpoints struct {
	Method    string // one of GET, POST, PUT, OPTION, etc
	Endpoints []Endpoint
}

type OpenAPI2Importer added in v0.124.0

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

func MakeOpenAPI2Importer added in v0.124.0

func MakeOpenAPI2Importer(logger *logrus.Logger, basePath string, filePath string) *OpenAPI2Importer

func (*OpenAPI2Importer) Load added in v0.124.0

func (l *OpenAPI2Importer) Load(oas2spec string) (string, error)

func (*OpenAPI2Importer) WithAppName added in v0.124.0

func (l *OpenAPI2Importer) WithAppName(appName string) Importer

Set the AppName of the imported app

func (*OpenAPI2Importer) WithPackage added in v0.124.0

func (l *OpenAPI2Importer) WithPackage(pkg string) Importer

Set the package attribute of the imported app

type OutputData

type OutputData struct {
	AppName     string
	Package     string
	SwaggerRoot string
	Mode        string
}

type Param

type Param struct {
	Field
	In string
}

type Parameters

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

func (*Parameters) Add

func (p *Parameters) Add(param Param)

func (Parameters) BodyParams

func (p Parameters) BodyParams() []Param

func (*Parameters) Extend added in v0.5.0

func (p *Parameters) Extend(others Parameters) Parameters

func (Parameters) HeaderParams

func (p Parameters) HeaderParams() []Param

func (Parameters) PathParams

func (p Parameters) PathParams() []Param

func (Parameters) QueryParams

func (p Parameters) QueryParams() []Param

type Response

type Response struct {
	Text string
	Type Type
}

Response is either going to be freetext or a type

type StandardType

type StandardType struct {
	Properties FieldList
	Attributes []string
	// contains filtered or unexported fields
}

func (*StandardType) Name

func (s *StandardType) Name() string

type SyslBuiltIn

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

func (*SyslBuiltIn) Name

func (s *SyslBuiltIn) Name() string

type SyslInfo

type SyslInfo struct {
	OutputData

	Title       string
	Description string
	OtherFields []string // Ordered key, val pair
}

type Type

type Type interface {
	Name() string
}

func NewStringAlias

func NewStringAlias(name string, attrs ...string) Type

type TypeList

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

func (*TypeList) Add

func (t *TypeList) Add(item ...Type)

func (*TypeList) AddAndRet added in v0.5.0

func (t *TypeList) AddAndRet(item Type) Type

func (TypeList) Find

func (t TypeList) Find(name string) (Type, bool)

func (TypeList) Items

func (t TypeList) Items() []Type

func (TypeList) Sort

func (t TypeList) Sort()

type Union

type Union struct {
	Options FieldList
	// contains filtered or unexported fields
}

func (*Union) Name

func (u *Union) Name() string

type XSDImporter added in v0.124.0

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

func MakeXSDImporter added in v0.124.0

func MakeXSDImporter(logger *logrus.Logger) *XSDImporter

func (*XSDImporter) Load added in v0.124.0

func (i *XSDImporter) Load(input string) (string, error)

func (*XSDImporter) WithAppName added in v0.124.0

func (i *XSDImporter) WithAppName(appName string) Importer

Set the AppName of the imported app

func (*XSDImporter) WithPackage added in v0.124.0

func (i *XSDImporter) WithPackage(pkg string) Importer

Set the package attribute of the imported app

Jump to

Keyboard shortcuts

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