incremental

package
v0.0.0-...-e00a6a3 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2026 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
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

func ComputeHash(text string, hashWithText bool) string

func ContentMapperIdentities

func ContentMapperIdentities(project contentmapper.Project) ([]string, error)

ContentMapperIdentities returns the project's sorted mapper transform identities. A nil project means the compiler host has no configured content mappers.

func GetMTime

func GetMTime(host compiler.CompilerHost, fileName string) time.Time

func IsBuildInfoFileNameDefaultLibrary

func IsBuildInfoFileNameDefaultLibrary(fileName string) bool

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"`
	PackageJsons            []string         `json:"packageJsons,omitzero"`
	MissingPackageJsons     []string         `json:"missingPackageJsons,omitzero"`
	ContentMapperIdentities []string         `json:"contentMapperIdentities,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) ContentMapperIdentitiesMatch

func (b *BuildInfo) ContentMapperIdentitiesMatch(current []string) bool

ContentMapperIdentitiesMatch reports whether the content mapper identities recorded in this build info match the given current identities (as produced by ContentMapperIdentities).

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) GetMissingPackageJsons

func (b *BuildInfo) GetMissingPackageJsons(buildInfoDirectory string) iter.Seq[string]

func (*BuildInfo) GetPackageJsons

func (b *BuildInfo) GetPackageJsons(buildInfoDirectory string) iter.Seq[string]

func (*BuildInfo) IsEmitPending

func (b *BuildInfo) IsEmitPending(resolved *tsoptions.ParsedCommandLine, buildInfoDirectory string) bool

func (*BuildInfo) IsIncremental

func (b *BuildInfo) IsIncremental() bool

func (*BuildInfo) IsValidVersion

func (b *BuildInfo) IsValidVersion() bool

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"`
	Source             string                   `json:"source,omitzero"`
	MessageText        string                   `json:"messageText,omitzero"`
	MessageKey         diagnostics.Key          `json:"messageKey,omitzero"`
	MessageArgs        []string                 `json:"messageArgs,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"`
	RepopulateInfo     *BuildInfoRepopulateInfo `json:"repopulateInfo,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 BuildInfoRepopulateInfo

type BuildInfoRepopulateInfo struct {
	Kind            ast.RepopulateDiagnosticKind `json:"kind"`
	ModuleReference string                       `json:"moduleReference,omitzero"`
	Mode            core.ResolutionMode          `json:"mode,omitzero"`
	PackageName     string                       `json:"packageName,omitzero"`
}

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)

func (*BuildInfoRootInfoReader) Roots

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 DiagnosticsOrBuildInfoDiagnosticsWithFileName

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

type FileEmitKind

type FileEmitKind uint32

func GetFileEmitKind

func GetFileEmitKind(options *core.CompilerOptions) FileEmitKind

type FileInfo

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

func (*FileInfo) AffectsGlobalScope

func (f *FileInfo) AffectsGlobalScope() bool

func (*FileInfo) ImpliedNodeFormat

func (f *FileInfo) ImpliedNodeFormat() core.ResolutionMode

func (*FileInfo) Signature

func (f *FileInfo) Signature() string

func (*FileInfo) Version

func (f *FileInfo) Version() string

type Host

type Host interface {
	FS() vfs.FS
	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 NewProgram(program *compiler.Program, oldProgram *Program, host Host, nestedEmitNow func() time.Time, testing bool) *Program

func ReadBuildInfoProgram

func ReadBuildInfoProgram(config *tsoptions.ParsedCommandLine, reader BuildInfoReader, host compiler.CompilerHost) *Program

func (*Program) CommonSourceDirectory

func (p *Program) CommonSourceDirectory() string

CommonSourceDirectory implements compiler.AnyProgram interface.

func (*Program) Emit

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) GetProgram

func (p *Program) GetProgram() *compiler.Program

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) GetSourceFile

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

GetSourceFile implements compiler.AnyProgram interface.

func (*Program) GetSourceFiles

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

GetSourceFiles implements compiler.AnyProgram interface.

func (*Program) GetSuggestionDiagnostics

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

GetSuggestionDiagnostics 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 (p *Program) HasChangedDtsFile() bool

func (*Program) IsSourceFileDefaultLibrary

func (p *Program) IsSourceFileDefaultLibrary(path tspath.Path) bool

IsSourceFileDefaultLibrary implements compiler.AnyProgram interface.

func (*Program) Options

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

Options implements compiler.AnyProgram interface.

func (*Program) PackageJsonLookupPaths

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

func (*Program) Program

func (p *Program) Program() *compiler.Program

Program implements compiler.AnyProgram interface.

func (*Program) TakeNestedEmitTime

func (p *Program) TakeNestedEmitTime() time.Duration

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
}

Jump to

Keyboard shortcuts

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