Documentation
¶
Index ¶
- Constants
- func ComputeHash(text string, hashWithText bool) string
- func GetMTime(host compiler.CompilerHost, fileName string) time.Time
- type BuildInfo
- func (b *BuildInfo) GetBuildInfoRootInfoReader(buildInfoDirectory string, comparePathOptions tspath.ComparePathsOptions) *BuildInfoRootInfoReader
- func (b *BuildInfo) GetCompilerOptions(buildInfoDirectory string) *core.CompilerOptions
- func (b *BuildInfo) IsEmitPending(resolved *tsoptions.ParsedCommandLine, buildInfoDirectory string) bool
- func (b *BuildInfo) IsIncremental() bool
- func (b *BuildInfo) IsValidVersion() bool
- type BuildInfoDiagnostic
- type BuildInfoDiagnosticsOfFile
- type BuildInfoEmitSignature
- type BuildInfoFileId
- type BuildInfoFileIdListId
- type BuildInfoFileInfo
- type BuildInfoFilePendingEmit
- type BuildInfoReader
- type BuildInfoReferenceMapEntry
- type BuildInfoResolvedRoot
- type BuildInfoRoot
- type BuildInfoRootInfoReader
- type BuildInfoSemanticDiagnostic
- type FileEmitKind
- type Host
- type Program
- func (p *Program) Emit(ctx context.Context, options compiler.EmitOptions) *compiler.EmitResult
- func (p *Program) GetBindDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetConfigFileParsingDiagnostics() []*ast.Diagnostic
- func (p *Program) GetDeclarationDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetGlobalDiagnostics(ctx context.Context) []*ast.Diagnostic
- func (p *Program) GetOptionsDiagnostics(ctx context.Context) []*ast.Diagnostic
- func (p *Program) GetProgram() *compiler.Program
- func (p *Program) GetProgramDiagnostics() []*ast.Diagnostic
- func (p *Program) GetSemanticDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetSourceFiles() []*ast.SourceFile
- func (p *Program) GetSyntacticDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
- func (p *Program) GetTestingData() *TestingData
- func (p *Program) HasChangedDtsFile() bool
- func (p *Program) Options() *core.CompilerOptions
- type SignatureUpdateKind
- type TestingData
Constants ¶
const ( FileEmitKindNone FileEmitKind = 0 FileEmitKindJs FileEmitKind = 1 << 0 // emit js file FileEmitKindJsMap FileEmitKind = 1 << 1 // emit js.map file FileEmitKindJsInlineMap FileEmitKind = 1 << 2 // emit inline source map in js file FileEmitKindDtsErrors FileEmitKind = 1 << 3 // emit dts errors FileEmitKindDtsEmit FileEmitKind = 1 << 4 // emit d.ts file FileEmitKindDtsMap FileEmitKind = 1 << 5 // emit d.ts.map file FileEmitKindDts = FileEmitKindDtsErrors | FileEmitKindDtsEmit FileEmitKindAllJs = FileEmitKindJs | FileEmitKindJsMap | FileEmitKindJsInlineMap FileEmitKindAllDtsEmit = FileEmitKindDtsEmit | FileEmitKindDtsMap FileEmitKindAllDts = FileEmitKindDts | FileEmitKindDtsMap FileEmitKindAll = FileEmitKindAllJs | FileEmitKindAllDts )
Variables ¶
This section is empty.
Functions ¶
func ComputeHash ¶
Types ¶
type BuildInfo ¶
type BuildInfo struct {
Version string `json:"version,omitzero"`
// Common between incremental and tsc -b buildinfo for non incremental programs
Errors bool `json:"errors,omitzero"`
CheckPending bool `json:"checkPending,omitzero"`
Root []*BuildInfoRoot `json:"root,omitzero"`
// IncrementalProgram info
FileNames []string `json:"fileNames,omitzero"`
FileInfos []*BuildInfoFileInfo `json:"fileInfos,omitzero"`
FileIdsList [][]BuildInfoFileId `json:"fileIdsList,omitzero"`
Options *collections.OrderedMap[string, any] `json:"options,omitzero"`
ReferencedMap []*BuildInfoReferenceMapEntry `json:"referencedMap,omitzero"`
SemanticDiagnosticsPerFile []*BuildInfoSemanticDiagnostic `json:"semanticDiagnosticsPerFile,omitzero"`
EmitDiagnosticsPerFile []*BuildInfoDiagnosticsOfFile `json:"emitDiagnosticsPerFile,omitzero"`
ChangeFileSet []BuildInfoFileId `json:"changeFileSet,omitzero"`
AffectedFilesPendingEmit []*BuildInfoFilePendingEmit `json:"affectedFilesPendingEmit,omitzero"`
LatestChangedDtsFile string `json:"latestChangedDtsFile,omitzero"` // Because this is only output file in the program, we dont need fileId to deduplicate name
EmitSignatures []*BuildInfoEmitSignature `json:"emitSignatures,omitzero"`
ResolvedRoot []*BuildInfoResolvedRoot `json:"resolvedRoot,omitzero"`
// NonIncrementalProgram info
SemanticErrors bool `json:"semanticErrors,omitzero"`
}
func (*BuildInfo) GetBuildInfoRootInfoReader ¶
func (b *BuildInfo) GetBuildInfoRootInfoReader(buildInfoDirectory string, comparePathOptions tspath.ComparePathsOptions) *BuildInfoRootInfoReader
func (*BuildInfo) GetCompilerOptions ¶
func (b *BuildInfo) GetCompilerOptions(buildInfoDirectory string) *core.CompilerOptions
func (*BuildInfo) IsEmitPending ¶
func (b *BuildInfo) IsEmitPending(resolved *tsoptions.ParsedCommandLine, buildInfoDirectory string) bool
func (*BuildInfo) IsIncremental ¶
func (*BuildInfo) IsValidVersion ¶
type BuildInfoDiagnostic ¶
type BuildInfoDiagnostic struct {
// BuildInfoFileId if it is for a File thats other than its stored for
File BuildInfoFileId `json:"file,omitzero"`
NoFile bool `json:"noFile,omitzero"`
Pos int `json:"pos,omitzero"`
End int `json:"end,omitzero"`
Code int32 `json:"code,omitzero"`
Category diagnostics.Category `json:"category,omitzero"`
Message string `json:"message,omitzero"`
MessageChain []*BuildInfoDiagnostic `json:"messageChain,omitzero"`
RelatedInformation []*BuildInfoDiagnostic `json:"relatedInformation,omitzero"`
ReportsUnnecessary bool `json:"reportsUnnecessary,omitzero"`
ReportsDeprecated bool `json:"reportsDeprecated,omitzero"`
SkippedOnNoEmit bool `json:"skippedOnNoEmit,omitzero"`
}
type BuildInfoDiagnosticsOfFile ¶
type BuildInfoDiagnosticsOfFile struct {
FileId BuildInfoFileId
Diagnostics []*BuildInfoDiagnostic
}
func (*BuildInfoDiagnosticsOfFile) MarshalJSON ¶
func (b *BuildInfoDiagnosticsOfFile) MarshalJSON() ([]byte, error)
func (*BuildInfoDiagnosticsOfFile) UnmarshalJSON ¶
func (b *BuildInfoDiagnosticsOfFile) UnmarshalJSON(data []byte) error
type BuildInfoEmitSignature ¶
type BuildInfoEmitSignature struct {
FileId BuildInfoFileId
Signature string // Signature if it is different from file's Signature
DiffersOnlyInDtsMap bool // true if signature is different only in dtsMap value
DiffersInOptions bool // true if signature is different in options used to emit file
}
[fileId, signature] if different from file's signature fileId if file wasnt emitted
func (*BuildInfoEmitSignature) MarshalJSON ¶
func (b *BuildInfoEmitSignature) MarshalJSON() ([]byte, error)
func (*BuildInfoEmitSignature) UnmarshalJSON ¶
func (b *BuildInfoEmitSignature) UnmarshalJSON(data []byte) error
type BuildInfoFileId ¶
type BuildInfoFileId int
type BuildInfoFileIdListId ¶
type BuildInfoFileIdListId int
type BuildInfoFileInfo ¶
type BuildInfoFileInfo struct {
// contains filtered or unexported fields
}
func (*BuildInfoFileInfo) GetFileInfo ¶
func (b *BuildInfoFileInfo) GetFileInfo() *fileInfo
func (*BuildInfoFileInfo) HasSignature ¶
func (b *BuildInfoFileInfo) HasSignature() bool
func (*BuildInfoFileInfo) MarshalJSON ¶
func (b *BuildInfoFileInfo) MarshalJSON() ([]byte, error)
func (*BuildInfoFileInfo) UnmarshalJSON ¶
func (b *BuildInfoFileInfo) UnmarshalJSON(data []byte) error
type BuildInfoFilePendingEmit ¶
type BuildInfoFilePendingEmit struct {
FileId BuildInfoFileId
EmitKind FileEmitKind
}
fileId if pending emit is same as what compilerOptions suggest [fileId] if pending emit is only dts file emit [fileId, emitKind] if any other type emit is pending
func (*BuildInfoFilePendingEmit) MarshalJSON ¶
func (b *BuildInfoFilePendingEmit) MarshalJSON() ([]byte, error)
func (*BuildInfoFilePendingEmit) UnmarshalJSON ¶
func (b *BuildInfoFilePendingEmit) UnmarshalJSON(data []byte) error
type BuildInfoReader ¶
type BuildInfoReader interface {
ReadBuildInfo(config *tsoptions.ParsedCommandLine) *BuildInfo
}
func NewBuildInfoReader ¶
func NewBuildInfoReader( host compiler.CompilerHost, ) BuildInfoReader
type BuildInfoReferenceMapEntry ¶
type BuildInfoReferenceMapEntry struct {
FileId BuildInfoFileId
FileIdListId BuildInfoFileIdListId
}
func (*BuildInfoReferenceMapEntry) MarshalJSON ¶
func (b *BuildInfoReferenceMapEntry) MarshalJSON() ([]byte, error)
func (*BuildInfoReferenceMapEntry) UnmarshalJSON ¶
func (b *BuildInfoReferenceMapEntry) UnmarshalJSON(data []byte) error
type BuildInfoResolvedRoot ¶
type BuildInfoResolvedRoot struct {
Resolved BuildInfoFileId
Root BuildInfoFileId
}
func (*BuildInfoResolvedRoot) MarshalJSON ¶
func (b *BuildInfoResolvedRoot) MarshalJSON() ([]byte, error)
func (*BuildInfoResolvedRoot) UnmarshalJSON ¶
func (b *BuildInfoResolvedRoot) UnmarshalJSON(data []byte) error
type BuildInfoRoot ¶
type BuildInfoRoot struct {
Start BuildInfoFileId
End BuildInfoFileId
NonIncremental string // Root of a non incremental program
}
buildInfoRoot is - for incremental program buildinfo
- start and end of FileId for consecutive fileIds to be included as root
- start - single fileId that is root
- for non incremental program buildinfo
- string that is the root file name
func (*BuildInfoRoot) MarshalJSON ¶
func (b *BuildInfoRoot) MarshalJSON() ([]byte, error)
func (*BuildInfoRoot) UnmarshalJSON ¶
func (b *BuildInfoRoot) UnmarshalJSON(data []byte) error
type BuildInfoRootInfoReader ¶
type BuildInfoRootInfoReader struct {
// contains filtered or unexported fields
}
func (*BuildInfoRootInfoReader) GetBuildInfoFileInfo ¶
func (b *BuildInfoRootInfoReader) GetBuildInfoFileInfo(inputFilePath tspath.Path) (*BuildInfoFileInfo, tspath.Path)
type BuildInfoSemanticDiagnostic ¶
type BuildInfoSemanticDiagnostic struct {
FileId BuildInfoFileId // File is not in changedSet and still doesnt have cached diagnostics
Diagnostics *BuildInfoDiagnosticsOfFile // Diagnostics for file
}
func (*BuildInfoSemanticDiagnostic) MarshalJSON ¶
func (b *BuildInfoSemanticDiagnostic) MarshalJSON() ([]byte, error)
func (*BuildInfoSemanticDiagnostic) UnmarshalJSON ¶
func (b *BuildInfoSemanticDiagnostic) UnmarshalJSON(data []byte) error
type FileEmitKind ¶
type FileEmitKind uint32
func GetFileEmitKind ¶
func GetFileEmitKind(options *core.CompilerOptions) FileEmitKind
type Host ¶
type Host interface {
GetMTime(fileName string) time.Time
SetMTime(fileName string, mTime time.Time) error
}
func CreateHost ¶
func CreateHost(compilerHost compiler.CompilerHost) Host
type Program ¶
type Program struct {
// contains filtered or unexported fields
}
func NewProgram ¶
func ReadBuildInfoProgram ¶
func ReadBuildInfoProgram(config *tsoptions.ParsedCommandLine, reader BuildInfoReader, host compiler.CompilerHost) *Program
func (*Program) Emit ¶
func (p *Program) Emit(ctx context.Context, options compiler.EmitOptions) *compiler.EmitResult
GetModeForUsageLocation implements compiler.AnyProgram interface.
func (*Program) GetBindDiagnostics ¶
func (p *Program) GetBindDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
GetBindDiagnostics implements compiler.AnyProgram interface.
func (*Program) GetConfigFileParsingDiagnostics ¶
func (p *Program) GetConfigFileParsingDiagnostics() []*ast.Diagnostic
GetConfigFileParsingDiagnostics implements compiler.AnyProgram interface.
func (*Program) GetDeclarationDiagnostics ¶
func (p *Program) GetDeclarationDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
GetDeclarationDiagnostics implements compiler.AnyProgram interface.
func (*Program) GetGlobalDiagnostics ¶
func (p *Program) GetGlobalDiagnostics(ctx context.Context) []*ast.Diagnostic
func (*Program) GetOptionsDiagnostics ¶
func (p *Program) GetOptionsDiagnostics(ctx context.Context) []*ast.Diagnostic
GetOptionsDiagnostics implements compiler.AnyProgram interface.
func (*Program) GetProgram ¶
func (*Program) GetProgramDiagnostics ¶
func (p *Program) GetProgramDiagnostics() []*ast.Diagnostic
func (*Program) GetSemanticDiagnostics ¶
func (p *Program) GetSemanticDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
GetSemanticDiagnostics implements compiler.AnyProgram interface.
func (*Program) GetSourceFiles ¶
func (p *Program) GetSourceFiles() []*ast.SourceFile
GetSourceFiles implements compiler.AnyProgram interface.
func (*Program) GetSyntacticDiagnostics ¶
func (p *Program) GetSyntacticDiagnostics(ctx context.Context, file *ast.SourceFile) []*ast.Diagnostic
GetSyntacticDiagnostics implements compiler.AnyProgram interface.
func (*Program) GetTestingData ¶
func (p *Program) GetTestingData() *TestingData
func (*Program) HasChangedDtsFile ¶
func (*Program) Options ¶
func (p *Program) Options() *core.CompilerOptions
Options implements compiler.AnyProgram interface.
type SignatureUpdateKind ¶
type SignatureUpdateKind byte
const ( SignatureUpdateKindComputedDts SignatureUpdateKind = iota SignatureUpdateKindStoredAtEmit SignatureUpdateKindUsedVersion )
type TestingData ¶
type TestingData struct {
SemanticDiagnosticsPerFile *collections.SyncMap[tspath.Path, *diagnosticsOrBuildInfoDiagnosticsWithFileName]
OldProgramSemanticDiagnosticsPerFile *collections.SyncMap[tspath.Path, *diagnosticsOrBuildInfoDiagnosticsWithFileName]
UpdatedSignatureKinds map[tspath.Path]SignatureUpdateKind
}