remove unused packages
This commit is contained in:
parent
031ee56d1e
commit
5123289b0c
@ -1,72 +0,0 @@
|
|||||||
package outputpaths
|
|
||||||
|
|
||||||
import (
|
|
||||||
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/core"
|
|
||||||
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/tspath"
|
|
||||||
)
|
|
||||||
|
|
||||||
func computeCommonSourceDirectoryOfFilenames(fileNames []string, currentDirectory string, useCaseSensitiveFileNames bool) string {
|
|
||||||
var commonPathComponents []string
|
|
||||||
for _, sourceFile := range fileNames {
|
|
||||||
// Each file contributes into common source file path
|
|
||||||
sourcePathComponents := tspath.GetNormalizedPathComponents(sourceFile, currentDirectory)
|
|
||||||
|
|
||||||
// The base file name is not part of the common directory path
|
|
||||||
sourcePathComponents = sourcePathComponents[:len(sourcePathComponents)-1]
|
|
||||||
|
|
||||||
if commonPathComponents == nil {
|
|
||||||
// first file
|
|
||||||
commonPathComponents = sourcePathComponents
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
n := min(len(commonPathComponents), len(sourcePathComponents))
|
|
||||||
for i := range n {
|
|
||||||
if tspath.GetCanonicalFileName(commonPathComponents[i], useCaseSensitiveFileNames) != tspath.GetCanonicalFileName(sourcePathComponents[i], useCaseSensitiveFileNames) {
|
|
||||||
if i == 0 {
|
|
||||||
// Failed to find any common path component
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// New common path found that is 0 -> i-1
|
|
||||||
commonPathComponents = commonPathComponents[:i]
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the sourcePathComponents was shorter than the commonPathComponents, truncate to the sourcePathComponents
|
|
||||||
if len(sourcePathComponents) < len(commonPathComponents) {
|
|
||||||
commonPathComponents = commonPathComponents[:len(sourcePathComponents)]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(commonPathComponents) == 0 {
|
|
||||||
// Can happen when all input files are .d.ts files
|
|
||||||
return currentDirectory
|
|
||||||
}
|
|
||||||
|
|
||||||
return tspath.GetPathFromPathComponents(commonPathComponents)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCommonSourceDirectory(options *core.CompilerOptions, files func() []string, currentDirectory string, useCaseSensitiveFileNames bool) string {
|
|
||||||
var commonSourceDirectory string
|
|
||||||
if options.RootDir != "" {
|
|
||||||
// If a rootDir is specified use it as the commonSourceDirectory
|
|
||||||
commonSourceDirectory = options.RootDir
|
|
||||||
} else if options.Composite.IsTrue() && options.ConfigFilePath != "" {
|
|
||||||
// If the rootDir is not specified, but the project is composite, then the common source directory
|
|
||||||
// is the directory of the config file.
|
|
||||||
commonSourceDirectory = tspath.GetDirectoryPath(options.ConfigFilePath)
|
|
||||||
} else {
|
|
||||||
commonSourceDirectory = computeCommonSourceDirectoryOfFilenames(files(), currentDirectory, useCaseSensitiveFileNames)
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(commonSourceDirectory) > 0 {
|
|
||||||
// Make sure directory path ends with directory separator so this string can directly
|
|
||||||
// used to replace with "" to get the relative path of the source file and the relative path doesn't
|
|
||||||
// start with / making it rooted path
|
|
||||||
commonSourceDirectory = tspath.EnsureTrailingDirectorySeparator(commonSourceDirectory)
|
|
||||||
}
|
|
||||||
|
|
||||||
return commonSourceDirectory
|
|
||||||
}
|
|
||||||
@ -1,234 +0,0 @@
|
|||||||
package outputpaths
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"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 OutputPathsHost interface {
|
|
||||||
CommonSourceDirectory() string
|
|
||||||
GetCurrentDirectory() string
|
|
||||||
UseCaseSensitiveFileNames() bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type OutputPaths struct {
|
|
||||||
jsFilePath string
|
|
||||||
sourceMapFilePath string
|
|
||||||
declarationFilePath string
|
|
||||||
declarationMapPath string
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeclarationFilePath implements declarations.OutputPaths.
|
|
||||||
func (o *OutputPaths) DeclarationFilePath() string {
|
|
||||||
return o.declarationFilePath
|
|
||||||
}
|
|
||||||
|
|
||||||
// JsFilePath implements declarations.OutputPaths.
|
|
||||||
func (o *OutputPaths) JsFilePath() string {
|
|
||||||
return o.jsFilePath
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *OutputPaths) SourceMapFilePath() string {
|
|
||||||
return o.sourceMapFilePath
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *OutputPaths) DeclarationMapPath() string {
|
|
||||||
return o.declarationMapPath
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetOutputPathsFor(sourceFile *ast.SourceFile, options *core.CompilerOptions, host OutputPathsHost, forceDtsEmit bool) *OutputPaths {
|
|
||||||
// !!! bundle not implemented, may be deprecated
|
|
||||||
ownOutputFilePath := getOwnEmitOutputFilePath(sourceFile.FileName(), options, host, GetOutputExtension(sourceFile.FileName(), options.Jsx))
|
|
||||||
isJsonFile := ast.IsJsonSourceFile(sourceFile)
|
|
||||||
// If json file emits to the same location skip writing it, if emitDeclarationOnly skip writing it
|
|
||||||
isJsonEmittedToSameLocation := isJsonFile &&
|
|
||||||
tspath.ComparePaths(sourceFile.FileName(), ownOutputFilePath, tspath.ComparePathsOptions{
|
|
||||||
CurrentDirectory: host.GetCurrentDirectory(),
|
|
||||||
UseCaseSensitiveFileNames: host.UseCaseSensitiveFileNames(),
|
|
||||||
}) == 0
|
|
||||||
paths := &OutputPaths{}
|
|
||||||
if options.EmitDeclarationOnly != core.TSTrue && !isJsonEmittedToSameLocation {
|
|
||||||
paths.jsFilePath = ownOutputFilePath
|
|
||||||
if !ast.IsJsonSourceFile(sourceFile) {
|
|
||||||
paths.sourceMapFilePath = GetSourceMapFilePath(paths.jsFilePath, options)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if forceDtsEmit || options.GetEmitDeclarations() && !isJsonFile {
|
|
||||||
paths.declarationFilePath = GetDeclarationEmitOutputFilePath(sourceFile.FileName(), options, host)
|
|
||||||
if options.GetAreDeclarationMapsEnabled() {
|
|
||||||
paths.declarationMapPath = paths.declarationFilePath + ".map"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return paths
|
|
||||||
}
|
|
||||||
|
|
||||||
func ForEachEmittedFile(host OutputPathsHost, options *core.CompilerOptions, action func(emitFileNames *OutputPaths, sourceFile *ast.SourceFile) bool, sourceFiles []*ast.SourceFile, forceDtsEmit bool) bool {
|
|
||||||
for _, sourceFile := range sourceFiles {
|
|
||||||
if action(GetOutputPathsFor(sourceFile, options, host, forceDtsEmit), sourceFile) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetOutputJSFileName(inputFileName string, options *core.CompilerOptions, host OutputPathsHost) string {
|
|
||||||
if options.EmitDeclarationOnly.IsTrue() {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
outputFileName := GetOutputJSFileNameWorker(inputFileName, options, host)
|
|
||||||
if !tspath.FileExtensionIs(outputFileName, tspath.ExtensionJson) ||
|
|
||||||
tspath.ComparePaths(inputFileName, outputFileName, tspath.ComparePathsOptions{
|
|
||||||
CurrentDirectory: host.GetCurrentDirectory(),
|
|
||||||
UseCaseSensitiveFileNames: host.UseCaseSensitiveFileNames(),
|
|
||||||
}) != 0 {
|
|
||||||
return outputFileName
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetOutputJSFileNameWorker(inputFileName string, options *core.CompilerOptions, host OutputPathsHost) string {
|
|
||||||
return tspath.ChangeExtension(
|
|
||||||
getOutputPathWithoutChangingExtension(inputFileName, options.OutDir, host),
|
|
||||||
GetOutputExtension(inputFileName, options.Jsx),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetOutputDeclarationFileNameWorker(inputFileName string, options *core.CompilerOptions, host OutputPathsHost) string {
|
|
||||||
dir := options.DeclarationDir
|
|
||||||
if len(dir) == 0 {
|
|
||||||
dir = options.OutDir
|
|
||||||
}
|
|
||||||
return tspath.ChangeExtension(
|
|
||||||
getOutputPathWithoutChangingExtension(inputFileName, dir, host),
|
|
||||||
getDeclarationEmitExtensionForPath(inputFileName),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetOutputExtension(fileName string, jsx core.JsxEmit) string {
|
|
||||||
switch {
|
|
||||||
case tspath.FileExtensionIs(fileName, tspath.ExtensionJson):
|
|
||||||
return tspath.ExtensionJson
|
|
||||||
case jsx == core.JsxEmitPreserve && tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionJsx, tspath.ExtensionTsx}):
|
|
||||||
return tspath.ExtensionJsx
|
|
||||||
case tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionMts, tspath.ExtensionMjs}):
|
|
||||||
return tspath.ExtensionMjs
|
|
||||||
case tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionCts, tspath.ExtensionCjs}):
|
|
||||||
return tspath.ExtensionCjs
|
|
||||||
default:
|
|
||||||
return tspath.ExtensionJs
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetDeclarationEmitOutputFilePath(file string, options *core.CompilerOptions, host OutputPathsHost) string {
|
|
||||||
var outputDir *string
|
|
||||||
if len(options.DeclarationDir) > 0 {
|
|
||||||
outputDir = &options.DeclarationDir
|
|
||||||
} else if len(options.OutDir) > 0 {
|
|
||||||
outputDir = &options.OutDir
|
|
||||||
}
|
|
||||||
|
|
||||||
var path string
|
|
||||||
if outputDir != nil {
|
|
||||||
path = GetSourceFilePathInNewDirWorker(file, *outputDir, host.GetCurrentDirectory(), host.CommonSourceDirectory(), host.UseCaseSensitiveFileNames())
|
|
||||||
} else {
|
|
||||||
path = file
|
|
||||||
}
|
|
||||||
declarationExtension := tspath.GetDeclarationEmitExtensionForPath(path)
|
|
||||||
return tspath.RemoveFileExtension(path) + declarationExtension
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSourceFilePathInNewDir(fileName string, newDirPath string, currentDirectory string, commonSourceDirectory string, useCaseSensitiveFileNames bool) string {
|
|
||||||
sourceFilePath := tspath.GetNormalizedAbsolutePath(fileName, currentDirectory)
|
|
||||||
commonSourceDirectory = tspath.EnsureTrailingDirectorySeparator(commonSourceDirectory)
|
|
||||||
isSourceFileInCommonSourceDirectory := tspath.ContainsPath(commonSourceDirectory, sourceFilePath, tspath.ComparePathsOptions{
|
|
||||||
UseCaseSensitiveFileNames: useCaseSensitiveFileNames,
|
|
||||||
CurrentDirectory: currentDirectory,
|
|
||||||
})
|
|
||||||
if isSourceFileInCommonSourceDirectory {
|
|
||||||
sourceFilePath = sourceFilePath[len(commonSourceDirectory):]
|
|
||||||
}
|
|
||||||
return tspath.CombinePaths(newDirPath, sourceFilePath)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getOutputPathWithoutChangingExtension(inputFileName string, outputDirectory string, host OutputPathsHost) string {
|
|
||||||
if len(outputDirectory) > 0 {
|
|
||||||
return tspath.ResolvePath(outputDirectory, tspath.GetRelativePathFromDirectory(host.CommonSourceDirectory(), inputFileName, tspath.ComparePathsOptions{
|
|
||||||
UseCaseSensitiveFileNames: host.UseCaseSensitiveFileNames(),
|
|
||||||
CurrentDirectory: host.GetCurrentDirectory(),
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
return inputFileName
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSourceFilePathInNewDirWorker(fileName string, newDirPath string, currentDirectory string, commonSourceDirectory string, useCaseSensitiveFileNames bool) string {
|
|
||||||
sourceFilePath := tspath.GetNormalizedAbsolutePath(fileName, currentDirectory)
|
|
||||||
commonDir := tspath.GetCanonicalFileName(commonSourceDirectory, useCaseSensitiveFileNames)
|
|
||||||
canonFile := tspath.GetCanonicalFileName(sourceFilePath, useCaseSensitiveFileNames)
|
|
||||||
isSourceFileInCommonSourceDirectory := strings.HasPrefix(canonFile, commonDir)
|
|
||||||
if isSourceFileInCommonSourceDirectory {
|
|
||||||
sourceFilePath = sourceFilePath[len(commonSourceDirectory):]
|
|
||||||
}
|
|
||||||
return tspath.CombinePaths(newDirPath, sourceFilePath)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getOwnEmitOutputFilePath(fileName string, options *core.CompilerOptions, host OutputPathsHost, extension string) string {
|
|
||||||
var emitOutputFilePathWithoutExtension string
|
|
||||||
if len(options.OutDir) > 0 {
|
|
||||||
currentDirectory := host.GetCurrentDirectory()
|
|
||||||
emitOutputFilePathWithoutExtension = tspath.RemoveFileExtension(GetSourceFilePathInNewDir(
|
|
||||||
fileName,
|
|
||||||
options.OutDir,
|
|
||||||
currentDirectory,
|
|
||||||
host.CommonSourceDirectory(),
|
|
||||||
host.UseCaseSensitiveFileNames(),
|
|
||||||
))
|
|
||||||
} else {
|
|
||||||
emitOutputFilePathWithoutExtension = tspath.RemoveFileExtension(fileName)
|
|
||||||
}
|
|
||||||
return emitOutputFilePathWithoutExtension + extension
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSourceMapFilePath(jsFilePath string, options *core.CompilerOptions) string {
|
|
||||||
if options.SourceMap.IsTrue() && !options.InlineSourceMap.IsTrue() {
|
|
||||||
return jsFilePath + ".map"
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func getDeclarationEmitExtensionForPath(fileName string) string {
|
|
||||||
if tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionMjs, tspath.ExtensionMts}) {
|
|
||||||
return tspath.ExtensionDmts
|
|
||||||
} else if tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionCjs, tspath.ExtensionCts}) {
|
|
||||||
return tspath.ExtensionDcts
|
|
||||||
} else if tspath.FileExtensionIs(fileName, tspath.ExtensionJson) {
|
|
||||||
return ".d.json.ts"
|
|
||||||
}
|
|
||||||
return tspath.ExtensionDts
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetBuildInfoFileName(options *core.CompilerOptions, opts tspath.ComparePathsOptions) string {
|
|
||||||
if !options.IsIncremental() && !options.Build.IsTrue() {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if options.TsBuildInfoFile != "" {
|
|
||||||
return options.TsBuildInfoFile
|
|
||||||
}
|
|
||||||
if options.ConfigFilePath == "" {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
configFileExtensionLess := tspath.RemoveFileExtension(options.ConfigFilePath)
|
|
||||||
var buildInfoExtensionLess string
|
|
||||||
if options.OutDir != "" {
|
|
||||||
if options.RootDir != "" {
|
|
||||||
buildInfoExtensionLess = tspath.ResolvePath(options.OutDir, tspath.GetRelativePathFromDirectory(options.RootDir, configFileExtensionLess, opts))
|
|
||||||
} else {
|
|
||||||
buildInfoExtensionLess = tspath.CombinePaths(options.OutDir, tspath.GetBaseFileName(configFileExtensionLess))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
buildInfoExtensionLess = configFileExtensionLess
|
|
||||||
}
|
|
||||||
return buildInfoExtensionLess + tspath.ExtensionTsBuildInfo
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user