incremental

package
v0.0.0-...-1ca5a2d Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2025 License: Apache-2.0 Imports: 23 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 GetMTime

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

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 (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"`
	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)

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 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 NewProgram(program *compiler.Program, oldProgram *Program, host Host, testing bool) *Program

func ReadBuildInfoProgram

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

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

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

GetOptionsDiagnostics implements compiler.AnyProgram interface.

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

func (*Program) MakeReadonly

func (p *Program) MakeReadonly()

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
}

Jump to

Keyboard shortcuts

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