Documentation
¶
Overview ¶
Package compiler implements the TypeScript compiler.
Index ¶
- func SortAndDeduplicateDiagnostics(diagnostics []*ast.Diagnostic) []*ast.Diagnostic
- type CheckerPool
- type CompilerHost
- type EmitHost
- type EmitOptions
- type EmitResult
- type FileIncludeKind
- type FileIncludeReason
- type FileInfo
- type Program
- func (p *Program) BindSourceFiles()
- func (p *Program) CheckSourceFiles(ctx context.Context)
- func (p *Program) CommonSourceDirectory() string
- func (p *Program) Emit(options EmitOptions) *EmitResult
- func (p *Program) FileExists(path string) bool
- func (p *Program) ForEachResolvedProjectReference(fn func(path tspath.Path, config *tsoptions.ParsedCommandLine))
- func (p *Program) GetBindDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetConfigFileParsingDiagnostics() []*ast.Diagnostic
- func (p *Program) GetCurrentDirectory() string
- func (p *Program) GetDeclarationDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetDefaultResolutionModeForFile(sourceFile ast.HasFileName) core.ResolutionMode
- func (p *Program) GetEmitModuleFormatOfFile(sourceFile ast.HasFileName) core.ModuleKind
- func (p *Program) GetEmitSyntaxForUsageLocation(sourceFile ast.HasFileName, location *ast.StringLiteralLike) core.ResolutionMode
- func (p *Program) GetGlobalDiagnostics(ctx context.Context) []*ast.Diagnostic
- func (p *Program) GetGlobalTypingsCacheLocation() string
- func (p *Program) GetImpliedNodeFormatForEmit(sourceFile ast.HasFileName) core.ResolutionMode
- func (p *Program) GetImportHelpersImportSpecifier(path tspath.Path) *ast.Node
- func (p *Program) GetJSXRuntimeImportSpecifier(path tspath.Path) (moduleReference string, specifier *ast.Node)
- func (p *Program) GetLibFileFromReference(ref *ast.FileReference) *ast.SourceFile
- func (p *Program) GetModeForUsageLocation(sourceFile ast.HasFileName, location *ast.StringLiteralLike) core.ResolutionMode
- func (p *Program) GetNearestAncestorDirectoryWithPackageJson(dirname string) string
- func (p *Program) GetOptionsDiagnostics(ctx context.Context) []*ast.Diagnostic
- func (p *Program) GetOutputAndProjectReference(path tspath.Path) *tsoptions.OutputDtsAndProjectReference
- func (p *Program) GetPackageJsonInfo(pkgJsonPath string) modulespecifiers.PackageJsonInfo
- func (p *Program) GetRedirectForResolution(file ast.HasFileName) *tsoptions.ParsedCommandLine
- func (p *Program) GetRedirectTargets(path tspath.Path) []string
- func (p *Program) GetResolvedModule(file ast.HasFileName, moduleReference string, mode core.ResolutionMode) *module.ResolvedModule
- func (p *Program) GetResolvedModuleFromModuleSpecifier(file ast.HasFileName, moduleSpecifier *ast.StringLiteralLike) *module.ResolvedModule
- func (p *Program) GetResolvedModules() map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule]
- func (p *Program) GetResolvedProjectReferenceFor(path tspath.Path) (*tsoptions.ParsedCommandLine, bool)
- func (p *Program) GetResolvedTypeReferenceDirectiveFromTypeReferenceDirective(typeRef *ast.FileReference, sourceFile *ast.SourceFile) *module.ResolvedTypeReferenceDirective
- func (p *Program) GetResolvedTypeReferenceDirectives() map[tspath.Path]module.ModeAwareCache[*module.ResolvedTypeReferenceDirective]
- func (p *Program) GetSemanticDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetSourceAndProjectReference(path tspath.Path) *tsoptions.SourceAndProjectReference
- func (p *Program) GetSourceFile(filename string) *ast.SourceFile
- func (p *Program) GetSourceFileByPath(path tspath.Path) *ast.SourceFile
- func (p *Program) GetSourceFileForResolvedModule(fileName string) *ast.SourceFile
- func (p *Program) GetSourceFileFromReference(origin *ast.SourceFile, ref *ast.FileReference) *ast.SourceFile
- func (p *Program) GetSourceFileMetaData(path tspath.Path) ast.SourceFileMetaData
- func (p *Program) GetSourceFiles() []*ast.SourceFile
- func (p *Program) GetSuggestionDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetSyntacticDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetTypeChecker(ctx context.Context) (*checker.Checker, func())
- func (p *Program) GetTypeCheckerForFile(ctx context.Context, file *ast.SourceFile) (*checker.Checker, func())
- func (p *Program) GetTypeCheckers(ctx context.Context) ([]*checker.Checker, func())
- func (p *Program) Host() CompilerHost
- func (p *Program) IdentifierCount() int
- func (p *Program) InstantiationCount() int
- func (p *Program) IsSourceFileDefaultLibrary(path tspath.Path) bool
- func (p *Program) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool
- func (p *Program) IsSourceFromProjectReference(path tspath.Path) bool
- func (p *Program) LineCount() int
- func (p *Program) Options() *core.CompilerOptions
- func (p *Program) SourceFileMayBeEmitted(sourceFile *ast.SourceFile, forceDtsEmit bool) bool
- func (p *Program) SourceFiles() []*ast.SourceFile
- func (p *Program) SymbolCount() int
- func (p *Program) TypeCount() int
- func (p *Program) UnsupportedExtensions() []string
- func (p *Program) UpdateProgram(changedFilePath tspath.Path) (*Program, bool)
- func (p *Program) UseCaseSensitiveFileNames() bool
- type ProgramOptions
- type SourceFileMayBeEmittedHost
- type SourceMapEmitResult
- type WriteFileData
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(opts ast.SourceFileParseOptions) *ast.SourceFile GetResolvedProjectReference(fileName string, path tspath.Path) *tsoptions.ParsedCommandLine }
func NewCachedFSCompilerHost ¶
func NewCachedFSCompilerHost( options *core.CompilerOptions, currentDirectory string, fs vfs.FS, defaultLibraryPath string, extendedConfigCache *collections.SyncMap[tspath.Path, *tsoptions.ExtendedConfigCacheEntry], ) CompilerHost
func NewCompilerHost ¶
func NewCompilerHost( options *core.CompilerOptions, currentDirectory string, fs vfs.FS, defaultLibraryPath string, extendedConfigCache *collections.SyncMap[tspath.Path, *tsoptions.ExtendedConfigCacheEntry], ) CompilerHost
type EmitHost ¶
type EmitHost interface { printer.EmitHost declarations.DeclarationEmitHost Options() *core.CompilerOptions SourceFiles() []*ast.SourceFile UseCaseSensitiveFileNames() bool GetCurrentDirectory() string CommonSourceDirectory() string IsEmitBlocked(file string) bool }
NOTE: EmitHost operations must be thread-safe
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 Program ¶
type Program struct {
// contains filtered or unexported fields
}
func NewProgram ¶
func NewProgram(opts ProgramOptions) *Program
func (*Program) BindSourceFiles ¶
func (p *Program) BindSourceFiles()
func (*Program) CheckSourceFiles ¶
func (*Program) CommonSourceDirectory ¶
func (*Program) Emit ¶
func (p *Program) Emit(options EmitOptions) *EmitResult
func (*Program) FileExists ¶
FileExists implements checker.Program.
func (*Program) ForEachResolvedProjectReference ¶
func (p *Program) ForEachResolvedProjectReference( fn func(path tspath.Path, config *tsoptions.ParsedCommandLine), )
func (*Program) GetBindDiagnostics ¶
func (p *Program) GetBindDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
func (*Program) GetConfigFileParsingDiagnostics ¶
func (p *Program) GetConfigFileParsingDiagnostics() []*ast.Diagnostic
func (*Program) GetCurrentDirectory ¶
GetCurrentDirectory implements checker.Program.
func (*Program) GetDeclarationDiagnostics ¶
func (p *Program) GetDeclarationDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
func (*Program) GetDefaultResolutionModeForFile ¶
func (p *Program) GetDefaultResolutionModeForFile(sourceFile ast.HasFileName) core.ResolutionMode
func (*Program) GetEmitModuleFormatOfFile ¶
func (p *Program) GetEmitModuleFormatOfFile(sourceFile ast.HasFileName) core.ModuleKind
func (*Program) GetEmitSyntaxForUsageLocation ¶
func (p *Program) GetEmitSyntaxForUsageLocation(sourceFile ast.HasFileName, location *ast.StringLiteralLike) core.ResolutionMode
func (*Program) GetGlobalDiagnostics ¶
func (p *Program) GetGlobalDiagnostics(ctx context.Context) []*ast.Diagnostic
func (*Program) GetGlobalTypingsCacheLocation ¶
GetGlobalTypingsCacheLocation implements checker.Program.
func (*Program) GetImpliedNodeFormatForEmit ¶
func (p *Program) GetImpliedNodeFormatForEmit(sourceFile ast.HasFileName) core.ResolutionMode
func (*Program) GetImportHelpersImportSpecifier ¶
func (*Program) GetJSXRuntimeImportSpecifier ¶
func (*Program) GetLibFileFromReference ¶
func (p *Program) GetLibFileFromReference(ref *ast.FileReference) *ast.SourceFile
func (*Program) GetModeForUsageLocation ¶
func (p *Program) GetModeForUsageLocation(sourceFile ast.HasFileName, location *ast.StringLiteralLike) core.ResolutionMode
func (*Program) GetNearestAncestorDirectoryWithPackageJson ¶
GetNearestAncestorDirectoryWithPackageJson implements checker.Program.
func (*Program) GetOptionsDiagnostics ¶
func (p *Program) GetOptionsDiagnostics(ctx context.Context) []*ast.Diagnostic
func (*Program) GetOutputAndProjectReference ¶
func (p *Program) GetOutputAndProjectReference(path tspath.Path) *tsoptions.OutputDtsAndProjectReference
GetOutputAndProjectReference implements checker.Program.
func (*Program) GetPackageJsonInfo ¶
func (p *Program) GetPackageJsonInfo(pkgJsonPath string) modulespecifiers.PackageJsonInfo
GetPackageJsonInfo implements checker.Program.
func (*Program) GetRedirectForResolution ¶
func (p *Program) GetRedirectForResolution(file ast.HasFileName) *tsoptions.ParsedCommandLine
func (*Program) GetRedirectTargets ¶
GetRedirectTargets implements checker.Program.
func (*Program) GetResolvedModule ¶
func (p *Program) GetResolvedModule(file ast.HasFileName, moduleReference string, mode core.ResolutionMode) *module.ResolvedModule
func (*Program) GetResolvedModuleFromModuleSpecifier ¶
func (p *Program) GetResolvedModuleFromModuleSpecifier(file ast.HasFileName, moduleSpecifier *ast.StringLiteralLike) *module.ResolvedModule
func (*Program) GetResolvedModules ¶
func (p *Program) GetResolvedModules() map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule]
func (*Program) GetResolvedProjectReferenceFor ¶
func (*Program) GetResolvedTypeReferenceDirectiveFromTypeReferenceDirective ¶
func (p *Program) GetResolvedTypeReferenceDirectiveFromTypeReferenceDirective(typeRef *ast.FileReference, sourceFile *ast.SourceFile) *module.ResolvedTypeReferenceDirective
func (*Program) GetResolvedTypeReferenceDirectives ¶
func (p *Program) GetResolvedTypeReferenceDirectives() map[tspath.Path]module.ModeAwareCache[*module.ResolvedTypeReferenceDirective]
func (*Program) GetSemanticDiagnostics ¶
func (p *Program) GetSemanticDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
func (*Program) GetSourceAndProjectReference ¶
func (p *Program) GetSourceAndProjectReference(path tspath.Path) *tsoptions.SourceAndProjectReference
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) GetSourceFileForResolvedModule ¶
func (p *Program) GetSourceFileForResolvedModule(fileName string) *ast.SourceFile
func (*Program) GetSourceFileFromReference ¶
func (p *Program) GetSourceFileFromReference(origin *ast.SourceFile, ref *ast.FileReference) *ast.SourceFile
* This should have similar behavior to 'processSourceFile' without diagnostics or mutation.
func (*Program) GetSourceFileMetaData ¶
func (p *Program) GetSourceFileMetaData(path tspath.Path) ast.SourceFileMetaData
func (*Program) GetSourceFiles ¶
func (p *Program) GetSourceFiles() []*ast.SourceFile
func (*Program) GetSuggestionDiagnostics ¶
func (p *Program) GetSuggestionDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
func (*Program) GetSyntacticDiagnostics ¶
func (p *Program) GetSyntacticDiagnostics(ctx context.Context, sourceFile *ast.SourceFile) []*ast.Diagnostic
func (*Program) GetTypeChecker ¶
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 (*Program) Host ¶
func (p *Program) Host() CompilerHost
func (*Program) IdentifierCount ¶
func (*Program) InstantiationCount ¶
func (*Program) IsSourceFileDefaultLibrary ¶
func (*Program) IsSourceFileFromExternalLibrary ¶
func (p *Program) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool
func (*Program) IsSourceFromProjectReference ¶
IsSourceFromProjectReference implements checker.Program.
func (*Program) Options ¶
func (p *Program) Options() *core.CompilerOptions
func (*Program) SourceFileMayBeEmitted ¶
func (p *Program) SourceFileMayBeEmitted(sourceFile *ast.SourceFile, forceDtsEmit bool) bool
func (*Program) SourceFiles ¶
func (p *Program) SourceFiles() []*ast.SourceFile
func (*Program) SymbolCount ¶
func (*Program) UnsupportedExtensions ¶
UnsupportedExtensions returns a list of all present "unsupported" extensions, e.g. extensions that are not yet supported by the port.
func (*Program) UpdateProgram ¶
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.
func (*Program) UseCaseSensitiveFileNames ¶
UseCaseSensitiveFileNames implements checker.Program.
type ProgramOptions ¶
type ProgramOptions struct { Host CompilerHost Config *tsoptions.ParsedCommandLine UseSourceOfProjectReference bool SingleThreaded core.Tristate CreateCheckerPool func(*Program) CheckerPool TypingsLocation string ProjectName string JSDocParsingMode ast.JSDocParsingMode }
type SourceFileMayBeEmittedHost ¶
type SourceFileMayBeEmittedHost interface { Options() *core.CompilerOptions GetOutputAndProjectReference(path tspath.Path) *tsoptions.OutputDtsAndProjectReference IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool GetCurrentDirectory() string UseCaseSensitiveFileNames() bool SourceFiles() []*ast.SourceFile }
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 }
type WriteFileData ¶
type WriteFileData struct { SourceMapUrlPos int // BuildInfo BuildInfo Diagnostics []*ast.Diagnostic DiffersOnlyInMap bool SkippedDtsWrite bool }