46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package tsoptions
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/microsoft/typescript-go/internal/ast"
|
|
"github.com/microsoft/typescript-go/internal/core"
|
|
"github.com/microsoft/typescript-go/internal/locale"
|
|
"github.com/microsoft/typescript-go/internal/tspath"
|
|
)
|
|
|
|
type ParsedBuildCommandLine struct {
|
|
BuildOptions *core.BuildOptions `json:"buildOptions"`
|
|
CompilerOptions *core.CompilerOptions `json:"compilerOptions"`
|
|
WatchOptions *core.WatchOptions `json:"watchOptions"`
|
|
Projects []string `json:"projects"`
|
|
Errors []*ast.Diagnostic `json:"errors"`
|
|
Raw any `json:"raw"`
|
|
|
|
comparePathsOptions tspath.ComparePathsOptions
|
|
|
|
resolvedProjectPaths []string
|
|
resolvedProjectPathsOnce sync.Once
|
|
|
|
locale locale.Locale
|
|
localeOnce sync.Once
|
|
}
|
|
|
|
func (p *ParsedBuildCommandLine) ResolvedProjectPaths() []string {
|
|
p.resolvedProjectPathsOnce.Do(func() {
|
|
p.resolvedProjectPaths = core.Map(p.Projects, func(project string) string {
|
|
return core.ResolveConfigFileNameOfProjectReference(
|
|
tspath.ResolvePath(p.comparePathsOptions.CurrentDirectory, project),
|
|
)
|
|
})
|
|
})
|
|
return p.resolvedProjectPaths
|
|
}
|
|
|
|
func (p *ParsedBuildCommandLine) Locale() locale.Locale {
|
|
p.localeOnce.Do(func() {
|
|
p.locale, _ = locale.Parse(p.CompilerOptions.Locale)
|
|
})
|
|
return p.locale
|
|
}
|