di

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: May 7, 2024 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrContainerNotFound = errors.New("container not found")
	ErrUnexpectedType    = errors.New("unexpected type")
	ErrNotSupported      = errors.New("not supported")
	ErrParsing           = errors.New("parsing error")
	ErrFileAlreadyExists = errors.New("file already exists")
	ErrInvalidDefinition = errors.New("invalid definition")
)

Functions

This section is empty.

Types

type ContainerDefinition

type ContainerDefinition struct {
	Name     string
	Type     TypeDefinition
	Services []*ServiceDefinition
}

func (ContainerDefinition) Title

func (c ContainerDefinition) Title() string

type FactoriesManager added in v0.1.0

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

func NewFactoriesManager added in v0.1.0

func NewFactoriesManager(
	container *RootContainerDefinition,
	workDir string,
	params GenerationParameters,
) *FactoriesManager

func (*FactoriesManager) Generate added in v0.1.0

func (m *FactoriesManager) Generate() ([]*File, error)

type FactoryFile

type FactoryFile struct {
	Imports  map[string]*ImportDefinition
	Services []string
}

func ParseFactoryFromSource

func ParseFactoryFromSource(source string) (*FactoryFile, error)

type File

type File struct {
	Package PackageType
	Name    string
	Content []byte
}

func GenerateDefinitionsContainerFile added in v0.1.0

func GenerateDefinitionsContainerFile() (*File, error)

func GenerateFiles

func GenerateFiles(container *RootContainerDefinition, params GenerationParameters) ([]*File, error)

func (*File) Path added in v0.1.0

func (f *File) Path() string

type FileBuilder

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

func NewFileBuilder

func NewFileBuilder(filename, packageName string, packageType PackageType) *FileBuilder

func (*FileBuilder) AddImport

func (b *FileBuilder) AddImport(imp string)

func (*FileBuilder) GetFile

func (b *FileBuilder) GetFile() *File

func (*FileBuilder) IsEmpty

func (b *FileBuilder) IsEmpty() bool

func (*FileBuilder) Write

func (b *FileBuilder) Write(p []byte) (n int, err error)

func (*FileBuilder) WriteString

func (b *FileBuilder) WriteString(s string) (n int, err error)

type GenerationParameters

type GenerationParameters struct {
	RootPackage string
}

type Generator

type Generator struct {
	BaseDir    string
	ModulePath string
	Logger     Logger

	Version   string
	BuildTime string
}

func (*Generator) Generate

func (g *Generator) Generate() error

func (*Generator) Initialize

func (g *Generator) Initialize() error

func (*Generator) RootPackage

func (g *Generator) RootPackage() string

type ImportDefinition

type ImportDefinition struct {
	ID   string
	Name string
	Path string
}

func (ImportDefinition) String

func (d ImportDefinition) String() string

type InternalContainerGenerator added in v0.1.0

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

func NewInternalContainerGenerator added in v0.1.0

func NewInternalContainerGenerator(container *RootContainerDefinition, params GenerationParameters) *InternalContainerGenerator

func (*InternalContainerGenerator) Generate added in v0.1.0

func (g *InternalContainerGenerator) Generate() (*File, error)

type Logger

type Logger interface {
	Info(a ...interface{})
	Success(a ...interface{})
	Warning(a ...interface{})
}

type PackageType

type PackageType int
const (
	PublicPackage PackageType
	InternalPackage
	DefinitionsPackage
	FactoriesPackage
	LookupPackage
)

type PublicContainerGenerator

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

func NewPublicContainerGenerator

func NewPublicContainerGenerator(
	container *RootContainerDefinition,
	params GenerationParameters,
) *PublicContainerGenerator

func (*PublicContainerGenerator) Generate

func (g *PublicContainerGenerator) Generate() (*File, error)

type RootContainerDefinition

type RootContainerDefinition struct {
	Name       string
	Package    string
	Imports    map[string]*ImportDefinition
	Services   []*ServiceDefinition
	Containers []*ContainerDefinition
}

func ParseContainerFromSource

func ParseContainerFromSource(source string) (*RootContainerDefinition, error)

func ParseDefinitionsFromFile added in v0.1.0

func ParseDefinitionsFromFile(filename string) (*RootContainerDefinition, error)

func (RootContainerDefinition) GetImport

type ServiceDefinition

type ServiceDefinition struct {
	Prefix string
	Name   string
	Type   TypeDefinition

	FactoryFileName string // "factory-file" tag
	HasSetter       bool   // "set" tag - will generate setters for internal and public containers
	HasCloser       bool   // "close" tag - generate closer method call
	IsRequired      bool   // "required" tag - will generate argument for public container constructor
	IsPublic        bool   // "public" tag - will generate getter for public container
	IsExternal      bool   // "external" tag - no definition, panic if empty, force public setter
}

func (ServiceDefinition) Title

func (s ServiceDefinition) Title() string

type Tags

type Tags struct {
	Options         []string
	FactoryFilename string
}

type TypeDefinition

type TypeDefinition struct {
	IsPointer bool
	Package   string
	Name      string
}

func (TypeDefinition) IsBasicType added in v0.1.1

func (d TypeDefinition) IsBasicType() bool

func (TypeDefinition) IsDuration added in v0.1.1

func (d TypeDefinition) IsDuration() bool

func (TypeDefinition) IsTime added in v0.1.1

func (d TypeDefinition) IsTime() bool

func (TypeDefinition) IsURL added in v0.1.1

func (d TypeDefinition) IsURL() bool

func (TypeDefinition) String

func (d TypeDefinition) String() string

func (TypeDefinition) ZeroComparison added in v0.1.1

func (d TypeDefinition) ZeroComparison() string

type Writer

type Writer struct {
	WorkDir   string
	Overwrite bool
	Heading   []byte
}

func NewWriter

func NewWriter(workDir string) *Writer

func (*Writer) WriteFile

func (w *Writer) WriteFile(file *File) error

Jump to

Keyboard shortcuts

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