(fileName, getSourceFile, fail, reason)
| 118098 | return getSourceFileFromReferenceWorker(resolveTripleslashReference(ref.fileName, referencingFile.fileName), getSourceFile); |
| 118099 | } |
| 118100 | function getSourceFileFromReferenceWorker(fileName, getSourceFile, fail, reason) { |
| 118101 | if (ts.hasExtension(fileName)) { |
| 118102 | var canonicalFileName_1 = host.getCanonicalFileName(fileName); |
| 118103 | if (!options.allowNonTsExtensions && !ts.forEach(ts.flatten(supportedExtensionsWithJsonIfResolveJsonModule), function (extension) { return ts.fileExtensionIs(canonicalFileName_1, extension); })) { |
| 118104 | if (fail) { |
| 118105 | if (ts.hasJSFileExtension(canonicalFileName_1)) { |
| 118106 | fail(ts.Diagnostics.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option, fileName); |
| 118107 | } |
| 118108 | else { |
| 118109 | fail(ts.Diagnostics.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1, fileName, "'" + ts.flatten(supportedExtensions).join("', '") + "'"); |
| 118110 | } |
| 118111 | } |
| 118112 | return undefined; |
| 118113 | } |
| 118114 | var sourceFile = getSourceFile(fileName); |
| 118115 | if (fail) { |
| 118116 | if (!sourceFile) { |
| 118117 | var redirect = getProjectReferenceRedirect(fileName); |
| 118118 | if (redirect) { |
| 118119 | fail(ts.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect, fileName); |
| 118120 | } |
| 118121 | else { |
| 118122 | fail(ts.Diagnostics.File_0_not_found, fileName); |
| 118123 | } |
| 118124 | } |
| 118125 | else if (isReferencedFile(reason) && canonicalFileName_1 === host.getCanonicalFileName(getSourceFileByPath(reason.file).fileName)) { |
| 118126 | fail(ts.Diagnostics.A_file_cannot_have_a_reference_to_itself); |
| 118127 | } |
| 118128 | } |
| 118129 | return sourceFile; |
| 118130 | } |
| 118131 | else { |
| 118132 | var sourceFileNoExtension = options.allowNonTsExtensions && getSourceFile(fileName); |
| 118133 | if (sourceFileNoExtension) |
| 118134 | return sourceFileNoExtension; |
| 118135 | if (fail && options.allowNonTsExtensions) { |
| 118136 | fail(ts.Diagnostics.File_0_not_found, fileName); |
| 118137 | return undefined; |
| 118138 | } |
| 118139 | // Only try adding extensions from the first supported group (which should be .ts/.tsx/.d.ts) |
| 118140 | var sourceFileWithAddedExtension = ts.forEach(supportedExtensions[0], function (extension) { return getSourceFile(fileName + extension); }); |
| 118141 | if (fail && !sourceFileWithAddedExtension) |
| 118142 | fail(ts.Diagnostics.Could_not_resolve_the_path_0_with_the_extensions_Colon_1, fileName, "'" + ts.flatten(supportedExtensions).join("', '") + "'"); |
| 118143 | return sourceFileWithAddedExtension; |
| 118144 | } |
| 118145 | } |
| 118146 | /** This has side effects through `findSourceFile`. */ |
| 118147 | function processSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, packageId, reason) { |
| 118148 | getSourceFileFromReferenceWorker(fileName, function (fileName) { return findSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId); }, // TODO: GH#18217 |
no test coverage detected
searching dependent graphs…