compiler

package
v0.0.0-...-7d7180d Latest Latest
Warning

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

Go to latest
Published: May 24, 2025 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Overview

Package compiler implements the TypeScript compiler.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SortAndDeduplicateDiagnostics

func SortAndDeduplicateDiagnostics(diagnostics []*ast.Diagnostic) []*ast.Diagnostic

Types

type CheckerPool

type CheckerPool interface {
	GetChecker(ctx context.Context) (*checker.Checker, func())
	GetCheckerForFile(ctx context.Context, file *ast.SourceFile) (*checker.Checker, func())
	GetAllCheckers(ctx context.Context) ([]*checker.Checker, func())
	Files(checker *checker.Checker) iter.Seq[*ast.SourceFile]
}

type CompilerHost

type CompilerHost interface {
	FS() vfs.FS
	DefaultLibraryPath() string
	GetCurrentDirectory() string
	NewLine() string
	Trace(msg string)
	GetSourceFile(fileName string, path tspath.Path, languageVersion core.ScriptTarget) *ast.SourceFile
}

func NewCachedFSCompilerHost

func NewCachedFSCompilerHost(options *core.CompilerOptions, currentDirectory string, fs vfs.FS, defaultLibraryPath string) CompilerHost

func NewCompilerHost

func NewCompilerHost(options *core.CompilerOptions, currentDirectory string, fs vfs.FS, defaultLibraryPath string) CompilerHost

type EmitOptions

type EmitOptions struct {
	TargetSourceFile *ast.SourceFile // Single file to emit. If `nil`, emits all files
	// contains filtered or unexported fields
}

type EmitResult

type EmitResult struct {
	EmitSkipped  bool
	Diagnostics  []*ast.Diagnostic      // Contains declaration emit diagnostics
	EmittedFiles []string               // Array of files the compiler wrote to disk
	SourceMaps   []*SourceMapEmitResult // Array of sourceMapData if compiler emitted sourcemaps
}

type FileIncludeKind

type FileIncludeKind int
const (
	FileIncludeKindRootFile FileIncludeKind = iota
	FileIncludeKindSourceFromProjectReference
	FileIncludeKindOutputFromProjectReference
	FileIncludeKindImport
	FileIncludeKindReferenceFile
	FileIncludeKindTypeReferenceDirective
	FileIncludeKindLibFile
	FileIncludeKindLibReferenceDirective
	FileIncludeKindAutomaticTypeDirectiveFile
)

type FileIncludeReason

type FileIncludeReason struct {
	Kind  FileIncludeKind
	Index int
}

type FileInfo

type FileInfo struct {
	Name string
	Size int64
}

type Program

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

func NewProgram

func NewProgram(options ProgramOptions) *Program

func NewProgramFromParsedCommandLine

func NewProgramFromParsedCommandLine(config *tsoptions.ParsedCommandLine, host CompilerHost) *Program

func (*Program) BindSourceFiles

func (p *Program) BindSourceFiles()

func (*Program) CheckSourceFiles

func (p *Program) CheckSourceFiles(ctx context.Context)

func (*Program) CommonSourceDirectory

func (p *Program) CommonSourceDirectory() string

func (*Program) Emit

func (p *Program) Emit(options EmitOptions) *EmitResult

func (*Program) GetBindDiagnostics

func (p *Program) GetBindDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic

func (*Program) GetCompilerOptions

func (p *Program) GetCompilerOptions() *core.CompilerOptions

func (*Program) GetConfigFileParsingDiagnostics

func (p *Program) GetConfigFileParsingDiagnostics() []*ast.Diagnostic

func (*Program) GetEmitModuleFormatOfFile

func (p *Program) GetEmitModuleFormatOfFile(sourceFile *ast.SourceFile) core.ModuleKind

func (*Program) GetEmitModuleFormatOfFileWorker

func (p *Program) GetEmitModuleFormatOfFileWorker(sourceFile *ast.SourceFile, options *core.CompilerOptions) core.ModuleKind

func (*Program) GetGlobalDiagnostics

func (p *Program) GetGlobalDiagnostics(ctx context.Context) []*ast.Diagnostic

func (*Program) GetImpliedNodeFormatForEmit

func (p *Program) GetImpliedNodeFormatForEmit(sourceFile *ast.SourceFile) core.ResolutionMode

func (*Program) GetImportHelpersImportSpecifier

func (p *Program) GetImportHelpersImportSpecifier(path tspath.Path) *ast.Node

func (*Program) GetJSXRuntimeImportSpecifier

func (p *Program) GetJSXRuntimeImportSpecifier(path tspath.Path) (moduleReference string, specifier *ast.Node)

func (*Program) GetOptionsDiagnostics

func (p *Program) GetOptionsDiagnostics(ctx context.Context) []*ast.Diagnostic

func (*Program) GetResolvedModule

func (p *Program) GetResolvedModule(file *ast.SourceFile, moduleReference string) *ast.SourceFile

func (*Program) GetResolvedModules

func (p *Program) GetResolvedModules() map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule]

func (*Program) GetSemanticDiagnostics

func (p *Program) GetSemanticDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic

func (*Program) GetSourceFile

func (p *Program) GetSourceFile(filename string) *ast.SourceFile

func (*Program) GetSourceFileByPath

func (p *Program) GetSourceFileByPath(path tspath.Path) *ast.SourceFile

func (*Program) GetSourceFileMetaData

func (p *Program) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData

func (*Program) GetSourceFiles

func (p *Program) GetSourceFiles() []*ast.SourceFile

func (*Program) GetSyntacticDiagnostics

func (p *Program) GetSyntacticDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic

func (*Program) GetTypeChecker

func (p *Program) GetTypeChecker(ctx context.Context) (*checker.Checker, func())

Return the type checker associated with the program.

func (*Program) GetTypeCheckerForFile

func (p *Program) GetTypeCheckerForFile(ctx context.Context, file *ast.SourceFile) (*checker.Checker, func())

Return a checker for the given file. We may have multiple checkers in concurrent scenarios and this method returns the checker that was tasked with checking the file. Note that it isn't possible to mix types obtained from different checkers, so only non-type data (such as diagnostics or string representations of types) should be obtained from checkers returned by this method.

func (*Program) GetTypeCheckers

func (p *Program) GetTypeCheckers(ctx context.Context) ([]*checker.Checker, func())

func (*Program) Host

func (p *Program) Host() CompilerHost

func (*Program) IdentifierCount

func (p *Program) IdentifierCount() int

func (*Program) InstantiationCount

func (p *Program) InstantiationCount() int

func (*Program) LineCount

func (p *Program) LineCount() int

func (*Program) Options

func (p *Program) Options() *core.CompilerOptions

func (*Program) SourceFiles

func (p *Program) SourceFiles() []*ast.SourceFile

func (*Program) SymbolCount

func (p *Program) SymbolCount() int

func (*Program) TypeCount

func (p *Program) TypeCount() int

func (*Program) UnsupportedExtensions

func (p *Program) UnsupportedExtensions() []string

UnsupportedExtensions returns a list of all present "unsupported" extensions, e.g. extensions that are not yet supported by the port.

func (*Program) UpdateProgram

func (p *Program) UpdateProgram(changedFilePath tspath.Path) (*Program, bool)

Return an updated program for which it is known that only the file with the given path has changed. In addition to a new program, return a boolean indicating whether the data of the old program was reused.

type ProgramOptions

type ProgramOptions struct {
	ConfigFileName               string
	RootFiles                    []string
	Host                         CompilerHost
	Options                      *core.CompilerOptions
	SingleThreaded               core.Tristate
	ProjectReference             []core.ProjectReference
	ConfigFileParsingDiagnostics []*ast.Diagnostic
	CreateCheckerPool            func(*Program) CheckerPool
}

type SourceMapEmitResult

type SourceMapEmitResult struct {
	InputSourceFileNames []string // Input source file (which one can use on program to get the file), 1:1 mapping with the sourceMap.sources list
	SourceMap            *sourcemap.RawSourceMap
	GeneratedFile        string
}

Jump to

Keyboard shortcuts

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