79 lines
2.2 KiB
Go
79 lines
2.2 KiB
Go
package tsc
|
|
|
|
import (
|
|
"io"
|
|
"time"
|
|
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/ast"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/collections"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/compiler"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/execute/incremental"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/tspath"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/vfs"
|
|
)
|
|
|
|
type System interface {
|
|
Writer() io.Writer
|
|
FS() vfs.FS
|
|
DefaultLibraryPath() string
|
|
GetCurrentDirectory() string
|
|
WriteOutputIsTTY() bool
|
|
GetWidthOfTerminal() int
|
|
GetEnvironmentVariable(name string) string
|
|
|
|
Now() time.Time
|
|
SinceStart() time.Duration
|
|
}
|
|
|
|
type ExitStatus int
|
|
|
|
const (
|
|
ExitStatusSuccess ExitStatus = 0
|
|
ExitStatusDiagnosticsPresent_OutputsGenerated ExitStatus = 1
|
|
ExitStatusDiagnosticsPresent_OutputsSkipped ExitStatus = 2
|
|
ExitStatusInvalidProject_OutputsSkipped ExitStatus = 3
|
|
ExitStatusProjectReferenceCycle_OutputsSkipped ExitStatus = 4
|
|
ExitStatusNotImplemented ExitStatus = 5
|
|
)
|
|
|
|
type Watcher interface {
|
|
DoCycle()
|
|
}
|
|
|
|
type CommandLineResult struct {
|
|
Status ExitStatus
|
|
Watcher Watcher
|
|
}
|
|
|
|
type CommandLineTesting interface {
|
|
// Ensure that all emitted files are timestamped in order to ensure they are deterministic for test baseline
|
|
OnEmittedFiles(result *compiler.EmitResult, mTimesCache *collections.SyncMap[tspath.Path, time.Time])
|
|
OnListFilesStart(w io.Writer)
|
|
OnListFilesEnd(w io.Writer)
|
|
OnStatisticsStart(w io.Writer)
|
|
OnStatisticsEnd(w io.Writer)
|
|
OnBuildStatusReportStart(w io.Writer)
|
|
OnBuildStatusReportEnd(w io.Writer)
|
|
OnWatchStatusReportStart()
|
|
OnWatchStatusReportEnd()
|
|
GetTrace(w io.Writer) func(msg string)
|
|
OnProgram(program *incremental.Program)
|
|
}
|
|
|
|
type CompileTimes struct {
|
|
ConfigTime time.Duration
|
|
ParseTime time.Duration
|
|
bindTime time.Duration
|
|
checkTime time.Duration
|
|
totalTime time.Duration
|
|
emitTime time.Duration
|
|
BuildInfoReadTime time.Duration
|
|
ChangesComputeTime time.Duration
|
|
}
|
|
type CompileAndEmitResult struct {
|
|
Diagnostics []*ast.Diagnostic
|
|
EmitResult *compiler.EmitResult
|
|
Status ExitStatus
|
|
times *CompileTimes
|
|
}
|