Skip to content

Commit 03aee92

Browse files
committed
PR feedback
1 parent bd229b5 commit 03aee92

File tree

3 files changed

+28
-25
lines changed

3 files changed

+28
-25
lines changed

src/compiler/emitter.ts

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -135,36 +135,34 @@ namespace ts {
135135
return configFile.options.rootDir || getDirectoryPath(Debug.assertDefined(configFile.options.configFilePath));
136136
}
137137

138+
function getOutputPathWithoutChangingExt(inputFileName: string, configFile: ParsedCommandLine, ignoreCase: boolean, outputDir: string | undefined) {
139+
return outputDir ?
140+
resolvePath(
141+
outputDir,
142+
getRelativePathFromDirectory(rootDirOfOptions(configFile), inputFileName, ignoreCase)
143+
) :
144+
inputFileName;
145+
}
146+
138147
/* @internal */
139148
export function getOutputDeclarationFileName(inputFileName: string, configFile: ParsedCommandLine, ignoreCase: boolean) {
140149
Debug.assert(!fileExtensionIs(inputFileName, Extension.Dts) && hasTSFileExtension(inputFileName));
141-
let outputPath: string;
142-
const declarationDir = configFile.options.declarationDir || configFile.options.outDir;
143-
if (declarationDir) {
144-
const relativePath = getRelativePathFromDirectory(rootDirOfOptions(configFile), inputFileName, ignoreCase);
145-
outputPath = resolvePath(declarationDir, relativePath);
146-
}
147-
else {
148-
outputPath = inputFileName;
149-
}
150-
return changeExtension(outputPath, Extension.Dts);
150+
return changeExtension(
151+
getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, configFile.options.declarationDir || configFile.options.outDir),
152+
Extension.Dts
153+
);
151154
}
152155

153156
function getOutputJSFileName(inputFileName: string, configFile: ParsedCommandLine, ignoreCase: boolean) {
154-
let outputPath: string;
155-
if (configFile.options.outDir) {
156-
const relativePath = getRelativePathFromDirectory(rootDirOfOptions(configFile), inputFileName, ignoreCase);
157-
outputPath = resolvePath(configFile.options.outDir, relativePath);
158-
}
159-
else {
160-
outputPath = inputFileName;
161-
}
162157
const isJsonFile = fileExtensionIs(inputFileName, Extension.Json);
163-
const outputFileName = changeExtension(outputPath, isJsonFile ?
164-
Extension.Json :
165-
fileExtensionIs(inputFileName, Extension.Tsx) && configFile.options.jsx === JsxEmit.Preserve ?
166-
Extension.Jsx :
167-
Extension.Js);
158+
const outputFileName = changeExtension(
159+
getOutputPathWithoutChangingExt(inputFileName, configFile, ignoreCase, configFile.options.outDir),
160+
isJsonFile ?
161+
Extension.Json :
162+
fileExtensionIs(inputFileName, Extension.Tsx) && configFile.options.jsx === JsxEmit.Preserve ?
163+
Extension.Jsx :
164+
Extension.Js
165+
);
168166
return !isJsonFile || comparePaths(inputFileName, outputFileName, Debug.assertDefined(configFile.options.configFilePath), ignoreCase) !== Comparison.EqualTo ?
169167
outputFileName :
170168
undefined;

src/compiler/program.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2741,7 +2741,7 @@ namespace ts {
27412741

27422742
// List of collected files is complete; validate exhautiveness if this is a project with a file list
27432743
if (options.composite) {
2744-
const rootPaths = rootNames.map(r => toPath(r));
2744+
const rootPaths = rootNames.map(toPath);
27452745
for (const file of files) {
27462746
// Ignore declaration files
27472747
if (file.isDeclarationFile) continue;

src/compiler/utilities.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3437,7 +3437,12 @@ namespace ts {
34373437
}
34383438

34393439
/** Don't call this for `--outFile`, just for `--outDir` or plain emit. `--outFile` needs additional checks. */
3440-
export function sourceFileMayBeEmitted(sourceFile: SourceFile, options: CompilerOptions, isSourceFileFromExternalLibrary: (file: SourceFile) => boolean, getResolvedProjectReferenceToRedirect: (fileName: string) => ResolvedProjectReference | undefined) {
3440+
export function sourceFileMayBeEmitted(
3441+
sourceFile: SourceFile,
3442+
options: CompilerOptions,
3443+
isSourceFileFromExternalLibrary: (file: SourceFile) => boolean,
3444+
getResolvedProjectReferenceToRedirect: (fileName: string) => ResolvedProjectReference | undefined
3445+
) {
34413446
return !(options.noEmitForJsFiles && isSourceFileJS(sourceFile)) &&
34423447
!sourceFile.isDeclarationFile &&
34433448
!isSourceFileFromExternalLibrary(sourceFile) &&

0 commit comments

Comments
 (0)