mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-10 18:04:18 -05:00
PR feedback
This commit is contained in:
@@ -135,36 +135,34 @@ namespace ts {
|
||||
return configFile.options.rootDir || getDirectoryPath(Debug.assertDefined(configFile.options.configFilePath));
|
||||
}
|
||||
|
||||
function getOutputPathWithoutChangingExt(inputFileName: string, configFile: ParsedCommandLine, ignoreCase: boolean, outputDir: string | undefined) {
|
||||
return outputDir ?
|
||||
resolvePath(
|
||||
outputDir,
|
||||
getRelativePathFromDirectory(rootDirOfOptions(configFile), inputFileName, ignoreCase)
|
||||
) :
|
||||
inputFileName;
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export function getOutputDeclarationFileName(inputFileName: string, configFile: ParsedCommandLine, ignoreCase: boolean) {
|
||||
Debug.assert(!fileExtensionIs(inputFileName, Extension.Dts) && hasTSFileExtension(inputFileName));
|
||||
let outputPath: string;
|
||||
const declarationDir = configFile.options.declarationDir || configFile.options.outDir;
|
||||
if (declarationDir) {
|
||||
const relativePath = getRelativePathFromDirectory(rootDirOfOptions(configFile), inputFileName, ignoreCase);
|
||||
outputPath = resolvePath(declarationDir, relativePath);
|
||||
}
|
||||
else {
|
||||
outputPath = inputFileName;
|
||||
}
|
||||
return changeExtension(outputPath, Extension.Dts);
|
||||
return changeExtension(
|
||||
getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, configFile.options.declarationDir || configFile.options.outDir),
|
||||
Extension.Dts
|
||||
);
|
||||
}
|
||||
|
||||
function getOutputJSFileName(inputFileName: string, configFile: ParsedCommandLine, ignoreCase: boolean) {
|
||||
let outputPath: string;
|
||||
if (configFile.options.outDir) {
|
||||
const relativePath = getRelativePathFromDirectory(rootDirOfOptions(configFile), inputFileName, ignoreCase);
|
||||
outputPath = resolvePath(configFile.options.outDir, relativePath);
|
||||
}
|
||||
else {
|
||||
outputPath = inputFileName;
|
||||
}
|
||||
const isJsonFile = fileExtensionIs(inputFileName, Extension.Json);
|
||||
const outputFileName = changeExtension(outputPath, isJsonFile ?
|
||||
Extension.Json :
|
||||
fileExtensionIs(inputFileName, Extension.Tsx) && configFile.options.jsx === JsxEmit.Preserve ?
|
||||
Extension.Jsx :
|
||||
Extension.Js);
|
||||
const outputFileName = changeExtension(
|
||||
getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, configFile.options.outDir),
|
||||
isJsonFile ?
|
||||
Extension.Json :
|
||||
fileExtensionIs(inputFileName, Extension.Tsx) && configFile.options.jsx === JsxEmit.Preserve ?
|
||||
Extension.Jsx :
|
||||
Extension.Js
|
||||
);
|
||||
return !isJsonFile || comparePaths(inputFileName, outputFileName, Debug.assertDefined(configFile.options.configFilePath), ignoreCase) !== Comparison.EqualTo ?
|
||||
outputFileName :
|
||||
undefined;
|
||||
|
||||
@@ -2741,7 +2741,7 @@ namespace ts {
|
||||
|
||||
// List of collected files is complete; validate exhautiveness if this is a project with a file list
|
||||
if (options.composite) {
|
||||
const rootPaths = rootNames.map(r => toPath(r));
|
||||
const rootPaths = rootNames.map(toPath);
|
||||
for (const file of files) {
|
||||
// Ignore declaration files
|
||||
if (file.isDeclarationFile) continue;
|
||||
|
||||
@@ -3437,7 +3437,12 @@ namespace ts {
|
||||
}
|
||||
|
||||
/** Don't call this for `--outFile`, just for `--outDir` or plain emit. `--outFile` needs additional checks. */
|
||||
export function sourceFileMayBeEmitted(sourceFile: SourceFile, options: CompilerOptions, isSourceFileFromExternalLibrary: (file: SourceFile) => boolean, getResolvedProjectReferenceToRedirect: (fileName: string) => ResolvedProjectReference | undefined) {
|
||||
export function sourceFileMayBeEmitted(
|
||||
sourceFile: SourceFile,
|
||||
options: CompilerOptions,
|
||||
isSourceFileFromExternalLibrary: (file: SourceFile) => boolean,
|
||||
getResolvedProjectReferenceToRedirect: (fileName: string) => ResolvedProjectReference | undefined
|
||||
) {
|
||||
return !(options.noEmitForJsFiles && isSourceFileJS(sourceFile)) &&
|
||||
!sourceFile.isDeclarationFile &&
|
||||
!isSourceFileFromExternalLibrary(sourceFile) &&
|
||||
|
||||
Reference in New Issue
Block a user