34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
package tsoptions
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/ast"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/core"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/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"`
|
|
|
|
comparePathsOptions tspath.ComparePathsOptions
|
|
|
|
resolvedProjectPaths []string
|
|
resolvedProjectPathsOnce 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
|
|
}
|