sourcecheck

package
v0.11.0-a.2 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckLibraryFile

func CheckLibraryFile(file *syntax.LibraryFile, opts Options) error

CheckLibraryFile checks every exported composite body in file.

func CheckUBLibrary

func CheckUBLibrary(source *resolve.Source, opts Options) error

CheckUBLibrary checks every exported composite body in source.

Types

type ImportAnalysis

type ImportAnalysis struct {
	Top                  []resolve.Resolution
	Libraries            map[string]*runtime.Library
	LibraryConfigSchemas map[string]runtime.LibraryConfigSchema
	GoImports            map[string]string
	GoModules            map[string]string
	UBImports            map[string]string
	UBPackages           map[string][]byte
}

ImportAnalysis is the resolved import data shared by source checks, compile, and graph printing.

func AnalyzeImports

func AnalyzeImports(
	refs map[string]resolve.ImportRef,
	opts ImportAnalysisOptions,
) (*ImportAnalysis, error)

AnalyzeImports resolves refs once and builds the data each caller needs.

type ImportAnalysisOptions

type ImportAnalysisOptions struct {
	ProjectDir              string
	Source                  *resolve.Source
	Resolver                resolve.Resolver
	Versions                map[string]string
	SchemaCache             *SchemaCache
	WarnOut                 io.Writer
	Mode                    Mode
	StackName               string
	GeneratePackages        bool
	ValidateCompositeBodies bool
	Body                    *syntax.FactoryBody
}

ImportAnalysisOptions configures AnalyzeImports.

type Mode

type Mode int

Mode controls whether remote imports may be fetched.

const (
	// ModeFetch uses the resolver normally.
	ModeFetch Mode = iota
	// ModeNoFetch treats uncached remote imports as opaque libraries.
	ModeNoFetch
)

type Options

type Options struct {
	ProjectDir  string
	Source      *resolve.Source
	Resolver    resolve.Resolver
	Versions    map[string]string
	SchemaCache *SchemaCache
	WarnOut     io.Writer
	Mode        Mode
}

Options configures source checks.

type Result

type Result struct {
	Libraries            map[string]*runtime.Library
	LibraryConfigSchemas map[string]runtime.LibraryConfigSchema
	DAG                  *runtime.DAG
}

Result is the source-check result for a factory or composite body.

func CheckFactoryBody

func CheckFactoryBody(body syntax.FactoryBody, opts Options) (*Result, error)

CheckFactoryBody resolves imports and runs compile-time checks for body.

type SchemaCache

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

SchemaCache memoizes Go library schema reads by source path.

func NewSchemaCache

func NewSchemaCache(extra ...goschema.ModuleRoot) *SchemaCache

NewSchemaCache returns a cache that reads Go source with extra module roots.

func NewSchemaCacheWithReader

func NewSchemaCacheWithReader(
	read func(sourcePath string) (*runtime.LibrarySchema, []string, error),
) *SchemaCache

NewSchemaCacheWithReader returns a cache that reads Go schemas through read.

func NewSchemaCacheWithReaders added in v0.10.0

func NewSchemaCacheWithReaders(
	read func(sourcePath string) (*runtime.LibrarySchema, []string, error),
	readConfiguration func(sourcePath string) (*runtime.LibrarySchema, []string, error),
) *SchemaCache

NewSchemaCacheWithReaders returns a cache with separate readers for full libraries and config-schema packages.

func (*SchemaCache) Read

func (c *SchemaCache) Read(sourcePath string) (*runtime.LibrarySchema, []string, error)

Read returns the schema and warnings for sourcePath, reading it once.

func (*SchemaCache) ReadLibraryConfiguration added in v0.10.0

func (c *SchemaCache) ReadLibraryConfiguration(
	sourcePath string,
) (*runtime.LibrarySchema, []string, error)

ReadLibraryConfiguration returns the config schema for sourcePath.

Jump to

Keyboard shortcuts

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