diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index 33b1db24fce..1b0a5791802 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -16,51 +16,37 @@ namespace ts { * At least one of `ts` and `js` should be defined, or the whole thing should be `undefined`. */ interface Resolved { - ts: string | undefined; - js: string | undefined; + path: string; + extension: Extension; } /** - * Given a resolution result which does not have a resolvedTsFileName, combine it with second attempt. - * This should be used in the following pattern: - * - * const attemptA = foo(); - * return attemptA && attemptA.ts ? attemptA : combineAttempts(attemptA, bar()); - * - * Meaning, we stop early if we found a typed result. + * Kinds of file that we are currently looking for. + * Typically there is one pass with Extensions.TypeScript, then a second pass with Extensions.JavaScript. */ - function combineAttempts(firstAttempt: Resolved | undefined, secondAttempt: Resolved | undefined): Resolved | undefined { - Debug.assert(!(firstAttempt && firstAttempt.ts)); - return firstAttempt && secondAttempt - ? { ts: secondAttempt.ts, js: firstAttempt.js } - : (firstAttempt || secondAttempt); + const enum Extensions { + TypeScript, /** '.ts', '.tsx', or '.d.ts' */ + JavaScript, /** '.js' or '.jsx' */ + DtsOnly /** Only '.d.ts' */ } - /** - * Whether we are looking for all supported extensions or only `.d.ts` files. - * We look for tsx/jsx/js files even if the compiler settings do not allow them -- this will be a checker error. - */ - enum Extensions { All, DtsOnly } - - /** Used with `Extensions.DtsOnly` to use just the `ts` component, since `js` can't possibly be defined. */ - function resolvedTsOnly(resolved: Resolved | undefined): string | undefined { - Debug.assert(!(resolved && resolved.js)); - return resolved && resolved.ts; + /** Used with `Extensions.DtsOnly` to extract the path from TypeScript results. */ + function resolvedTypeScriptOnly(resolved: Resolved | undefined): string | undefined { + if (!resolved) { + return undefined; + } + Debug.assert(extensionIsTypeScript(resolved.extension)); + return resolved.path; } /** Create Resolved from a file with unknown extension. */ function resolvedFromAnyFile(path: string): Resolved | undefined { - return fileExtensionIsAny(path, supportedTypeScriptExtensions) ? { ts: path, js: undefined } : { ts: undefined, js: path }; - } - - /* @internal */ - export function resolvedModuleFromAnyFile(fileName: string, isExternalLibraryImport: boolean): ResolvedModule { - return resolvedModuleFromResolved(resolvedFromAnyFile(fileName), isExternalLibraryImport); + return { path, extension: extensionFromPath(path) }; } /** Adds `isExernalLibraryImport` to a Resolved to get a ResolvedModule. */ - function resolvedModuleFromResolved({ ts, js }: Resolved, isExternalLibraryImport: boolean): ResolvedModule { - return { resolvedFileName: ts || js, resolvedTsFileName: ts, resolvedJsFileName: js, isExternalLibraryImport }; + function resolvedModuleFromResolved({ path, extension }: Resolved, isExternalLibraryImport: boolean): ResolvedModule { + return { resolvedFileName: path, extension, isExternalLibraryImport }; } function createResolvedModuleWithFailedLookupLocations(resolved: Resolved | undefined, isExternalLibraryImport: boolean, failedLookupLocations: string[]): ResolvedModuleWithFailedLookupLocations { @@ -74,13 +60,28 @@ namespace ts { interface ModuleResolutionState { host: ModuleResolutionHost; // We only use this subset of the compiler options. - compilerOptions: { rootDirs?: string[], baseUrl?: string, paths?: MapLike; }; + compilerOptions: { rootDirs?: string[], baseUrl?: string, paths?: MapLike }; traceEnabled: boolean; } - function tryReadTypesSection(packageJsonPath: string, baseDirectory: string, state: ModuleResolutionState): string { + function tryReadTypesSection(extensions: Extensions, packageJsonPath: string, baseDirectory: string, state: ModuleResolutionState): string { const jsonContent = readJson(packageJsonPath, state.host); + switch (extensions) { + case Extensions.DtsOnly: + case Extensions.TypeScript: + return tryReadFromField("typings") || tryReadFromField("types"); + + case Extensions.JavaScript: + if (typeof jsonContent.main === "string") { + if (state.traceEnabled) { + trace(state.host, Diagnostics.No_types_specified_in_package_json_so_returning_main_value_of_0, jsonContent.main); + } + return normalizePath(combinePaths(baseDirectory, jsonContent.main)); + } + return undefined; + } + function tryReadFromField(fieldName: string) { if (hasProperty(jsonContent, fieldName)) { const typesFile = (jsonContent)[fieldName]; @@ -98,20 +99,6 @@ namespace ts { } } } - - const typesFilePath = tryReadFromField("typings") || tryReadFromField("types"); - if (typesFilePath) { - return typesFilePath; - } - - // Use the main module for inferring types if no types package specified and the allowJs is set - if (typeof jsonContent.main === "string") { - if (state.traceEnabled) { - trace(state.host, Diagnostics.No_types_specified_in_package_json_so_returning_main_value_of_0, jsonContent.main); - } - return normalizePath(combinePaths(baseDirectory, jsonContent.main)); - } - return undefined; } function readJson(path: string, host: ModuleResolutionHost): { typings?: string, types?: string, main?: string } { @@ -214,7 +201,7 @@ namespace ts { const candidate = combinePaths(typeRoot, typeReferenceDirectiveName); const candidateDirectory = getDirectoryPath(candidate); - const resolved = resolvedTsOnly( + const resolved = resolvedTypeScriptOnly( loadNodeModuleFromDirectory(Extensions.DtsOnly, candidate, failedLookupLocations, !directoryProbablyExists(candidateDirectory, host), moduleResolutionState)); @@ -243,7 +230,7 @@ namespace ts { if (traceEnabled) { trace(host, Diagnostics.Looking_up_in_node_modules_folder_initial_location_0, initialLocationForSecondaryLookup); } - resolvedFile = resolvedTsOnly(loadModuleFromNodeModules(Extensions.DtsOnly, typeReferenceDirectiveName, initialLocationForSecondaryLookup, failedLookupLocations, moduleResolutionState, /*checkOneLevel*/ false)); + resolvedFile = resolvedTypeScriptOnly(loadModuleFromNodeModules(Extensions.DtsOnly, typeReferenceDirectiveName, initialLocationForSecondaryLookup, failedLookupLocations, moduleResolutionState, /*checkOneLevel*/ false)); if (traceEnabled) { if (resolvedFile) { trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, resolvedFile, false); @@ -351,7 +338,7 @@ namespace ts { * 'typings' entry or file 'index' with some supported extension * - Classic loader will only try to interpret '/a/b/c' as file. */ - type ResolutionKindSpecificLoader = (candidate: string, failedLookupLocations: string[], onlyRecordFailures: boolean, state: ModuleResolutionState) => Resolved | undefined; + type ResolutionKindSpecificLoader = (extensions: Extensions, candidate: string, failedLookupLocations: string[], onlyRecordFailures: boolean, state: ModuleResolutionState) => Resolved | undefined; /** * Any module resolution kind can be augmented with optional settings: 'baseUrl', 'paths' and 'rootDirs' - they are used to @@ -413,18 +400,18 @@ namespace ts { * be converted to a path relative to found rootDir entry './content/protocols/file2' (*). As a last step compiler will check all remaining * entries in 'rootDirs', use them to build absolute path out of (*) and try to resolve module from this location. */ - function tryLoadModuleUsingOptionalResolutionSettings(moduleName: string, containingDirectory: string, loader: ResolutionKindSpecificLoader, + function tryLoadModuleUsingOptionalResolutionSettings(extensions: Extensions, moduleName: string, containingDirectory: string, loader: ResolutionKindSpecificLoader, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { if (moduleHasNonRelativeName(moduleName)) { - return tryLoadModuleUsingBaseUrl(moduleName, loader, failedLookupLocations, state); + return tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, failedLookupLocations, state); } else { - return tryLoadModuleUsingRootDirs(moduleName, containingDirectory, loader, failedLookupLocations, state); + return tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, failedLookupLocations, state); } } - function tryLoadModuleUsingRootDirs(moduleName: string, containingDirectory: string, loader: ResolutionKindSpecificLoader, + function tryLoadModuleUsingRootDirs(extensions: Extensions, moduleName: string, containingDirectory: string, loader: ResolutionKindSpecificLoader, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { if (!state.compilerOptions.rootDirs) { @@ -470,7 +457,7 @@ namespace ts { if (state.traceEnabled) { trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, matchedNormalizedPrefix, candidate); } - const resolvedFileName = loader(candidate, failedLookupLocations, !directoryProbablyExists(containingDirectory, state.host), state); + const resolvedFileName = loader(extensions, candidate, failedLookupLocations, !directoryProbablyExists(containingDirectory, state.host), state); if (resolvedFileName) { return resolvedFileName; } @@ -489,7 +476,7 @@ namespace ts { trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, rootDir, candidate); } const baseDirectory = getDirectoryPath(candidate); - const resolvedFileName = loader(candidate, failedLookupLocations, !directoryProbablyExists(baseDirectory, state.host), state); + const resolvedFileName = loader(extensions, candidate, failedLookupLocations, !directoryProbablyExists(baseDirectory, state.host), state); if (resolvedFileName) { return resolvedFileName; } @@ -501,7 +488,7 @@ namespace ts { return undefined; } - function tryLoadModuleUsingBaseUrl(moduleName: string, loader: ResolutionKindSpecificLoader, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { + function tryLoadModuleUsingBaseUrl(extensions: Extensions, moduleName: string, loader: ResolutionKindSpecificLoader, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { if (!state.compilerOptions.baseUrl) { return undefined; } @@ -530,7 +517,7 @@ namespace ts { if (state.traceEnabled) { trace(state.host, Diagnostics.Trying_substitution_0_candidate_module_location_Colon_1, subst, path); } - const resolved = loader(candidate, failedLookupLocations, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state); + const resolved = loader(extensions, candidate, failedLookupLocations, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state); if (resolved) { return resolved; } @@ -544,7 +531,7 @@ namespace ts { trace(state.host, Diagnostics.Resolving_module_name_0_relative_to_base_url_1_2, moduleName, state.compilerOptions.baseUrl, candidate); } - return loader(candidate, failedLookupLocations, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state); + return loader(extensions, candidate, failedLookupLocations, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state); } } @@ -554,48 +541,54 @@ namespace ts { const failedLookupLocations: string[] = []; const state: ModuleResolutionState = { compilerOptions, host, traceEnabled }; - let resolved = tryLoadModuleUsingOptionalResolutionSettings(moduleName, containingDirectory, nodeLoadModuleByRelativeName, failedLookupLocations, state); - let isExternalLibraryImport = false; - if (!resolved) { + const result = tryResolve(Extensions.TypeScript) || tryResolve(Extensions.JavaScript); + if (result) { + const { resolved, isExternalLibraryImport } = result; + return createResolvedModuleWithFailedLookupLocations(resolved && resolvedWithRealpath(resolved, host, traceEnabled), isExternalLibraryImport, failedLookupLocations); + } + return { resolvedModule: undefined, failedLookupLocations }; + + function tryResolve(extensions: Extensions): { resolved: Resolved, isExternalLibraryImport: boolean } | undefined { + const resolved = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, nodeLoadModuleByRelativeName, failedLookupLocations, state); + if (resolved) { + return { resolved, isExternalLibraryImport: false }; + } + if (moduleHasNonRelativeName(moduleName)) { if (traceEnabled) { trace(host, Diagnostics.Loading_module_0_from_node_modules_folder, moduleName); } - resolved = loadModuleFromNodeModules(Extensions.All, moduleName, containingDirectory, failedLookupLocations, state, /*checkOneLevel*/ false); - isExternalLibraryImport = resolved !== undefined; + const resolved = loadModuleFromNodeModules(extensions, moduleName, containingDirectory, failedLookupLocations, state, /*checkOneLevel*/ false); + return resolved && { resolved, isExternalLibraryImport: true }; } else { const candidate = normalizePath(combinePaths(containingDirectory, moduleName)); - resolved = nodeLoadModuleByRelativeName(candidate, failedLookupLocations, /*onlyRecordFailures*/ false, state); + const resolved = nodeLoadModuleByRelativeName(extensions, candidate, failedLookupLocations, /*onlyRecordFailures*/ false, state); + return resolved && { resolved, isExternalLibraryImport: false }; } } - - return createResolvedModuleWithFailedLookupLocations(resolved && resolvedWithRealpath(resolved, host, traceEnabled), isExternalLibraryImport, failedLookupLocations); } function resolvedWithRealpath(resolved: Resolved, host: ModuleResolutionHost, traceEnabled: boolean): Resolved { - return host.realpath ? { ts: resolved.ts && realpath(resolved.ts), js: resolved.js && realpath(resolved.js) } : resolved; - - function realpath(path: string): string { - const real = normalizePath(host.realpath(path)); - if (traceEnabled) { - trace(host, Diagnostics.Resolving_real_path_for_0_result_1, path, real); - } - return real; + if (!host.realpath) { + return resolved; } + + const real = normalizePath(host.realpath(resolved.path)); + if (traceEnabled) { + trace(host, Diagnostics.Resolving_real_path_for_0_result_1, resolved.path, real); + } + return { path: real, extension: resolved.extension }; } - function nodeLoadModuleByRelativeName(candidate: string, failedLookupLocations: string[], onlyRecordFailures: boolean, state: ModuleResolutionState): Resolved | undefined { + function nodeLoadModuleByRelativeName(extensions: Extensions, candidate: string, failedLookupLocations: string[], onlyRecordFailures: boolean, state: ModuleResolutionState): Resolved | undefined { if (state.traceEnabled) { trace(state.host, Diagnostics.Loading_module_as_file_Slash_folder_candidate_module_location_0, candidate); } - const resolvedFromFile = !pathEndsWithDirectorySeparator(candidate) && loadModuleFromFile(Extensions.All, candidate, failedLookupLocations, onlyRecordFailures, state); - return resolvedFromFile && resolvedFromFile.ts - ? resolvedFromFile - : combineAttempts(resolvedFromFile, - loadNodeModuleFromDirectory(Extensions.All, candidate, failedLookupLocations, onlyRecordFailures, state)); + const resolvedFromFile = !pathEndsWithDirectorySeparator(candidate) && loadModuleFromFile(extensions, candidate, failedLookupLocations, onlyRecordFailures, state); + return resolvedFromFile || loadNodeModuleFromDirectory(extensions, candidate, failedLookupLocations, onlyRecordFailures, state); } /* @internal */ @@ -604,10 +597,6 @@ namespace ts { return !host.directoryExists || host.directoryExists(directoryName); } - function loadModuleFromFileAnyExtension(candidate: string, failedLookupLocations: string[], onlyRecordFailures: boolean, state: ModuleResolutionState): Resolved | undefined { - return loadModuleFromFile(Extensions.All, candidate, failedLookupLocations, onlyRecordFailures, state); - } - /** * @param {boolean} onlyRecordFailures - if true then function won't try to actually load files but instead record all attempts as failures. This flag is necessary * in cases when we know upfront that all load attempts will fail (because containing folder does not exists) however we still need to record all failed lookup locations. @@ -627,7 +616,7 @@ namespace ts { const extension = candidate.substring(extensionless.length); trace(state.host, Diagnostics.File_name_0_has_a_1_extension_stripping_it, candidate, extension); } - return tryAddingExtensions(extensionless, Extensions.All, failedLookupLocations, onlyRecordFailures, state); + return tryAddingExtensions(extensionless, extensions, failedLookupLocations, onlyRecordFailures, state); } } @@ -642,23 +631,17 @@ namespace ts { } switch (extensions) { - case Extensions.DtsOnly: { - const dts = tryExtension(".d.ts"); - return dts && { ts: dts, js: undefined }; - } - case Extensions.All: { - const ts = forEach(supportedTypeScriptExtensions, tryExtension); - if (ts) { - return { ts, js: undefined }; - } - - const js = forEach(supportedJavascriptExtensions, tryExtension); - return js && { ts: undefined, js }; - } + case Extensions.DtsOnly: + return tryExtension(".d.ts", Extension.Dts); + case Extensions.TypeScript: + return tryExtension(".ts", Extension.Ts) || tryExtension(".tsx", Extension.Tsx) || tryExtension(".d.ts", Extension.Dts); + case Extensions.JavaScript: + return tryExtension(".js", Extension.Js) || tryExtension(".jsx", Extension.Jsx); } - function tryExtension(ext: string): string | undefined { - return tryFile(candidate + ext, failedLookupLocations, onlyRecordFailures, state); + function tryExtension(ext: string, extension: Extension): Resolved | undefined { + const path = tryFile(candidate + ext, failedLookupLocations, onlyRecordFailures, state); + return path && { path, extension }; } } @@ -683,23 +666,22 @@ namespace ts { const packageJsonPath = pathToPackageJson(candidate); const directoryExists = !onlyRecordFailures && directoryProbablyExists(candidate, state.host); - let fromPackageJson: Resolved | undefined; - if (directoryExists && state.host.fileExists(packageJsonPath)) { if (state.traceEnabled) { trace(state.host, Diagnostics.Found_package_json_at_0, packageJsonPath); } - const typesFile = tryReadTypesSection(packageJsonPath, candidate, state); + const typesFile = tryReadTypesSection(extensions, packageJsonPath, candidate, state); if (typesFile) { const onlyRecordFailures = !directoryProbablyExists(getDirectoryPath(typesFile), state.host); // A package.json "typings" may specify an exact filename, or may choose to omit an extension. const fromFile = tryFile(typesFile, failedLookupLocation, onlyRecordFailures, state); if (fromFile) { + // Note: this would allow a package.json to specify a ".js" file as typings. Maybe that should be forbidden. return resolvedFromAnyFile(fromFile); } - fromPackageJson = tryAddingExtensions(typesFile, Extensions.All, failedLookupLocation, onlyRecordFailures, state); - if (fromPackageJson && fromPackageJson.ts) { - return fromPackageJson; + const x = tryAddingExtensions(typesFile, Extensions.TypeScript, failedLookupLocation, onlyRecordFailures, state); + if (x) { + return x; } } else { @@ -716,7 +698,7 @@ namespace ts { failedLookupLocation.push(packageJsonPath); } - return combineAttempts(fromPackageJson, loadModuleFromFile(extensions, combinePaths(candidate, "index"), failedLookupLocation, !directoryExists, state)); + return loadModuleFromFile(extensions, combinePaths(candidate, "index"), failedLookupLocation, !directoryExists, state); } function pathToPackageJson(directory: string): string { @@ -728,54 +710,39 @@ namespace ts { const nodeModulesFolderExists = directoryProbablyExists(nodeModulesFolder, state.host); const candidate = normalizePath(combinePaths(nodeModulesFolder, moduleName)); - let result = loadModuleFromFile(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state); - if (result) { - return result; - } - result = loadNodeModuleFromDirectory(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state); - if (result) { - return result; - } + return loadModuleFromFile(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state) || + loadNodeModuleFromDirectory(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state); } function loadModuleFromNodeModules(extensions: Extensions, moduleName: string, directory: string, failedLookupLocations: string[], state: ModuleResolutionState, checkOneLevel: boolean): Resolved | undefined { return loadModuleFromNodeModulesWorker(extensions, moduleName, directory, failedLookupLocations, state, checkOneLevel, /*typesOnly*/ false); } function loadModuleFromNodeModulesAtTypes(moduleName: string, directory: string, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { - return loadModuleFromNodeModulesWorker(Extensions.All, moduleName, directory, failedLookupLocations, state, /*checkOneLevel*/ false, /*typesOnly*/ true); + return loadModuleFromNodeModulesWorker(Extensions.TypeScript, moduleName, directory, failedLookupLocations, state, /*checkOneLevel*/ false, /*typesOnly*/ true); } function loadModuleFromNodeModulesWorker(extensions: Extensions, moduleName: string, directory: string, failedLookupLocations: string[], state: ModuleResolutionState, checkOneLevel: boolean, typesOnly: boolean): Resolved | undefined { directory = normalizeSlashes(directory); while (true) { - const baseName = getBaseFileName(directory); - if (baseName !== "node_modules") { - let packageResult: Resolved | undefined; - if (!typesOnly) { - // Try to load source from the package - packageResult = loadModuleFromNodeModulesFolder(extensions, moduleName, directory, failedLookupLocations, state); - if (packageResult && packageResult.ts) { - // Always prefer a TypeScript (.ts, .tsx, .d.ts) file shipped with the package - return packageResult; - } + if (getBaseFileName(directory) !== "node_modules") { + const resolved = tryInDirectory(); + if (resolved) { + return resolved; } - - // Else prefer a types package over non-TypeScript results (e.g. JavaScript files) - const typesResult = loadModuleFromNodeModulesFolder(extensions, combinePaths("@types", moduleName), directory, failedLookupLocations, state); - if (typesResult || packageResult) { - return combineAttempts(packageResult, typesResult); - } - // TODO (anhans): We should remember JS results and use them for untyped results. } const parentPath = getDirectoryPath(directory); if (parentPath === directory || checkOneLevel) { - break; + return undefined; } directory = parentPath; } - return undefined; + + function tryInDirectory(): Resolved | undefined { + const packageResult = typesOnly ? undefined : loadModuleFromNodeModulesFolder(extensions, moduleName, directory, failedLookupLocations, state); + return packageResult || loadModuleFromNodeModulesFolder(extensions, combinePaths("@types", moduleName), directory, failedLookupLocations, state); + } } export function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations { @@ -784,30 +751,37 @@ namespace ts { const failedLookupLocations: string[] = []; const containingDirectory = getDirectoryPath(containingFile); - const resolvedUsingSettings = tryLoadModuleUsingOptionalResolutionSettings(moduleName, containingDirectory, loadModuleFromFileAnyExtension, failedLookupLocations, state); - if (resolvedUsingSettings) { - return createResolvedModuleWithFailedLookupLocations(resolvedUsingSettings, /*isExternalLibraryImport*/ false, failedLookupLocations); - } - - let resolved: Resolved | undefined; - if (moduleHasNonRelativeName(moduleName)) { - resolved = loadModuleFromAncestorDirectories(moduleName, containingDirectory, failedLookupLocations, state) || - // If we didn't find the file normally, look it up in @types. - loadModuleFromNodeModulesAtTypes(moduleName, containingDirectory, failedLookupLocations, state); - } - else { - const candidate = normalizePath(combinePaths(containingDirectory, moduleName)); - resolved = loadModuleFromFileAnyExtension(candidate, failedLookupLocations, /*onlyRecordFailures*/ false, state); - } - + const resolved = tryResolve(Extensions.TypeScript) || tryResolve(Extensions.JavaScript); return createResolvedModuleWithFailedLookupLocations(resolved, /*isExternalLibraryImport*/ false, failedLookupLocations); + + function tryResolve(extensions: Extensions): Resolved | undefined { + const resolvedUsingSettings = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loadModuleFromFile, failedLookupLocations, state); + if (resolvedUsingSettings) { + return resolvedUsingSettings; + } + + if (moduleHasNonRelativeName(moduleName)) { + const resolved = loadModuleFromAncestorDirectories(extensions, moduleName, containingDirectory, failedLookupLocations, state); + if (resolved) { + return resolved; + } + if (extensions === Extensions.TypeScript) { + // If we didn't find the file normally, look it up in @types. + return loadModuleFromNodeModulesAtTypes(moduleName, containingDirectory, failedLookupLocations, state); + } + } + else { + const candidate = normalizePath(combinePaths(containingDirectory, moduleName)); + return loadModuleFromFile(extensions, candidate, failedLookupLocations, /*onlyRecordFailures*/ false, state); + } + } } /** Climb up parent directories looking for a module. */ - function loadModuleFromAncestorDirectories(moduleName: string, containingDirectory: string, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { + function loadModuleFromAncestorDirectories(extensions: Extensions, moduleName: string, containingDirectory: string, failedLookupLocations: string[], state: ModuleResolutionState): Resolved | undefined { while (true) { const searchName = normalizePath(combinePaths(containingDirectory, moduleName)); - const referencedSourceFile = loadModuleFromFileAnyExtension(searchName, failedLookupLocations, /*onlyRecordFailures*/ false, state); + const referencedSourceFile = loadModuleFromFile(extensions, searchName, failedLookupLocations, /*onlyRecordFailures*/ false, state); if (referencedSourceFile) { return referencedSourceFile; } @@ -831,7 +805,8 @@ namespace ts { } const state: ModuleResolutionState = { compilerOptions, host, traceEnabled }; const failedLookupLocations: string[] = []; - const resolved = loadModuleFromNodeModules(Extensions.All, moduleName, globalCache, failedLookupLocations, state, /*checkOneLevel*/ true); + const resolved = loadModuleFromNodeModules(Extensions.TypeScript, moduleName, globalCache, failedLookupLocations, state, /*checkOneLevel*/ true) || + loadModuleFromNodeModules(Extensions.JavaScript, moduleName, globalCache, failedLookupLocations, state, /*checkOneLevel*/ true); return createResolvedModuleWithFailedLookupLocations(resolved, /*isExternalLibraryImport*/ true, failedLookupLocations); } } \ No newline at end of file diff --git a/src/compiler/program.ts b/src/compiler/program.ts index a0cfe222c09..b2f8ab98f81 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -331,7 +331,15 @@ namespace ts { let resolveModuleNamesWorker: (moduleNames: string[], containingFile: string) => ResolvedModule[]; if (host.resolveModuleNames) { - resolveModuleNamesWorker = (moduleNames, containingFile) => host.resolveModuleNames(moduleNames, containingFile).map(convertResolvedModuleFromHost); + resolveModuleNamesWorker = (moduleNames, containingFile) => host.resolveModuleNames(moduleNames, containingFile).map(resolved => { + // An older host may have omitted extension, in which case we should infer it from the file extension of resolvedFileName. + if (!resolved || resolved.extension) { + return resolved; + } + resolved = clone(resolved); + resolved.extension = extensionFromPath(resolved.resolvedFileName); + return resolved; + }); } else { const loader = (moduleName: string, containingFile: string) => resolveModuleName(moduleName, containingFile, options, host).resolvedModule; @@ -1317,7 +1325,7 @@ namespace ts { } const isFromNodeModulesSearch = resolution.isExternalLibraryImport; - const isJsFileFromNodeModules = isFromNodeModulesSearch && !resolution.resolvedTsFileName; + const isJsFileFromNodeModules = isFromNodeModulesSearch && !extensionIsTypeScript(resolution.extension); const resolvedFileName = resolution.resolvedFileName; if (isFromNodeModulesSearch) { @@ -1581,20 +1589,19 @@ namespace ts { * Returns a DiagnosticMessage if we can't use a resolved module due to its extension. * The DiagnosticMessage's parameters are the imported module name, and the filename it resolved to. */ - export function getResolutionDiagnostic(options: CompilerOptions, { resolvedTsFileName: ts, resolvedJsFileName: js }: ResolvedModule): DiagnosticMessage | undefined { - if (ts) { - return !options.jsx && fileExtensionIs(ts, ".tsx") ? Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set : undefined; - } - else { - if (!options.allowJs) { - return Diagnostics.Module_0_was_resolved_to_1_but_allowJs_is_not_set; - } - else if (!options.jsx && fileExtensionIs(js!, ".jsx")) { - return Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set; - } - else { + export function getResolutionDiagnostic(options: CompilerOptions, { extension }: ResolvedModule): DiagnosticMessage | undefined { + switch (extension) { + case Extension.Ts: + case Extension.Dts: + // These are always allowed. return undefined; - } + + case Extension.Tsx: + case Extension.Jsx: + return options.jsx ? undefined : Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set; + + case Extension.Js: + return options.allowJs ? undefined : Diagnostics.Module_0_was_resolved_to_1_but_allowJs_is_not_set; } } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 3e43d3ddf10..88e42c0388a 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -3296,22 +3296,26 @@ namespace ts { * else resolution should just return `undefined` instead of a ResolvedModule. */ export interface ResolvedModule { - /** - * This should always be set to `resolvedTsFileName || resolvedJsFileName`. - * Present for backwards compatibility. - */ + /** Path of the file the module was resolved to. */ resolvedFileName: string; - /** TypeScript (.d.ts, .ts, .tsx) file that the module was resolved to. This will be preferred over a JS file. */ - resolvedTsFileName?: string; - /** JavaScript (or .jsx) file that the module was resolved to. This should be returned even if '--allowJs' (or '--jsx') is disabled. */ - resolvedJsFileName?: string; + /** Extension of resolvedFileName. This must match what's at the end of resolvedFileName. */ + extension: Extension; /** * Denotes if 'resolvedFileName' is isExternalLibraryImport and thus should be a proper external module: * - be a .d.ts file * - use top level imports\exports * - don't use tripleslash references */ - isExternalLibraryImport: boolean; + isExternalLibraryImport?: boolean; + } + + export enum Extension { + Ts, + Tsx, + Dts, + Js, + Jsx, + LastTypeScriptExtension = Dts } export interface ResolvedModuleWithFailedLookupLocations { diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index cd75ca6d4d4..8398aa1aa19 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -118,30 +118,6 @@ namespace ts { sourceFile.resolvedModules[moduleNameText] = resolvedModule; } - /** An older host may have omitted resolvedTsFileName and resolvedJsFileName, in which case we should infer them from the file extension of resolvedFileName. */ - export function convertResolvedModuleFromHost(resolved: ResolvedModule | undefined): ResolvedModule | undefined { - if (resolved === undefined) { - return undefined; - } - // At least one of `resolevdTsFileName` or `resolvedJsFileName` should be defined. - else if (resolved.resolvedTsFileName || resolved.resolvedJsFileName) { - const { resolvedFileName, resolvedTsFileName, resolvedJsFileName } = resolved as ResolvedModule; - Debug.assert(resolvedFileName === (resolvedTsFileName || resolvedJsFileName)); - return resolved; - } - else { - // For backwards compatibility, if both `resolvedTsFileName` and `resolvedJsFileName` are undefined, we infer one of them to define. - const { resolvedFileName, isExternalLibraryImport } = resolved; - if (fileExtensionIsAny(resolvedFileName, supportedTypeScriptExtensions)) { - return { resolvedFileName, resolvedTsFileName: resolvedFileName, resolvedJsFileName: undefined, isExternalLibraryImport }; - } - else { - Debug.assert(fileExtensionIsAny(resolvedFileName, supportedJavascriptExtensions)); - return { resolvedFileName, resolvedTsFileName: undefined, resolvedJsFileName: resolvedFileName, isExternalLibraryImport }; - } - } - } - export function setResolvedTypeReferenceDirective(sourceFile: SourceFile, typeReferenceDirectiveName: string, resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective): void { if (!sourceFile.resolvedTypeReferenceDirectiveNames) { sourceFile.resolvedTypeReferenceDirectiveNames = createMap(); @@ -157,9 +133,39 @@ namespace ts { */ export function moduleResolutionIsEqualTo(oldResolution: ResolvedModule, newResolution: ResolvedModule): boolean { return oldResolution.isExternalLibraryImport === newResolution.isExternalLibraryImport && + oldResolution.extension === newResolution.extension && oldResolution.resolvedFileName === newResolution.resolvedFileName; } + /** True if an extension is one of the supported TypeScript extensions. */ + export function extensionIsTypeScript(ext: Extension): boolean { + return ext <= Extension.LastTypeScriptExtension; + } + + /** + * Gets the extension from a path. + * Path must have a valid extension. + */ + export function extensionFromPath(path: string): Extension { + if (fileExtensionIs(path, ".d.ts")) { + return Extension.Dts; + } + if (fileExtensionIs(path, ".ts")) { + return Extension.Ts; + } + if (fileExtensionIs(path, ".tsx")) { + return Extension.Tsx; + } + if (fileExtensionIs(path, ".js")) { + return Extension.Js; + } + if (fileExtensionIs(path, ".jsx")) { + return Extension.Jsx; + } + Debug.fail(`File ${path} has unknown extension.`); + return Extension.Js; + } + /* @internal */ export function typeDirectiveIsEqualTo(oldResolution: ResolvedTypeReferenceDirective, newResolution: ResolvedTypeReferenceDirective): boolean { return oldResolution.resolvedFileName === newResolution.resolvedFileName && oldResolution.primary === newResolution.primary; diff --git a/src/harness/unittests/moduleResolution.ts b/src/harness/unittests/moduleResolution.ts index 21e7f6f990d..a713d93cfe0 100644 --- a/src/harness/unittests/moduleResolution.ts +++ b/src/harness/unittests/moduleResolution.ts @@ -4,8 +4,8 @@ namespace ts { export function checkResolvedModule(expected: ResolvedModule, actual: ResolvedModule): boolean { if (!expected === !actual) { if (expected) { - assert.isTrue(expected.resolvedTsFileName === actual.resolvedTsFileName, `'resolvedTsFileName': expected '${expected.resolvedTsFileName}' to be equal to '${actual.resolvedTsFileName}'`); - assert.isTrue(expected.resolvedJsFileName === actual.resolvedJsFileName, `'resolvedTsFileName': expected '${expected.resolvedJsFileName}' to be equal to '${actual.resolvedJsFileName}'`); + assert.isTrue(expected.resolvedFileName === actual.resolvedFileName, `'resolvedFileName': expected '${expected.resolvedFileName}' to be equal to '${actual.resolvedFileName}'`); + assert.isTrue(expected.extension === actual.extension, `'ext': expected '${Extension[expected.extension]}' to be equal to '${Extension[actual.extension]}'`); assert.isTrue(expected.isExternalLibraryImport === actual.isExternalLibraryImport, `'isExternalLibraryImport': expected '${expected.isExternalLibraryImport}' to be equal to '${actual.isExternalLibraryImport}'`); } return true; @@ -19,8 +19,8 @@ namespace ts { assert.deepEqual(actual.failedLookupLocations, expectedFailedLookupLocations); } - export function createTsResolvedModule(resolvedTsFileName: string, isExternalLibraryImport = false): ResolvedModule { - return { resolvedFileName: resolvedTsFileName, resolvedTsFileName, resolvedJsFileName: undefined, isExternalLibraryImport }; + export function createResolvedModule(resolvedFileName: string, isExternalLibraryImport = false): ResolvedModule { + return { resolvedFileName, extension: extensionFromPath(resolvedFileName), isExternalLibraryImport }; } interface File { @@ -75,7 +75,7 @@ namespace ts { const containingFile = { name: containingFileName }; const moduleFile = { name: moduleFileNameNoExt + ext }; const resolution = nodeModuleNameResolver(moduleName, containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, moduleFile)); - checkResolvedModule(resolution.resolvedModule, createTsResolvedModule(moduleFile.name)); + checkResolvedModule(resolution.resolvedModule, createResolvedModule(moduleFile.name)); const failedLookupLocations: string[] = []; const dir = getDirectoryPath(containingFileName); @@ -118,9 +118,9 @@ namespace ts { const packageJson = { name: packageJsonFileName, content: JSON.stringify({ "typings": fieldRef }) }; const moduleFile = { name: moduleFileName }; const resolution = nodeModuleNameResolver(moduleName, containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, packageJson, moduleFile)); - checkResolvedModule(resolution.resolvedModule, createTsResolvedModule(moduleFile.name)); + checkResolvedModule(resolution.resolvedModule, createResolvedModule(moduleFile.name)); // expect three failed lookup location - attempt to load module as file with all supported extensions - assert.equal(resolution.failedLookupLocations.length, allSupportedExtensions.length); + assert.equal(resolution.failedLookupLocations.length, supportedTypeScriptExtensions.length); } } @@ -145,7 +145,7 @@ namespace ts { const resolution = nodeModuleNameResolver("b", containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, packageJson, moduleFile, indexFile)); - checkResolvedModule(resolution.resolvedModule, createTsResolvedModule(indexPath, /*isExternalLibraryImport*/true)); + checkResolvedModule(resolution.resolvedModule, createResolvedModule(indexPath, /*isExternalLibraryImport*/true)); } } @@ -167,18 +167,10 @@ namespace ts { const packageJson = { name: "/a/b/foo/package.json", content: JSON.stringify({ main: "/c/d" }) }; const indexFile = { name: "/a/b/foo/index.d.ts" }; const resolution = nodeModuleNameResolver("./foo", containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, packageJson, indexFile)); - checkResolvedModuleWithFailedLookupLocations(resolution, createTsResolvedModule(indexFile.name), [ + checkResolvedModuleWithFailedLookupLocations(resolution, createResolvedModule(indexFile.name), [ "/a/b/foo.ts", "/a/b/foo.tsx", "/a/b/foo.d.ts", - "/a/b/foo.js", - "/a/b/foo.jsx", - "/c/d", - "/c/d.ts", - "/c/d.tsx", - "/c/d.d.ts", - "/c/d.js", - "/c/d.jsx", "/a/b/foo/index.ts", "/a/b/foo/index.tsx", ]); @@ -195,58 +187,42 @@ namespace ts { const containingFile = { name: "/a/b/c/d/e.ts" }; const moduleFile = { name: "/a/b/node_modules/foo.ts" }; const resolution = nodeModuleNameResolver("foo", containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, moduleFile)); - checkResolvedModuleWithFailedLookupLocations(resolution, createTsResolvedModule(moduleFile.name, /*isExternalLibraryImport*/ true), [ + checkResolvedModuleWithFailedLookupLocations(resolution, createResolvedModule(moduleFile.name, /*isExternalLibraryImport*/ true), [ "/a/b/c/d/node_modules/foo.ts", "/a/b/c/d/node_modules/foo.tsx", "/a/b/c/d/node_modules/foo.d.ts", - "/a/b/c/d/node_modules/foo.js", - "/a/b/c/d/node_modules/foo.jsx", "/a/b/c/d/node_modules/foo/package.json", "/a/b/c/d/node_modules/foo/index.ts", "/a/b/c/d/node_modules/foo/index.tsx", "/a/b/c/d/node_modules/foo/index.d.ts", - "/a/b/c/d/node_modules/foo/index.js", - "/a/b/c/d/node_modules/foo/index.jsx", "/a/b/c/d/node_modules/@types/foo.ts", "/a/b/c/d/node_modules/@types/foo.tsx", "/a/b/c/d/node_modules/@types/foo.d.ts", - "/a/b/c/d/node_modules/@types/foo.js", - "/a/b/c/d/node_modules/@types/foo.jsx", "/a/b/c/d/node_modules/@types/foo/package.json", "/a/b/c/d/node_modules/@types/foo/index.ts", "/a/b/c/d/node_modules/@types/foo/index.tsx", "/a/b/c/d/node_modules/@types/foo/index.d.ts", - "/a/b/c/d/node_modules/@types/foo/index.js", - "/a/b/c/d/node_modules/@types/foo/index.jsx", "/a/b/c/node_modules/foo.ts", "/a/b/c/node_modules/foo.tsx", "/a/b/c/node_modules/foo.d.ts", - "/a/b/c/node_modules/foo.js", - "/a/b/c/node_modules/foo.jsx", "/a/b/c/node_modules/foo/package.json", "/a/b/c/node_modules/foo/index.ts", "/a/b/c/node_modules/foo/index.tsx", "/a/b/c/node_modules/foo/index.d.ts", - "/a/b/c/node_modules/foo/index.js", - "/a/b/c/node_modules/foo/index.jsx", "/a/b/c/node_modules/@types/foo.ts", "/a/b/c/node_modules/@types/foo.tsx", "/a/b/c/node_modules/@types/foo.d.ts", - "/a/b/c/node_modules/@types/foo.js", - "/a/b/c/node_modules/@types/foo.jsx", "/a/b/c/node_modules/@types/foo/package.json", "/a/b/c/node_modules/@types/foo/index.ts", "/a/b/c/node_modules/@types/foo/index.tsx", "/a/b/c/node_modules/@types/foo/index.d.ts", - "/a/b/c/node_modules/@types/foo/index.js", - "/a/b/c/node_modules/@types/foo/index.jsx", ]); } }); @@ -259,7 +235,7 @@ namespace ts { const containingFile = { name: "/a/b/c/d/e.ts" }; const moduleFile = { name: "/a/b/node_modules/foo.d.ts" }; const resolution = nodeModuleNameResolver("foo", containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, moduleFile)); - checkResolvedModule(resolution.resolvedModule, createTsResolvedModule(moduleFile.name, /*isExternalLibraryImport*/ true)); + checkResolvedModule(resolution.resolvedModule, createResolvedModule(moduleFile.name, /*isExternalLibraryImport*/ true)); } }); @@ -271,90 +247,64 @@ namespace ts { const containingFile = { name: "/a/node_modules/b/c/node_modules/d/e.ts" }; const moduleFile = { name: "/a/node_modules/foo/index.d.ts" }; const resolution = nodeModuleNameResolver("foo", containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, moduleFile)); - checkResolvedModuleWithFailedLookupLocations(resolution, createTsResolvedModule(moduleFile.name, /*isExternalLibraryImport*/ true), [ + checkResolvedModuleWithFailedLookupLocations(resolution, createResolvedModule(moduleFile.name, /*isExternalLibraryImport*/ true), [ "/a/node_modules/b/c/node_modules/d/node_modules/foo.ts", "/a/node_modules/b/c/node_modules/d/node_modules/foo.tsx", "/a/node_modules/b/c/node_modules/d/node_modules/foo.d.ts", - "/a/node_modules/b/c/node_modules/d/node_modules/foo.js", - "/a/node_modules/b/c/node_modules/d/node_modules/foo.jsx", "/a/node_modules/b/c/node_modules/d/node_modules/foo/package.json", "/a/node_modules/b/c/node_modules/d/node_modules/foo/index.ts", "/a/node_modules/b/c/node_modules/d/node_modules/foo/index.tsx", "/a/node_modules/b/c/node_modules/d/node_modules/foo/index.d.ts", - "/a/node_modules/b/c/node_modules/d/node_modules/foo/index.js", - "/a/node_modules/b/c/node_modules/d/node_modules/foo/index.jsx", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo.ts", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo.tsx", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo.d.ts", - "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo.js", - "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo.jsx", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo/package.json", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo/index.ts", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo/index.tsx", "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo/index.d.ts", - "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo/index.js", - "/a/node_modules/b/c/node_modules/d/node_modules/@types/foo/index.jsx", "/a/node_modules/b/c/node_modules/foo.ts", "/a/node_modules/b/c/node_modules/foo.tsx", "/a/node_modules/b/c/node_modules/foo.d.ts", - "/a/node_modules/b/c/node_modules/foo.js", - "/a/node_modules/b/c/node_modules/foo.jsx", "/a/node_modules/b/c/node_modules/foo/package.json", "/a/node_modules/b/c/node_modules/foo/index.ts", "/a/node_modules/b/c/node_modules/foo/index.tsx", "/a/node_modules/b/c/node_modules/foo/index.d.ts", - "/a/node_modules/b/c/node_modules/foo/index.js", - "/a/node_modules/b/c/node_modules/foo/index.jsx", "/a/node_modules/b/c/node_modules/@types/foo.ts", "/a/node_modules/b/c/node_modules/@types/foo.tsx", "/a/node_modules/b/c/node_modules/@types/foo.d.ts", - "/a/node_modules/b/c/node_modules/@types/foo.js", - "/a/node_modules/b/c/node_modules/@types/foo.jsx", "/a/node_modules/b/c/node_modules/@types/foo/package.json", "/a/node_modules/b/c/node_modules/@types/foo/index.ts", "/a/node_modules/b/c/node_modules/@types/foo/index.tsx", "/a/node_modules/b/c/node_modules/@types/foo/index.d.ts", - "/a/node_modules/b/c/node_modules/@types/foo/index.js", - "/a/node_modules/b/c/node_modules/@types/foo/index.jsx", "/a/node_modules/b/node_modules/foo.ts", "/a/node_modules/b/node_modules/foo.tsx", "/a/node_modules/b/node_modules/foo.d.ts", - "/a/node_modules/b/node_modules/foo.js", - "/a/node_modules/b/node_modules/foo.jsx", "/a/node_modules/b/node_modules/foo/package.json", "/a/node_modules/b/node_modules/foo/index.ts", "/a/node_modules/b/node_modules/foo/index.tsx", "/a/node_modules/b/node_modules/foo/index.d.ts", - "/a/node_modules/b/node_modules/foo/index.js", - "/a/node_modules/b/node_modules/foo/index.jsx", "/a/node_modules/b/node_modules/@types/foo.ts", "/a/node_modules/b/node_modules/@types/foo.tsx", "/a/node_modules/b/node_modules/@types/foo.d.ts", - "/a/node_modules/b/node_modules/@types/foo.js", - "/a/node_modules/b/node_modules/@types/foo.jsx", "/a/node_modules/b/node_modules/@types/foo/package.json", "/a/node_modules/b/node_modules/@types/foo/index.ts", "/a/node_modules/b/node_modules/@types/foo/index.tsx", "/a/node_modules/b/node_modules/@types/foo/index.d.ts", - "/a/node_modules/b/node_modules/@types/foo/index.js", - "/a/node_modules/b/node_modules/@types/foo/index.jsx", "/a/node_modules/foo.ts", "/a/node_modules/foo.tsx", "/a/node_modules/foo.d.ts", - "/a/node_modules/foo.js", - "/a/node_modules/foo.jsx", "/a/node_modules/foo/package.json", "/a/node_modules/foo/index.ts", @@ -564,15 +514,15 @@ import b = require("./moduleB"); const options: CompilerOptions = { moduleResolution, baseUrl: "/root" }; { const result = resolveModuleName("folder2/file2", file1.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(file2.name), []); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(file2.name), []); } { const result = resolveModuleName("./file3", file2.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(file3.name), []); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(file3.name), []); } { const result = resolveModuleName("/root/folder1/file1", file2.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(file1.name), []); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(file1.name), []); } } } @@ -601,7 +551,7 @@ import b = require("./moduleB"); function check(name: string, caller: File, expected: File, isExternalLibraryImport = false) { const result = resolveModuleName(name, caller.name, options, host); - checkResolvedModule(result.resolvedModule, createTsResolvedModule(expected.name, isExternalLibraryImport)); + checkResolvedModule(result.resolvedModule, createResolvedModule(expected.name, isExternalLibraryImport)); } } }); @@ -623,7 +573,7 @@ import b = require("./moduleB"); function check(name: string, caller: File, expected: File) { const result = resolveModuleName(name, caller.name, options, host); - checkResolvedModule(result.resolvedModule, createTsResolvedModule(expected.name)); + checkResolvedModule(result.resolvedModule, createResolvedModule(expected.name)); } } }); @@ -664,15 +614,11 @@ import b = require("./moduleB"); "/root/folder1/file2.ts", "/root/folder1/file2.tsx", "/root/folder1/file2.d.ts", - "/root/folder1/file2.js", - "/root/folder1/file2.jsx", "/root/folder1/file2/package.json", "/root/folder1/file2/index.ts", "/root/folder1/file2/index.tsx", "/root/folder1/file2/index.d.ts", - "/root/folder1/file2/index.js", - "/root/folder1/file2/index.jsx", // then first attempt on 'generated/*' was successful ]); check("folder2/file3", file3, [ @@ -680,22 +626,16 @@ import b = require("./moduleB"); "/root/folder2/file3.ts", "/root/folder2/file3.tsx", "/root/folder2/file3.d.ts", - "/root/folder2/file3.js", - "/root/folder2/file3.jsx", "/root/folder2/file3/package.json", "/root/folder2/file3/index.ts", "/root/folder2/file3/index.tsx", "/root/folder2/file3/index.d.ts", - "/root/folder2/file3/index.js", - "/root/folder2/file3/index.jsx", // then use remapped location "/root/generated/folder2/file3.ts", "/root/generated/folder2/file3.tsx", "/root/generated/folder2/file3.d.ts", - "/root/generated/folder2/file3.js", - "/root/generated/folder2/file3.jsx", "/root/generated/folder2/file3/package.json", "/root/generated/folder2/file3/index.ts", @@ -707,22 +647,16 @@ import b = require("./moduleB"); "/root/folder2/file4.ts", "/root/folder2/file4.tsx", "/root/folder2/file4.d.ts", - "/root/folder2/file4.js", - "/root/folder2/file4.jsx", "/root/folder2/file4/package.json", "/root/folder2/file4/index.ts", "/root/folder2/file4/index.tsx", "/root/folder2/file4/index.d.ts", - "/root/folder2/file4/index.js", - "/root/folder2/file4/index.jsx", // try to load from file from remapped location "/root/generated/folder2/file4.ts", "/root/generated/folder2/file4.tsx", "/root/generated/folder2/file4.d.ts", - "/root/generated/folder2/file4.js", - "/root/generated/folder2/file4.jsx", // success on loading as from folder ]); check("somefolder/file5", file5, [ @@ -731,8 +665,6 @@ import b = require("./moduleB"); "/root/someanotherfolder/file5.ts", "/root/someanotherfolder/file5.tsx", "/root/someanotherfolder/file5.d.ts", - "/root/someanotherfolder/file5.js", - "/root/someanotherfolder/file5.jsx", // load from folder "/root/someanotherfolder/file5/package.json", @@ -746,67 +678,51 @@ import b = require("./moduleB"); "/root/file6.ts", "/root/file6.tsx", "/root/file6.d.ts", - "/root/file6.js", - "/root/file6.jsx", // load from folder "/root/file6/package.json", "/root/file6/index.ts", "/root/file6/index.tsx", "/root/file6/index.d.ts", - "/root/file6/index.js", - "/root/file6/index.jsx", // then try 'generated/*' // load from file "/root/generated/file6.ts", "/root/generated/file6.tsx", "/root/generated/file6.d.ts", - "/root/generated/file6.js", - "/root/generated/file6.jsx", // load from folder "/root/generated/file6/package.json", "/root/generated/file6/index.ts", "/root/generated/file6/index.tsx", "/root/generated/file6/index.d.ts", - "/root/generated/file6/index.js", - "/root/generated/file6/index.jsx", // fallback to standard node behavior // load from file "/root/folder1/node_modules/file6.ts", "/root/folder1/node_modules/file6.tsx", "/root/folder1/node_modules/file6.d.ts", - "/root/folder1/node_modules/file6.js", - "/root/folder1/node_modules/file6.jsx", // load from folder "/root/folder1/node_modules/file6/package.json", "/root/folder1/node_modules/file6/index.ts", "/root/folder1/node_modules/file6/index.tsx", "/root/folder1/node_modules/file6/index.d.ts", - "/root/folder1/node_modules/file6/index.js", - "/root/folder1/node_modules/file6/index.jsx", "/root/folder1/node_modules/@types/file6.ts", "/root/folder1/node_modules/@types/file6.tsx", "/root/folder1/node_modules/@types/file6.d.ts", - "/root/folder1/node_modules/@types/file6.js", - "/root/folder1/node_modules/@types/file6.jsx", "/root/folder1/node_modules/@types/file6/package.json", "/root/folder1/node_modules/@types/file6/index.ts", "/root/folder1/node_modules/@types/file6/index.tsx", "/root/folder1/node_modules/@types/file6/index.d.ts", - "/root/folder1/node_modules/@types/file6/index.js", - "/root/folder1/node_modules/@types/file6/index.jsx", // success on /root/node_modules/file6.ts ], /*isExternalLibraryImport*/ true); function check(name: string, expected: File, expectedFailedLookups: string[], isExternalLibraryImport = false) { const result = resolveModuleName(name, main.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(expected.name, isExternalLibraryImport), expectedFailedLookups); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(expected.name, isExternalLibraryImport), expectedFailedLookups); } } }); @@ -843,8 +759,6 @@ import b = require("./moduleB"); "/root/folder1/file2.ts", "/root/folder1/file2.tsx", "/root/folder1/file2.d.ts", - "/root/folder1/file2.js", - "/root/folder1/file2.jsx", // success when using 'generated/*' ]); check("folder1/file3", file3, [ @@ -852,30 +766,22 @@ import b = require("./moduleB"); "/root/folder1/file3.ts", "/root/folder1/file3.tsx", "/root/folder1/file3.d.ts", - "/root/folder1/file3.js", - "/root/folder1/file3.jsx", // then try 'generated/*' "/root/generated/folder1/file3.ts", "/root/generated/folder1/file3.tsx", "/root/generated/folder1/file3.d.ts", - "/root/generated/folder1/file3.js", - "/root/generated/folder1/file3.jsx", // fallback to classic "/root/folder1/folder1/file3.ts", "/root/folder1/folder1/file3.tsx", "/root/folder1/folder1/file3.d.ts", - "/root/folder1/folder1/file3.js", - "/root/folder1/folder1/file3.jsx", "/root/folder1/file3.ts", "/root/folder1/file3.tsx", "/root/folder1/file3.d.ts", - "/root/folder1/file3.js", - "/root/folder1/file3.jsx", ]); function check(name: string, expected: File, expectedFailedLookups: string[]) { const result = resolveModuleName(name, main.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(expected.name), expectedFailedLookups); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(expected.name), expectedFailedLookups); } } }); @@ -903,15 +809,11 @@ import b = require("./moduleB"); "/root/folder1/file2.ts", "/root/folder1/file2.tsx", "/root/folder1/file2.d.ts", - "/root/folder1/file2.js", - "/root/folder1/file2.jsx", // load from folder "/root/folder1/file2/package.json", "/root/folder1/file2/index.ts", "/root/folder1/file2/index.tsx", "/root/folder1/file2/index.d.ts", - "/root/folder1/file2/index.js", - "/root/folder1/file2/index.jsx", // success after using alternative rootDir entry ]); check("../folder1/file1", file3, file1, [ @@ -920,15 +822,11 @@ import b = require("./moduleB"); "/root/generated/folder1/file1.ts", "/root/generated/folder1/file1.tsx", "/root/generated/folder1/file1.d.ts", - "/root/generated/folder1/file1.js", - "/root/generated/folder1/file1.jsx", // load from module "/root/generated/folder1/file1/package.json", "/root/generated/folder1/file1/index.ts", "/root/generated/folder1/file1/index.tsx", "/root/generated/folder1/file1/index.d.ts", - "/root/generated/folder1/file1/index.js", - "/root/generated/folder1/file1/index.jsx", // success after using alternative rootDir entry ]); check("../folder1/file1_1", file3, file1_1, [ @@ -937,22 +835,16 @@ import b = require("./moduleB"); "/root/generated/folder1/file1_1.ts", "/root/generated/folder1/file1_1.tsx", "/root/generated/folder1/file1_1.d.ts", - "/root/generated/folder1/file1_1.js", - "/root/generated/folder1/file1_1.jsx", // load from folder "/root/generated/folder1/file1_1/package.json", "/root/generated/folder1/file1_1/index.ts", "/root/generated/folder1/file1_1/index.tsx", "/root/generated/folder1/file1_1/index.d.ts", - "/root/generated/folder1/file1_1/index.js", - "/root/generated/folder1/file1_1/index.jsx", // try alternative rootDir entry // load from file "/root/folder1/file1_1.ts", "/root/folder1/file1_1.tsx", "/root/folder1/file1_1.d.ts", - "/root/folder1/file1_1.js", - "/root/folder1/file1_1.jsx", // load from directory "/root/folder1/file1_1/package.json", "/root/folder1/file1_1/index.ts", @@ -962,7 +854,7 @@ import b = require("./moduleB"); function check(name: string, container: File, expected: File, expectedFailedLookups: string[]) { const result = resolveModuleName(name, container.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(expected.name), expectedFailedLookups); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(expected.name), expectedFailedLookups); } } }); @@ -989,8 +881,6 @@ import b = require("./moduleB"); "/root/folder1/file2.ts", "/root/folder1/file2.tsx", "/root/folder1/file2.d.ts", - "/root/folder1/file2.js", - "/root/folder1/file2.jsx", // then try alternative rootDir entry ]); check("../folder1/file1", file3, file1, [ @@ -998,8 +888,6 @@ import b = require("./moduleB"); "/root/generated/folder1/file1.ts", "/root/generated/folder1/file1.tsx", "/root/generated/folder1/file1.d.ts", - "/root/generated/folder1/file1.js", - "/root/generated/folder1/file1.jsx", // then try alternative rootDir entry ]); check("folder1/file1_1", file3, file4, [ @@ -1007,26 +895,20 @@ import b = require("./moduleB"); "/root/generated/folder2/folder1/file1_1.ts", "/root/generated/folder2/folder1/file1_1.tsx", "/root/generated/folder2/folder1/file1_1.d.ts", - "/root/generated/folder2/folder1/file1_1.js", - "/root/generated/folder2/folder1/file1_1.jsx", // other entry in rootDirs "/root/generated/folder1/file1_1.ts", "/root/generated/folder1/file1_1.tsx", "/root/generated/folder1/file1_1.d.ts", - "/root/generated/folder1/file1_1.js", - "/root/generated/folder1/file1_1.jsx", // fallback "/root/folder1/file1_1.ts", "/root/folder1/file1_1.tsx", "/root/folder1/file1_1.d.ts", - "/root/folder1/file1_1.js", - "/root/folder1/file1_1.jsx", // found one ]); function check(name: string, container: File, expected: File, expectedFailedLookups: string[]) { const result = resolveModuleName(name, container.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(expected.name), expectedFailedLookups); + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(expected.name), expectedFailedLookups); } } }); @@ -1048,13 +930,11 @@ import b = require("./moduleB"); } }; const result = resolveModuleName("libs/guid", app.name, options, host); - checkResolvedModuleWithFailedLookupLocations(result, createTsResolvedModule(libsTypings.name), [ + checkResolvedModuleWithFailedLookupLocations(result, createResolvedModule(libsTypings.name), [ // first try to load module as file "/root/src/libs/guid.ts", "/root/src/libs/guid.tsx", "/root/src/libs/guid.d.ts", - "/root/src/libs/guid.js", - "/root/src/libs/guid.jsx", ]); } }); diff --git a/src/harness/unittests/reuseProgramStructure.ts b/src/harness/unittests/reuseProgramStructure.ts index 66b966aed16..f3457b61145 100644 --- a/src/harness/unittests/reuseProgramStructure.ts +++ b/src/harness/unittests/reuseProgramStructure.ts @@ -295,7 +295,7 @@ namespace ts { const options: CompilerOptions = { target }; const program_1 = newProgram(files, ["a.ts"], options); - checkResolvedModulesCache(program_1, "a.ts", createMap({ "b": createTsResolvedModule("b.ts") })); + checkResolvedModulesCache(program_1, "a.ts", createMap({ "b": createResolvedModule("b.ts") })); checkResolvedModulesCache(program_1, "b.ts", undefined); const program_2 = updateProgram(program_1, ["a.ts"], options, files => { @@ -304,7 +304,7 @@ namespace ts { assert.isTrue(program_1.structureIsReused); // content of resolution cache should not change - checkResolvedModulesCache(program_1, "a.ts", createMap({ "b": createTsResolvedModule("b.ts") })); + checkResolvedModulesCache(program_1, "a.ts", createMap({ "b": createResolvedModule("b.ts") })); checkResolvedModulesCache(program_1, "b.ts", undefined); // imports has changed - program is not reused @@ -321,7 +321,7 @@ namespace ts { files[0].text = files[0].text.updateImportsAndExports(newImports); }); assert.isTrue(!program_3.structureIsReused); - checkResolvedModulesCache(program_4, "a.ts", createMap({ "b": createTsResolvedModule("b.ts"), "c": undefined })); + checkResolvedModulesCache(program_4, "a.ts", createMap({ "b": createResolvedModule("b.ts"), "c": undefined })); }); it("resolved type directives cache follows type directives", () => { diff --git a/src/harness/unittests/tsserverProjectSystem.ts b/src/harness/unittests/tsserverProjectSystem.ts index c3962c77494..c65d85c9405 100644 --- a/src/harness/unittests/tsserverProjectSystem.ts +++ b/src/harness/unittests/tsserverProjectSystem.ts @@ -1667,67 +1667,74 @@ namespace ts.projectSystem { "File '/a/b/node_modules/lib.ts' does not exist.", "File '/a/b/node_modules/lib.tsx' does not exist.", "File '/a/b/node_modules/lib.d.ts' does not exist.", - "File '/a/b/node_modules/lib.js' does not exist.", - "File '/a/b/node_modules/lib.jsx' does not exist.", "File '/a/b/node_modules/lib/package.json' does not exist.", "File '/a/b/node_modules/lib/index.ts' does not exist.", "File '/a/b/node_modules/lib/index.tsx' does not exist.", "File '/a/b/node_modules/lib/index.d.ts' does not exist.", - "File '/a/b/node_modules/lib/index.js' does not exist.", - "File '/a/b/node_modules/lib/index.jsx' does not exist.", "File '/a/b/node_modules/@types/lib.ts' does not exist.", "File '/a/b/node_modules/@types/lib.tsx' does not exist.", "File '/a/b/node_modules/@types/lib.d.ts' does not exist.", - "File '/a/b/node_modules/@types/lib.js' does not exist.", - "File '/a/b/node_modules/@types/lib.jsx' does not exist.", "File '/a/b/node_modules/@types/lib/package.json' does not exist.", "File '/a/b/node_modules/@types/lib/index.ts' does not exist.", "File '/a/b/node_modules/@types/lib/index.tsx' does not exist.", "File '/a/b/node_modules/@types/lib/index.d.ts' does not exist.", - "File '/a/b/node_modules/@types/lib/index.js' does not exist.", - "File '/a/b/node_modules/@types/lib/index.jsx' does not exist.", "File '/a/node_modules/lib.ts' does not exist.", "File '/a/node_modules/lib.tsx' does not exist.", "File '/a/node_modules/lib.d.ts' does not exist.", - "File '/a/node_modules/lib.js' does not exist.", - "File '/a/node_modules/lib.jsx' does not exist.", "File '/a/node_modules/lib/package.json' does not exist.", "File '/a/node_modules/lib/index.ts' does not exist.", "File '/a/node_modules/lib/index.tsx' does not exist.", "File '/a/node_modules/lib/index.d.ts' does not exist.", - "File '/a/node_modules/lib/index.js' does not exist.", - "File '/a/node_modules/lib/index.jsx' does not exist.", "File '/a/node_modules/@types/lib.ts' does not exist.", "File '/a/node_modules/@types/lib.tsx' does not exist.", "File '/a/node_modules/@types/lib.d.ts' does not exist.", - "File '/a/node_modules/@types/lib.js' does not exist.", - "File '/a/node_modules/@types/lib.jsx' does not exist.", "File '/a/node_modules/@types/lib/package.json' does not exist.", "File '/a/node_modules/@types/lib/index.ts' does not exist.", "File '/a/node_modules/@types/lib/index.tsx' does not exist.", "File '/a/node_modules/@types/lib/index.d.ts' does not exist.", - "File '/a/node_modules/@types/lib/index.js' does not exist.", - "File '/a/node_modules/@types/lib/index.jsx' does not exist.", "File '/node_modules/lib.ts' does not exist.", "File '/node_modules/lib.tsx' does not exist.", "File '/node_modules/lib.d.ts' does not exist.", - "File '/node_modules/lib.js' does not exist.", - "File '/node_modules/lib.jsx' does not exist.", "File '/node_modules/lib/package.json' does not exist.", "File '/node_modules/lib/index.ts' does not exist.", "File '/node_modules/lib/index.tsx' does not exist.", "File '/node_modules/lib/index.d.ts' does not exist.", - "File '/node_modules/lib/index.js' does not exist.", - "File '/node_modules/lib/index.jsx' does not exist.", "File '/node_modules/@types/lib.ts' does not exist.", "File '/node_modules/@types/lib.tsx' does not exist.", "File '/node_modules/@types/lib.d.ts' does not exist.", - "File '/node_modules/@types/lib.js' does not exist.", - "File '/node_modules/@types/lib.jsx' does not exist.", "File '/node_modules/@types/lib/package.json' does not exist.", "File '/node_modules/@types/lib/index.ts' does not exist.", "File '/node_modules/@types/lib/index.tsx' does not exist.", "File '/node_modules/@types/lib/index.d.ts' does not exist.", + "Loading module 'lib' from 'node_modules' folder.", + "File '/a/b/node_modules/lib.js' does not exist.", + "File '/a/b/node_modules/lib.jsx' does not exist.", + "File '/a/b/node_modules/lib/package.json' does not exist.", + "File '/a/b/node_modules/lib/index.js' does not exist.", + "File '/a/b/node_modules/lib/index.jsx' does not exist.", + "File '/a/b/node_modules/@types/lib.js' does not exist.", + "File '/a/b/node_modules/@types/lib.jsx' does not exist.", + "File '/a/b/node_modules/@types/lib/package.json' does not exist.", + "File '/a/b/node_modules/@types/lib/index.js' does not exist.", + "File '/a/b/node_modules/@types/lib/index.jsx' does not exist.", + "File '/a/node_modules/lib.js' does not exist.", + "File '/a/node_modules/lib.jsx' does not exist.", + "File '/a/node_modules/lib/package.json' does not exist.", + "File '/a/node_modules/lib/index.js' does not exist.", + "File '/a/node_modules/lib/index.jsx' does not exist.", + "File '/a/node_modules/@types/lib.js' does not exist.", + "File '/a/node_modules/@types/lib.jsx' does not exist.", + "File '/a/node_modules/@types/lib/package.json' does not exist.", + "File '/a/node_modules/@types/lib/index.js' does not exist.", + "File '/a/node_modules/@types/lib/index.jsx' does not exist.", + "File '/node_modules/lib.js' does not exist.", + "File '/node_modules/lib.jsx' does not exist.", + "File '/node_modules/lib/package.json' does not exist.", + "File '/node_modules/lib/index.js' does not exist.", + "File '/node_modules/lib/index.jsx' does not exist.", + "File '/node_modules/@types/lib.js' does not exist.", + "File '/node_modules/@types/lib.jsx' does not exist.", + "File '/node_modules/@types/lib/package.json' does not exist.", "File '/node_modules/@types/lib/index.js' does not exist.", "File '/node_modules/@types/lib/index.jsx' does not exist.", "======== Module name 'lib' was not resolved. ========", @@ -1735,19 +1742,13 @@ namespace ts.projectSystem { "File '/a/cache/node_modules/lib.ts' does not exist.", "File '/a/cache/node_modules/lib.tsx' does not exist.", "File '/a/cache/node_modules/lib.d.ts' does not exist.", - "File '/a/cache/node_modules/lib.js' does not exist.", - "File '/a/cache/node_modules/lib.jsx' does not exist.", "File '/a/cache/node_modules/lib/package.json' does not exist.", "File '/a/cache/node_modules/lib/index.ts' does not exist.", "File '/a/cache/node_modules/lib/index.tsx' does not exist.", "File '/a/cache/node_modules/lib/index.d.ts' does not exist.", - "File '/a/cache/node_modules/lib/index.js' does not exist.", - "File '/a/cache/node_modules/lib/index.jsx' does not exist.", "File '/a/cache/node_modules/@types/lib.ts' does not exist.", "File '/a/cache/node_modules/@types/lib.tsx' does not exist.", "File '/a/cache/node_modules/@types/lib.d.ts' does not exist.", - "File '/a/cache/node_modules/@types/lib.js' does not exist.", - "File '/a/cache/node_modules/@types/lib.jsx' does not exist.", "File '/a/cache/node_modules/@types/lib/package.json' does not exist.", "File '/a/cache/node_modules/@types/lib/index.ts' does not exist.", "File '/a/cache/node_modules/@types/lib/index.tsx' does not exist.", diff --git a/src/server/lsHost.ts b/src/server/lsHost.ts index c95b834b8eb..8a8861e412e 100644 --- a/src/server/lsHost.ts +++ b/src/server/lsHost.ts @@ -25,7 +25,7 @@ namespace ts.server { : undefined; const primaryResult = resolveModuleName(moduleName, containingFile, compilerOptions, host); // return result immediately only if it is .ts, .tsx or .d.ts - if (!(primaryResult.resolvedModule && primaryResult.resolvedModule.resolvedTsFileName) && globalCache !== undefined) { + if (!(primaryResult.resolvedModule && extensionIsTypeScript(primaryResult.resolvedModule.extension)) && globalCache !== undefined) { // otherwise try to load typings from @types // create different collection of failed lookup locations for second pass diff --git a/src/services/shims.ts b/src/services/shims.ts index a525ff43986..82e3d5971f3 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -328,7 +328,7 @@ namespace ts { const resolutionsInFile = >JSON.parse(this.shimHost.getModuleResolutionsForFile(containingFile)); return map(moduleNames, name => { const result = getProperty(resolutionsInFile, name); - return result ? resolvedModuleFromAnyFile(result, /*isExternalLibraryImport*/ false) : undefined; + return result ? { resolvedFileName: result, extension: extensionFromPath(result), isExternalLibraryImport: false } : undefined; }); }; } diff --git a/tests/baselines/reference/importWithTrailingSlash_noResolve.trace.json b/tests/baselines/reference/importWithTrailingSlash_noResolve.trace.json index db316e5db74..55b75c57dde 100644 --- a/tests/baselines/reference/importWithTrailingSlash_noResolve.trace.json +++ b/tests/baselines/reference/importWithTrailingSlash_noResolve.trace.json @@ -6,6 +6,8 @@ "File '/foo/index.ts' does not exist.", "File '/foo/index.tsx' does not exist.", "File '/foo/index.d.ts' does not exist.", + "Loading module as file / folder, candidate module location '/foo/'.", + "File '/foo/package.json' does not exist.", "File '/foo/index.js' does not exist.", "File '/foo/index.jsx' does not exist.", "======== Module name './foo/' was not resolved. ========" diff --git a/tests/baselines/reference/maxNodeModuleJsDepthDefaultsToZero.trace.json b/tests/baselines/reference/maxNodeModuleJsDepthDefaultsToZero.trace.json index e53b2a0934f..3a9d8c4ea79 100644 --- a/tests/baselines/reference/maxNodeModuleJsDepthDefaultsToZero.trace.json +++ b/tests/baselines/reference/maxNodeModuleJsDepthDefaultsToZero.trace.json @@ -5,24 +5,22 @@ "File '/node_modules/shortid.ts' does not exist.", "File '/node_modules/shortid.tsx' does not exist.", "File '/node_modules/shortid.d.ts' does not exist.", - "File '/node_modules/shortid.js' does not exist.", - "File '/node_modules/shortid.jsx' does not exist.", "File '/node_modules/shortid/package.json' does not exist.", "File '/node_modules/shortid/index.ts' does not exist.", "File '/node_modules/shortid/index.tsx' does not exist.", "File '/node_modules/shortid/index.d.ts' does not exist.", - "File '/node_modules/shortid/index.js' exist - use it as a name resolution result.", "File '/node_modules/@types/shortid.ts' does not exist.", "File '/node_modules/@types/shortid.tsx' does not exist.", "File '/node_modules/@types/shortid.d.ts' does not exist.", - "File '/node_modules/@types/shortid.js' does not exist.", - "File '/node_modules/@types/shortid.jsx' does not exist.", "File '/node_modules/@types/shortid/package.json' does not exist.", "File '/node_modules/@types/shortid/index.ts' does not exist.", "File '/node_modules/@types/shortid/index.tsx' does not exist.", "File '/node_modules/@types/shortid/index.d.ts' does not exist.", - "File '/node_modules/@types/shortid/index.js' does not exist.", - "File '/node_modules/@types/shortid/index.jsx' does not exist.", + "Loading module 'shortid' from 'node_modules' folder.", + "File '/node_modules/shortid.js' does not exist.", + "File '/node_modules/shortid.jsx' does not exist.", + "File '/node_modules/shortid/package.json' does not exist.", + "File '/node_modules/shortid/index.js' exist - use it as a name resolution result.", "Resolving real path for '/node_modules/shortid/index.js', result '/node_modules/shortid/index.js'", "======== Module name 'shortid' was successfully resolved to '/node_modules/shortid/index.js'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithExtensions.trace.json b/tests/baselines/reference/moduleResolutionWithExtensions.trace.json index 924860326b8..5060006ac56 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions.trace.json +++ b/tests/baselines/reference/moduleResolutionWithExtensions.trace.json @@ -11,8 +11,6 @@ "File '/src/a.js.ts' does not exist.", "File '/src/a.js.tsx' does not exist.", "File '/src/a.js.d.ts' does not exist.", - "File '/src/a.js.js' does not exist.", - "File '/src/a.js.jsx' does not exist.", "File name '/src/a.js' has a '.js' extension - stripping it", "File '/src/a.ts' exist - use it as a name resolution result.", "Resolving real path for '/src/a.ts', result '/src/a.ts'", @@ -23,8 +21,6 @@ "File '/src/jquery.js.ts' does not exist.", "File '/src/jquery.js.tsx' does not exist.", "File '/src/jquery.js.d.ts' does not exist.", - "File '/src/jquery.js.js' does not exist.", - "File '/src/jquery.js.jsx' does not exist.", "File name '/src/jquery.js' has a '.js' extension - stripping it", "File '/src/jquery.ts' does not exist.", "File '/src/jquery.tsx' does not exist.", diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.errors.txt b/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.errors.txt index f1da7b7728d..aa415a95b1b 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.errors.txt +++ b/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.errors.txt @@ -1,5 +1,5 @@ /a.ts(1,17): error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. -/a.ts(2,17): error TS6143: Module './jsx' was resolved to '/jsx.jsx', but '--allowJs' is not set. +/a.ts(2,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. /a.ts(3,16): error TS6143: Module './js' was resolved to '/js.js', but '--allowJs' is not set. @@ -9,7 +9,7 @@ !!! error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. import jsx from "./jsx"; ~~~~~~~ -!!! error TS6143: Module './jsx' was resolved to '/jsx.jsx', but '--allowJs' is not set. +!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. import js from "./js"; ~~~~~~ !!! error TS6143: Module './js' was resolved to '/js.js', but '--allowJs' is not set. diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.trace.json b/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.trace.json index 5628c6fb7af..0073abaca3a 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.trace.json +++ b/tests/baselines/reference/moduleResolutionWithExtensions_notSupported.trace.json @@ -12,14 +12,13 @@ "File '/jsx.ts' does not exist.", "File '/jsx.tsx' does not exist.", "File '/jsx.d.ts' does not exist.", - "File '/jsx.js' does not exist.", - "File '/jsx.jsx' exist - use it as a name resolution result.", "File '/jsx/package.json' does not exist.", "File '/jsx/index.ts' does not exist.", "File '/jsx/index.tsx' does not exist.", "File '/jsx/index.d.ts' does not exist.", - "File '/jsx/index.js' does not exist.", - "File '/jsx/index.jsx' does not exist.", + "Loading module as file / folder, candidate module location '/jsx'.", + "File '/jsx.js' does not exist.", + "File '/jsx.jsx' exist - use it as a name resolution result.", "Resolving real path for '/jsx.jsx', result '/jsx.jsx'", "======== Module name './jsx' was successfully resolved to '/jsx.jsx'. ========", "======== Resolving module './js' from '/a.ts'. ========", @@ -28,13 +27,12 @@ "File '/js.ts' does not exist.", "File '/js.tsx' does not exist.", "File '/js.d.ts' does not exist.", - "File '/js.js' exist - use it as a name resolution result.", "File '/js/package.json' does not exist.", "File '/js/index.ts' does not exist.", "File '/js/index.tsx' does not exist.", "File '/js/index.d.ts' does not exist.", - "File '/js/index.js' does not exist.", - "File '/js/index.jsx' does not exist.", + "Loading module as file / folder, candidate module location '/js'.", + "File '/js.js' exist - use it as a name resolution result.", "Resolving real path for '/js.js', result '/js.js'", "======== Module name './js' was successfully resolved to '/js.js'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_notSupported2.trace.json b/tests/baselines/reference/moduleResolutionWithExtensions_notSupported2.trace.json index 2d6170f9946..c366843ce86 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions_notSupported2.trace.json +++ b/tests/baselines/reference/moduleResolutionWithExtensions_notSupported2.trace.json @@ -5,14 +5,13 @@ "File '/jsx.ts' does not exist.", "File '/jsx.tsx' does not exist.", "File '/jsx.d.ts' does not exist.", - "File '/jsx.js' does not exist.", - "File '/jsx.jsx' exist - use it as a name resolution result.", "File '/jsx/package.json' does not exist.", "File '/jsx/index.ts' does not exist.", "File '/jsx/index.tsx' does not exist.", "File '/jsx/index.d.ts' does not exist.", - "File '/jsx/index.js' does not exist.", - "File '/jsx/index.jsx' does not exist.", + "Loading module as file / folder, candidate module location '/jsx'.", + "File '/jsx.js' does not exist.", + "File '/jsx.jsx' exist - use it as a name resolution result.", "Resolving real path for '/jsx.jsx', result '/jsx.jsx'", "======== Module name './jsx' was successfully resolved to '/jsx.jsx'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_preferTs.trace.json b/tests/baselines/reference/moduleResolutionWithExtensions_preferTs.trace.json index 150d492145c..292472c710c 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions_preferTs.trace.json +++ b/tests/baselines/reference/moduleResolutionWithExtensions_preferTs.trace.json @@ -5,10 +5,8 @@ "File '/b.ts' does not exist.", "File '/b.tsx' does not exist.", "File '/b.d.ts' does not exist.", - "File '/b.js' exist - use it as a name resolution result.", "File '/b/package.json' does not exist.", "File '/b/index.ts' exist - use it as a name resolution result.", "Resolving real path for '/b/index.ts', result '/b/index.ts'", - "Resolving real path for '/b.js', result '/b.js'", "======== Module name './b' was successfully resolved to '/b/index.ts'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_withAmbientPresent.trace.json b/tests/baselines/reference/moduleResolutionWithExtensions_withAmbientPresent.trace.json index b2b46649529..9c6d96fc190 100644 --- a/tests/baselines/reference/moduleResolutionWithExtensions_withAmbientPresent.trace.json +++ b/tests/baselines/reference/moduleResolutionWithExtensions_withAmbientPresent.trace.json @@ -5,24 +5,22 @@ "File '/node_modules/js.ts' does not exist.", "File '/node_modules/js.tsx' does not exist.", "File '/node_modules/js.d.ts' does not exist.", - "File '/node_modules/js.js' does not exist.", - "File '/node_modules/js.jsx' does not exist.", "File '/node_modules/js/package.json' does not exist.", "File '/node_modules/js/index.ts' does not exist.", "File '/node_modules/js/index.tsx' does not exist.", "File '/node_modules/js/index.d.ts' does not exist.", - "File '/node_modules/js/index.js' exist - use it as a name resolution result.", "File '/node_modules/@types/js.ts' does not exist.", "File '/node_modules/@types/js.tsx' does not exist.", "File '/node_modules/@types/js.d.ts' does not exist.", - "File '/node_modules/@types/js.js' does not exist.", - "File '/node_modules/@types/js.jsx' does not exist.", "File '/node_modules/@types/js/package.json' does not exist.", "File '/node_modules/@types/js/index.ts' does not exist.", "File '/node_modules/@types/js/index.tsx' does not exist.", "File '/node_modules/@types/js/index.d.ts' does not exist.", - "File '/node_modules/@types/js/index.js' does not exist.", - "File '/node_modules/@types/js/index.jsx' does not exist.", + "Loading module 'js' from 'node_modules' folder.", + "File '/node_modules/js.js' does not exist.", + "File '/node_modules/js.jsx' does not exist.", + "File '/node_modules/js/package.json' does not exist.", + "File '/node_modules/js/index.js' exist - use it as a name resolution result.", "Resolving real path for '/node_modules/js/index.js', result '/node_modules/js/index.js'", "======== Module name 'js' was successfully resolved to '/node_modules/js/index.js'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSymlinks.trace.json b/tests/baselines/reference/moduleResolutionWithSymlinks.trace.json index d69fa7bfb50..0f4dd90569a 100644 --- a/tests/baselines/reference/moduleResolutionWithSymlinks.trace.json +++ b/tests/baselines/reference/moduleResolutionWithSymlinks.trace.json @@ -5,8 +5,6 @@ "File '/src/library-a.ts' does not exist.", "File '/src/library-a.tsx' does not exist.", "File '/src/library-a.d.ts' does not exist.", - "File '/src/library-a.js' does not exist.", - "File '/src/library-a.jsx' does not exist.", "File '/src/library-a/package.json' does not exist.", "File '/src/library-a/index.ts' exist - use it as a name resolution result.", "Resolving real path for '/src/library-a/index.ts', result '/src/library-a/index.ts'", @@ -17,8 +15,6 @@ "File '/src/library-b.ts' does not exist.", "File '/src/library-b.tsx' does not exist.", "File '/src/library-b.d.ts' does not exist.", - "File '/src/library-b.js' does not exist.", - "File '/src/library-b.jsx' does not exist.", "File '/src/library-b/package.json' does not exist.", "File '/src/library-b/index.ts' exist - use it as a name resolution result.", "Resolving real path for '/src/library-b/index.ts', result '/src/library-b/index.ts'", @@ -29,67 +25,74 @@ "File '/src/library-b/node_modules/library-a.ts' does not exist.", "File '/src/library-b/node_modules/library-a.tsx' does not exist.", "File '/src/library-b/node_modules/library-a.d.ts' does not exist.", - "File '/src/library-b/node_modules/library-a.js' does not exist.", - "File '/src/library-b/node_modules/library-a.jsx' does not exist.", "File '/src/library-b/node_modules/library-a/package.json' does not exist.", "File '/src/library-b/node_modules/library-a/index.ts' does not exist.", "File '/src/library-b/node_modules/library-a/index.tsx' does not exist.", "File '/src/library-b/node_modules/library-a/index.d.ts' does not exist.", - "File '/src/library-b/node_modules/library-a/index.js' does not exist.", - "File '/src/library-b/node_modules/library-a/index.jsx' does not exist.", "File '/src/library-b/node_modules/@types/library-a.ts' does not exist.", "File '/src/library-b/node_modules/@types/library-a.tsx' does not exist.", "File '/src/library-b/node_modules/@types/library-a.d.ts' does not exist.", - "File '/src/library-b/node_modules/@types/library-a.js' does not exist.", - "File '/src/library-b/node_modules/@types/library-a.jsx' does not exist.", "File '/src/library-b/node_modules/@types/library-a/package.json' does not exist.", "File '/src/library-b/node_modules/@types/library-a/index.ts' does not exist.", "File '/src/library-b/node_modules/@types/library-a/index.tsx' does not exist.", "File '/src/library-b/node_modules/@types/library-a/index.d.ts' does not exist.", - "File '/src/library-b/node_modules/@types/library-a/index.js' does not exist.", - "File '/src/library-b/node_modules/@types/library-a/index.jsx' does not exist.", "File '/src/node_modules/library-a.ts' does not exist.", "File '/src/node_modules/library-a.tsx' does not exist.", "File '/src/node_modules/library-a.d.ts' does not exist.", - "File '/src/node_modules/library-a.js' does not exist.", - "File '/src/node_modules/library-a.jsx' does not exist.", "File '/src/node_modules/library-a/package.json' does not exist.", "File '/src/node_modules/library-a/index.ts' does not exist.", "File '/src/node_modules/library-a/index.tsx' does not exist.", "File '/src/node_modules/library-a/index.d.ts' does not exist.", - "File '/src/node_modules/library-a/index.js' does not exist.", - "File '/src/node_modules/library-a/index.jsx' does not exist.", "File '/src/node_modules/@types/library-a.ts' does not exist.", "File '/src/node_modules/@types/library-a.tsx' does not exist.", "File '/src/node_modules/@types/library-a.d.ts' does not exist.", - "File '/src/node_modules/@types/library-a.js' does not exist.", - "File '/src/node_modules/@types/library-a.jsx' does not exist.", "File '/src/node_modules/@types/library-a/package.json' does not exist.", "File '/src/node_modules/@types/library-a/index.ts' does not exist.", "File '/src/node_modules/@types/library-a/index.tsx' does not exist.", "File '/src/node_modules/@types/library-a/index.d.ts' does not exist.", - "File '/src/node_modules/@types/library-a/index.js' does not exist.", - "File '/src/node_modules/@types/library-a/index.jsx' does not exist.", "File '/node_modules/library-a.ts' does not exist.", "File '/node_modules/library-a.tsx' does not exist.", "File '/node_modules/library-a.d.ts' does not exist.", - "File '/node_modules/library-a.js' does not exist.", - "File '/node_modules/library-a.jsx' does not exist.", "File '/node_modules/library-a/package.json' does not exist.", "File '/node_modules/library-a/index.ts' does not exist.", "File '/node_modules/library-a/index.tsx' does not exist.", "File '/node_modules/library-a/index.d.ts' does not exist.", - "File '/node_modules/library-a/index.js' does not exist.", - "File '/node_modules/library-a/index.jsx' does not exist.", "File '/node_modules/@types/library-a.ts' does not exist.", "File '/node_modules/@types/library-a.tsx' does not exist.", "File '/node_modules/@types/library-a.d.ts' does not exist.", - "File '/node_modules/@types/library-a.js' does not exist.", - "File '/node_modules/@types/library-a.jsx' does not exist.", "File '/node_modules/@types/library-a/package.json' does not exist.", "File '/node_modules/@types/library-a/index.ts' does not exist.", "File '/node_modules/@types/library-a/index.tsx' does not exist.", "File '/node_modules/@types/library-a/index.d.ts' does not exist.", + "Loading module 'library-a' from 'node_modules' folder.", + "File '/src/library-b/node_modules/library-a.js' does not exist.", + "File '/src/library-b/node_modules/library-a.jsx' does not exist.", + "File '/src/library-b/node_modules/library-a/package.json' does not exist.", + "File '/src/library-b/node_modules/library-a/index.js' does not exist.", + "File '/src/library-b/node_modules/library-a/index.jsx' does not exist.", + "File '/src/library-b/node_modules/@types/library-a.js' does not exist.", + "File '/src/library-b/node_modules/@types/library-a.jsx' does not exist.", + "File '/src/library-b/node_modules/@types/library-a/package.json' does not exist.", + "File '/src/library-b/node_modules/@types/library-a/index.js' does not exist.", + "File '/src/library-b/node_modules/@types/library-a/index.jsx' does not exist.", + "File '/src/node_modules/library-a.js' does not exist.", + "File '/src/node_modules/library-a.jsx' does not exist.", + "File '/src/node_modules/library-a/package.json' does not exist.", + "File '/src/node_modules/library-a/index.js' does not exist.", + "File '/src/node_modules/library-a/index.jsx' does not exist.", + "File '/src/node_modules/@types/library-a.js' does not exist.", + "File '/src/node_modules/@types/library-a.jsx' does not exist.", + "File '/src/node_modules/@types/library-a/package.json' does not exist.", + "File '/src/node_modules/@types/library-a/index.js' does not exist.", + "File '/src/node_modules/@types/library-a/index.jsx' does not exist.", + "File '/node_modules/library-a.js' does not exist.", + "File '/node_modules/library-a.jsx' does not exist.", + "File '/node_modules/library-a/package.json' does not exist.", + "File '/node_modules/library-a/index.js' does not exist.", + "File '/node_modules/library-a/index.jsx' does not exist.", + "File '/node_modules/@types/library-a.js' does not exist.", + "File '/node_modules/@types/library-a.jsx' does not exist.", + "File '/node_modules/@types/library-a/package.json' does not exist.", "File '/node_modules/@types/library-a/index.js' does not exist.", "File '/node_modules/@types/library-a/index.jsx' does not exist.", "======== Module name 'library-a' was not resolved. ========" diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution3_classic.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution3_classic.trace.json index 22d93809b1b..90b8620e36c 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution3_classic.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution3_classic.trace.json @@ -16,18 +16,12 @@ "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/root/folder2/file4.ts' does not exist.", "File 'c:/root/folder2/file4.tsx' does not exist.", "File 'c:/root/folder2/file4.d.ts' does not exist.", - "File 'c:/root/folder2/file4.js' does not exist.", - "File 'c:/root/folder2/file4.jsx' does not exist.", "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/file4.ts' exist - use it as a name resolution result.", "======== Module name 'file4' was successfully resolved to 'c:/file4.ts'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution3_node.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution3_node.trace.json index 220f0f9c04b..ab7210d7d02 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution3_node.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution3_node.trace.json @@ -21,64 +21,42 @@ "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/root/file4/package.json' does not exist.", "File 'c:/root/file4/index.ts' does not exist.", "File 'c:/root/file4/index.tsx' does not exist.", "File 'c:/root/file4/index.d.ts' does not exist.", - "File 'c:/root/file4/index.js' does not exist.", - "File 'c:/root/file4/index.jsx' does not exist.", "Loading module 'file4' from 'node_modules' folder.", "File 'c:/root/folder2/node_modules/file4.ts' does not exist.", "File 'c:/root/folder2/node_modules/file4.tsx' does not exist.", "File 'c:/root/folder2/node_modules/file4.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/file4.js' does not exist.", - "File 'c:/root/folder2/node_modules/file4.jsx' does not exist.", "File 'c:/root/folder2/node_modules/file4/package.json' does not exist.", "File 'c:/root/folder2/node_modules/file4/index.ts' does not exist.", "File 'c:/root/folder2/node_modules/file4/index.tsx' does not exist.", "File 'c:/root/folder2/node_modules/file4/index.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/file4/index.js' does not exist.", - "File 'c:/root/folder2/node_modules/file4/index.jsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4.ts' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4.tsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4.js' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4.jsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/package.json' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/index.ts' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/index.tsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/index.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4/index.js' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4/index.jsx' does not exist.", "File 'c:/root/node_modules/file4.ts' does not exist.", "File 'c:/root/node_modules/file4.tsx' does not exist.", "File 'c:/root/node_modules/file4.d.ts' does not exist.", - "File 'c:/root/node_modules/file4.js' does not exist.", - "File 'c:/root/node_modules/file4.jsx' does not exist.", "File 'c:/root/node_modules/file4/package.json' does not exist.", "File 'c:/root/node_modules/file4/index.ts' does not exist.", "File 'c:/root/node_modules/file4/index.tsx' does not exist.", "File 'c:/root/node_modules/file4/index.d.ts' does not exist.", - "File 'c:/root/node_modules/file4/index.js' does not exist.", - "File 'c:/root/node_modules/file4/index.jsx' does not exist.", "File 'c:/root/node_modules/@types/file4.ts' does not exist.", "File 'c:/root/node_modules/@types/file4.tsx' does not exist.", "File 'c:/root/node_modules/@types/file4.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/file4.js' does not exist.", - "File 'c:/root/node_modules/@types/file4.jsx' does not exist.", "File 'c:/root/node_modules/@types/file4/package.json' does not exist.", "File 'c:/root/node_modules/@types/file4/index.ts' does not exist.", "File 'c:/root/node_modules/@types/file4/index.tsx' does not exist.", "File 'c:/root/node_modules/@types/file4/index.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/file4/index.js' does not exist.", - "File 'c:/root/node_modules/@types/file4/index.jsx' does not exist.", "File 'c:/node_modules/file4.ts' does not exist.", "File 'c:/node_modules/file4.tsx' does not exist.", "File 'c:/node_modules/file4.d.ts' does not exist.", - "File 'c:/node_modules/file4.js' does not exist.", - "File 'c:/node_modules/file4.jsx' does not exist.", "File 'c:/node_modules/file4/package.json' does not exist.", "File 'c:/node_modules/file4/index.ts' does not exist.", "File 'c:/node_modules/file4/index.tsx' does not exist.", diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution4_classic.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution4_classic.trace.json index 22d93809b1b..90b8620e36c 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution4_classic.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution4_classic.trace.json @@ -16,18 +16,12 @@ "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/root/folder2/file4.ts' does not exist.", "File 'c:/root/folder2/file4.tsx' does not exist.", "File 'c:/root/folder2/file4.d.ts' does not exist.", - "File 'c:/root/folder2/file4.js' does not exist.", - "File 'c:/root/folder2/file4.jsx' does not exist.", "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/file4.ts' exist - use it as a name resolution result.", "======== Module name 'file4' was successfully resolved to 'c:/file4.ts'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution4_node.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution4_node.trace.json index 220f0f9c04b..ab7210d7d02 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution4_node.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution4_node.trace.json @@ -21,64 +21,42 @@ "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/root/file4/package.json' does not exist.", "File 'c:/root/file4/index.ts' does not exist.", "File 'c:/root/file4/index.tsx' does not exist.", "File 'c:/root/file4/index.d.ts' does not exist.", - "File 'c:/root/file4/index.js' does not exist.", - "File 'c:/root/file4/index.jsx' does not exist.", "Loading module 'file4' from 'node_modules' folder.", "File 'c:/root/folder2/node_modules/file4.ts' does not exist.", "File 'c:/root/folder2/node_modules/file4.tsx' does not exist.", "File 'c:/root/folder2/node_modules/file4.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/file4.js' does not exist.", - "File 'c:/root/folder2/node_modules/file4.jsx' does not exist.", "File 'c:/root/folder2/node_modules/file4/package.json' does not exist.", "File 'c:/root/folder2/node_modules/file4/index.ts' does not exist.", "File 'c:/root/folder2/node_modules/file4/index.tsx' does not exist.", "File 'c:/root/folder2/node_modules/file4/index.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/file4/index.js' does not exist.", - "File 'c:/root/folder2/node_modules/file4/index.jsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4.ts' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4.tsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4.js' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4.jsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/package.json' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/index.ts' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/index.tsx' does not exist.", "File 'c:/root/folder2/node_modules/@types/file4/index.d.ts' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4/index.js' does not exist.", - "File 'c:/root/folder2/node_modules/@types/file4/index.jsx' does not exist.", "File 'c:/root/node_modules/file4.ts' does not exist.", "File 'c:/root/node_modules/file4.tsx' does not exist.", "File 'c:/root/node_modules/file4.d.ts' does not exist.", - "File 'c:/root/node_modules/file4.js' does not exist.", - "File 'c:/root/node_modules/file4.jsx' does not exist.", "File 'c:/root/node_modules/file4/package.json' does not exist.", "File 'c:/root/node_modules/file4/index.ts' does not exist.", "File 'c:/root/node_modules/file4/index.tsx' does not exist.", "File 'c:/root/node_modules/file4/index.d.ts' does not exist.", - "File 'c:/root/node_modules/file4/index.js' does not exist.", - "File 'c:/root/node_modules/file4/index.jsx' does not exist.", "File 'c:/root/node_modules/@types/file4.ts' does not exist.", "File 'c:/root/node_modules/@types/file4.tsx' does not exist.", "File 'c:/root/node_modules/@types/file4.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/file4.js' does not exist.", - "File 'c:/root/node_modules/@types/file4.jsx' does not exist.", "File 'c:/root/node_modules/@types/file4/package.json' does not exist.", "File 'c:/root/node_modules/@types/file4/index.ts' does not exist.", "File 'c:/root/node_modules/@types/file4/index.tsx' does not exist.", "File 'c:/root/node_modules/@types/file4/index.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/file4/index.js' does not exist.", - "File 'c:/root/node_modules/@types/file4/index.jsx' does not exist.", "File 'c:/node_modules/file4.ts' does not exist.", "File 'c:/node_modules/file4.tsx' does not exist.", "File 'c:/node_modules/file4.d.ts' does not exist.", - "File 'c:/node_modules/file4.js' does not exist.", - "File 'c:/node_modules/file4.jsx' does not exist.", "File 'c:/node_modules/file4/package.json' does not exist.", "File 'c:/node_modules/file4/index.ts' does not exist.", "File 'c:/node_modules/file4/index.tsx' does not exist.", diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution5_classic.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution5_classic.trace.json index 8fd0dee8e74..6c899bf028e 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution5_classic.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution5_classic.trace.json @@ -16,8 +16,6 @@ "File 'c:/root/folder3/file2.ts' does not exist.", "File 'c:/root/folder3/file2.tsx' does not exist.", "File 'c:/root/folder3/file2.d.ts' does not exist.", - "File 'c:/root/folder3/file2.js' does not exist.", - "File 'c:/root/folder3/file2.jsx' does not exist.", "Trying substitution 'generated/*', candidate module location: 'generated/folder3/file2'.", "File 'c:/root/generated/folder3/file2.ts' exist - use it as a name resolution result.", "======== Module name 'folder3/file2' was successfully resolved to 'c:/root/generated/folder3/file2.ts'. ========", @@ -38,24 +36,16 @@ "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "Trying substitution 'generated/*', candidate module location: 'generated/file4'.", "File 'c:/root/generated/file4.ts' does not exist.", "File 'c:/root/generated/file4.tsx' does not exist.", "File 'c:/root/generated/file4.d.ts' does not exist.", - "File 'c:/root/generated/file4.js' does not exist.", - "File 'c:/root/generated/file4.jsx' does not exist.", "File 'c:/root/folder1/file4.ts' does not exist.", "File 'c:/root/folder1/file4.tsx' does not exist.", "File 'c:/root/folder1/file4.d.ts' does not exist.", - "File 'c:/root/folder1/file4.js' does not exist.", - "File 'c:/root/folder1/file4.jsx' does not exist.", "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/file4.ts' exist - use it as a name resolution result.", "======== Module name 'file4' was successfully resolved to 'c:/file4.ts'. ========" ] \ No newline at end of file diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution5_node.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution5_node.trace.json index 8201ed79352..2efeefa24e5 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution5_node.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution5_node.trace.json @@ -19,14 +19,10 @@ "File 'c:/root/folder3/file2.ts' does not exist.", "File 'c:/root/folder3/file2.tsx' does not exist.", "File 'c:/root/folder3/file2.d.ts' does not exist.", - "File 'c:/root/folder3/file2.js' does not exist.", - "File 'c:/root/folder3/file2.jsx' does not exist.", "File 'c:/root/folder3/file2/package.json' does not exist.", "File 'c:/root/folder3/file2/index.ts' does not exist.", "File 'c:/root/folder3/file2/index.tsx' does not exist.", "File 'c:/root/folder3/file2/index.d.ts' does not exist.", - "File 'c:/root/folder3/file2/index.js' does not exist.", - "File 'c:/root/folder3/file2/index.jsx' does not exist.", "Trying substitution 'generated/*', candidate module location: 'generated/folder3/file2'.", "Loading module as file / folder, candidate module location 'c:/root/generated/folder3/file2'.", "File 'c:/root/generated/folder3/file2.ts' exist - use it as a name resolution result.", @@ -42,8 +38,6 @@ "File 'c:/root/shared/components/file3.ts' does not exist.", "File 'c:/root/shared/components/file3.tsx' does not exist.", "File 'c:/root/shared/components/file3.d.ts' does not exist.", - "File 'c:/root/shared/components/file3.js' does not exist.", - "File 'c:/root/shared/components/file3.jsx' does not exist.", "File 'c:/root/shared/components/file3/package.json' does not exist.", "File 'c:/root/shared/components/file3/index.ts' does not exist.", "File 'c:/root/shared/components/file3/index.tsx' does not exist.", @@ -60,72 +54,48 @@ "File 'c:/root/file4.ts' does not exist.", "File 'c:/root/file4.tsx' does not exist.", "File 'c:/root/file4.d.ts' does not exist.", - "File 'c:/root/file4.js' does not exist.", - "File 'c:/root/file4.jsx' does not exist.", "File 'c:/root/file4/package.json' does not exist.", "File 'c:/root/file4/index.ts' does not exist.", "File 'c:/root/file4/index.tsx' does not exist.", "File 'c:/root/file4/index.d.ts' does not exist.", - "File 'c:/root/file4/index.js' does not exist.", - "File 'c:/root/file4/index.jsx' does not exist.", "Trying substitution 'generated/*', candidate module location: 'generated/file4'.", "Loading module as file / folder, candidate module location 'c:/root/generated/file4'.", "File 'c:/root/generated/file4.ts' does not exist.", "File 'c:/root/generated/file4.tsx' does not exist.", "File 'c:/root/generated/file4.d.ts' does not exist.", - "File 'c:/root/generated/file4.js' does not exist.", - "File 'c:/root/generated/file4.jsx' does not exist.", "File 'c:/root/generated/file4/package.json' does not exist.", "File 'c:/root/generated/file4/index.ts' does not exist.", "File 'c:/root/generated/file4/index.tsx' does not exist.", "File 'c:/root/generated/file4/index.d.ts' does not exist.", - "File 'c:/root/generated/file4/index.js' does not exist.", - "File 'c:/root/generated/file4/index.jsx' does not exist.", "Loading module 'file4' from 'node_modules' folder.", "File 'c:/root/folder1/node_modules/file4.ts' does not exist.", "File 'c:/root/folder1/node_modules/file4.tsx' does not exist.", "File 'c:/root/folder1/node_modules/file4.d.ts' does not exist.", - "File 'c:/root/folder1/node_modules/file4.js' does not exist.", - "File 'c:/root/folder1/node_modules/file4.jsx' does not exist.", "File 'c:/root/folder1/node_modules/file4/package.json' does not exist.", "File 'c:/root/folder1/node_modules/file4/index.ts' does not exist.", "File 'c:/root/folder1/node_modules/file4/index.tsx' does not exist.", "File 'c:/root/folder1/node_modules/file4/index.d.ts' does not exist.", - "File 'c:/root/folder1/node_modules/file4/index.js' does not exist.", - "File 'c:/root/folder1/node_modules/file4/index.jsx' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4.ts' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4.tsx' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4.d.ts' does not exist.", - "File 'c:/root/folder1/node_modules/@types/file4.js' does not exist.", - "File 'c:/root/folder1/node_modules/@types/file4.jsx' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4/package.json' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4/index.ts' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4/index.tsx' does not exist.", "File 'c:/root/folder1/node_modules/@types/file4/index.d.ts' does not exist.", - "File 'c:/root/folder1/node_modules/@types/file4/index.js' does not exist.", - "File 'c:/root/folder1/node_modules/@types/file4/index.jsx' does not exist.", "File 'c:/root/node_modules/file4.ts' does not exist.", "File 'c:/root/node_modules/file4.tsx' does not exist.", "File 'c:/root/node_modules/file4.d.ts' does not exist.", - "File 'c:/root/node_modules/file4.js' does not exist.", - "File 'c:/root/node_modules/file4.jsx' does not exist.", "File 'c:/root/node_modules/file4/package.json' does not exist.", "File 'c:/root/node_modules/file4/index.ts' does not exist.", "File 'c:/root/node_modules/file4/index.tsx' does not exist.", "File 'c:/root/node_modules/file4/index.d.ts' does not exist.", - "File 'c:/root/node_modules/file4/index.js' does not exist.", - "File 'c:/root/node_modules/file4/index.jsx' does not exist.", "File 'c:/root/node_modules/@types/file4.ts' does not exist.", "File 'c:/root/node_modules/@types/file4.tsx' does not exist.", "File 'c:/root/node_modules/@types/file4.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/file4.js' does not exist.", - "File 'c:/root/node_modules/@types/file4.jsx' does not exist.", "File 'c:/root/node_modules/@types/file4/package.json' does not exist.", "File 'c:/root/node_modules/@types/file4/index.ts' does not exist.", "File 'c:/root/node_modules/@types/file4/index.tsx' does not exist.", "File 'c:/root/node_modules/@types/file4/index.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/file4/index.js' does not exist.", - "File 'c:/root/node_modules/@types/file4/index.jsx' does not exist.", "File 'c:/node_modules/file4.ts' exist - use it as a name resolution result.", "Resolving real path for 'c:/node_modules/file4.ts', result 'c:/node_modules/file4.ts'", "======== Module name 'file4' was successfully resolved to 'c:/node_modules/file4.ts'. ========" diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.trace.json index d6c6b1a45bc..d50a6c78ed7 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.trace.json @@ -9,8 +9,6 @@ "File 'c:/root/src/project/file3.ts' does not exist.", "File 'c:/root/src/project/file3.tsx' does not exist.", "File 'c:/root/src/project/file3.d.ts' does not exist.", - "File 'c:/root/src/project/file3.js' does not exist.", - "File 'c:/root/src/project/file3.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'project/file3' from the root dir 'c:/root/generated/src', candidate location 'c:/root/generated/src/project/file3'", "File 'c:/root/generated/src/project/file3.ts' exist - use it as a name resolution result.", @@ -25,8 +23,6 @@ "File 'c:/root/generated/src/file2.ts' does not exist.", "File 'c:/root/generated/src/file2.tsx' does not exist.", "File 'c:/root/generated/src/file2.d.ts' does not exist.", - "File 'c:/root/generated/src/file2.js' does not exist.", - "File 'c:/root/generated/src/file2.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'file2' from the root dir 'c:/root/src', candidate location 'c:/root/src/file2'", "File 'c:/root/src/file2.ts' does not exist.", diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution6_node.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution6_node.trace.json index 92eb9ad072c..28e51a11915 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution6_node.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution6_node.trace.json @@ -10,14 +10,10 @@ "File 'c:/root/src/project/file3.ts' does not exist.", "File 'c:/root/src/project/file3.tsx' does not exist.", "File 'c:/root/src/project/file3.d.ts' does not exist.", - "File 'c:/root/src/project/file3.js' does not exist.", - "File 'c:/root/src/project/file3.jsx' does not exist.", "File 'c:/root/src/project/file3/package.json' does not exist.", "File 'c:/root/src/project/file3/index.ts' does not exist.", "File 'c:/root/src/project/file3/index.tsx' does not exist.", "File 'c:/root/src/project/file3/index.d.ts' does not exist.", - "File 'c:/root/src/project/file3/index.js' does not exist.", - "File 'c:/root/src/project/file3/index.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'project/file3' from the root dir 'c:/root/generated/src', candidate location 'c:/root/generated/src/project/file3'", "Loading module as file / folder, candidate module location 'c:/root/generated/src/project/file3'.", @@ -35,22 +31,16 @@ "File 'c:/root/generated/src/file2.ts' does not exist.", "File 'c:/root/generated/src/file2.tsx' does not exist.", "File 'c:/root/generated/src/file2.d.ts' does not exist.", - "File 'c:/root/generated/src/file2.js' does not exist.", - "File 'c:/root/generated/src/file2.jsx' does not exist.", "File 'c:/root/generated/src/file2/package.json' does not exist.", "File 'c:/root/generated/src/file2/index.ts' does not exist.", "File 'c:/root/generated/src/file2/index.tsx' does not exist.", "File 'c:/root/generated/src/file2/index.d.ts' does not exist.", - "File 'c:/root/generated/src/file2/index.js' does not exist.", - "File 'c:/root/generated/src/file2/index.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'file2' from the root dir 'c:/root/src', candidate location 'c:/root/src/file2'", "Loading module as file / folder, candidate module location 'c:/root/src/file2'.", "File 'c:/root/src/file2.ts' does not exist.", "File 'c:/root/src/file2.tsx' does not exist.", "File 'c:/root/src/file2.d.ts' does not exist.", - "File 'c:/root/src/file2.js' does not exist.", - "File 'c:/root/src/file2.jsx' does not exist.", "File 'c:/root/src/file2/package.json' does not exist.", "File 'c:/root/src/file2/index.ts' does not exist.", "File 'c:/root/src/file2/index.tsx' does not exist.", diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution7_classic.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution7_classic.trace.json index 24d43809bab..85373855eb5 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution7_classic.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution7_classic.trace.json @@ -9,8 +9,6 @@ "File 'c:/root/src/project/file2.ts' does not exist.", "File 'c:/root/src/project/file2.tsx' does not exist.", "File 'c:/root/src/project/file2.d.ts' does not exist.", - "File 'c:/root/src/project/file2.js' does not exist.", - "File 'c:/root/src/project/file2.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'project/file2' from the root dir 'c:/root/generated/src', candidate location 'c:/root/generated/src/project/file2'", "File 'c:/root/generated/src/project/file2.ts' exist - use it as a name resolution result.", @@ -24,24 +22,16 @@ "File 'c:/root/module3.ts' does not exist.", "File 'c:/root/module3.tsx' does not exist.", "File 'c:/root/module3.d.ts' does not exist.", - "File 'c:/root/module3.js' does not exist.", - "File 'c:/root/module3.jsx' does not exist.", "Trying substitution 'c:/shared/*', candidate module location: 'c:/shared/module3'.", "File 'c:/shared/module3.ts' does not exist.", "File 'c:/shared/module3.tsx' does not exist.", "File 'c:/shared/module3.d.ts' does not exist.", - "File 'c:/shared/module3.js' does not exist.", - "File 'c:/shared/module3.jsx' does not exist.", "File 'c:/root/src/module3.ts' does not exist.", "File 'c:/root/src/module3.tsx' does not exist.", "File 'c:/root/src/module3.d.ts' does not exist.", - "File 'c:/root/src/module3.js' does not exist.", - "File 'c:/root/src/module3.jsx' does not exist.", "File 'c:/root/module3.ts' does not exist.", "File 'c:/root/module3.tsx' does not exist.", "File 'c:/root/module3.d.ts' does not exist.", - "File 'c:/root/module3.js' does not exist.", - "File 'c:/root/module3.jsx' does not exist.", "File 'c:/module3.ts' does not exist.", "File 'c:/module3.tsx' does not exist.", "File 'c:/module3.d.ts' exist - use it as a name resolution result.", @@ -55,8 +45,6 @@ "File 'c:/root/module1.ts' does not exist.", "File 'c:/root/module1.tsx' does not exist.", "File 'c:/root/module1.d.ts' does not exist.", - "File 'c:/root/module1.js' does not exist.", - "File 'c:/root/module1.jsx' does not exist.", "Trying substitution 'c:/shared/*', candidate module location: 'c:/shared/module1'.", "File 'c:/shared/module1.ts' does not exist.", "File 'c:/shared/module1.tsx' does not exist.", @@ -80,8 +68,6 @@ "File 'c:/root/generated/src/file3.ts' does not exist.", "File 'c:/root/generated/src/file3.tsx' does not exist.", "File 'c:/root/generated/src/file3.d.ts' does not exist.", - "File 'c:/root/generated/src/file3.js' does not exist.", - "File 'c:/root/generated/src/file3.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'file3' from the root dir 'c:/root/src', candidate location 'c:/root/src/file3'", "File 'c:/root/src/file3.ts' does not exist.", diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution7_node.trace.json b/tests/baselines/reference/pathMappingBasedModuleResolution7_node.trace.json index 003f56463fb..48633c85e3b 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution7_node.trace.json +++ b/tests/baselines/reference/pathMappingBasedModuleResolution7_node.trace.json @@ -10,14 +10,10 @@ "File 'c:/root/src/project/file2.ts' does not exist.", "File 'c:/root/src/project/file2.tsx' does not exist.", "File 'c:/root/src/project/file2.d.ts' does not exist.", - "File 'c:/root/src/project/file2.js' does not exist.", - "File 'c:/root/src/project/file2.jsx' does not exist.", "File 'c:/root/src/project/file2/package.json' does not exist.", "File 'c:/root/src/project/file2/index.ts' does not exist.", "File 'c:/root/src/project/file2/index.tsx' does not exist.", "File 'c:/root/src/project/file2/index.d.ts' does not exist.", - "File 'c:/root/src/project/file2/index.js' does not exist.", - "File 'c:/root/src/project/file2/index.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'project/file2' from the root dir 'c:/root/generated/src', candidate location 'c:/root/generated/src/project/file2'", "Loading module as file / folder, candidate module location 'c:/root/generated/src/project/file2'.", @@ -34,72 +30,48 @@ "File 'c:/root/module3.ts' does not exist.", "File 'c:/root/module3.tsx' does not exist.", "File 'c:/root/module3.d.ts' does not exist.", - "File 'c:/root/module3.js' does not exist.", - "File 'c:/root/module3.jsx' does not exist.", "File 'c:/root/module3/package.json' does not exist.", "File 'c:/root/module3/index.ts' does not exist.", "File 'c:/root/module3/index.tsx' does not exist.", "File 'c:/root/module3/index.d.ts' does not exist.", - "File 'c:/root/module3/index.js' does not exist.", - "File 'c:/root/module3/index.jsx' does not exist.", "Trying substitution 'c:/shared/*', candidate module location: 'c:/shared/module3'.", "Loading module as file / folder, candidate module location 'c:/shared/module3'.", "File 'c:/shared/module3.ts' does not exist.", "File 'c:/shared/module3.tsx' does not exist.", "File 'c:/shared/module3.d.ts' does not exist.", - "File 'c:/shared/module3.js' does not exist.", - "File 'c:/shared/module3.jsx' does not exist.", "File 'c:/shared/module3/package.json' does not exist.", "File 'c:/shared/module3/index.ts' does not exist.", "File 'c:/shared/module3/index.tsx' does not exist.", "File 'c:/shared/module3/index.d.ts' does not exist.", - "File 'c:/shared/module3/index.js' does not exist.", - "File 'c:/shared/module3/index.jsx' does not exist.", "Loading module 'module3' from 'node_modules' folder.", "File 'c:/root/src/node_modules/module3.ts' does not exist.", "File 'c:/root/src/node_modules/module3.tsx' does not exist.", "File 'c:/root/src/node_modules/module3.d.ts' does not exist.", - "File 'c:/root/src/node_modules/module3.js' does not exist.", - "File 'c:/root/src/node_modules/module3.jsx' does not exist.", "File 'c:/root/src/node_modules/module3/package.json' does not exist.", "File 'c:/root/src/node_modules/module3/index.ts' does not exist.", "File 'c:/root/src/node_modules/module3/index.tsx' does not exist.", "File 'c:/root/src/node_modules/module3/index.d.ts' does not exist.", - "File 'c:/root/src/node_modules/module3/index.js' does not exist.", - "File 'c:/root/src/node_modules/module3/index.jsx' does not exist.", "File 'c:/root/src/node_modules/@types/module3.ts' does not exist.", "File 'c:/root/src/node_modules/@types/module3.tsx' does not exist.", "File 'c:/root/src/node_modules/@types/module3.d.ts' does not exist.", - "File 'c:/root/src/node_modules/@types/module3.js' does not exist.", - "File 'c:/root/src/node_modules/@types/module3.jsx' does not exist.", "File 'c:/root/src/node_modules/@types/module3/package.json' does not exist.", "File 'c:/root/src/node_modules/@types/module3/index.ts' does not exist.", "File 'c:/root/src/node_modules/@types/module3/index.tsx' does not exist.", "File 'c:/root/src/node_modules/@types/module3/index.d.ts' does not exist.", - "File 'c:/root/src/node_modules/@types/module3/index.js' does not exist.", - "File 'c:/root/src/node_modules/@types/module3/index.jsx' does not exist.", "File 'c:/root/node_modules/module3.ts' does not exist.", "File 'c:/root/node_modules/module3.tsx' does not exist.", "File 'c:/root/node_modules/module3.d.ts' does not exist.", - "File 'c:/root/node_modules/module3.js' does not exist.", - "File 'c:/root/node_modules/module3.jsx' does not exist.", "File 'c:/root/node_modules/module3/package.json' does not exist.", "File 'c:/root/node_modules/module3/index.ts' does not exist.", "File 'c:/root/node_modules/module3/index.tsx' does not exist.", "File 'c:/root/node_modules/module3/index.d.ts' does not exist.", - "File 'c:/root/node_modules/module3/index.js' does not exist.", - "File 'c:/root/node_modules/module3/index.jsx' does not exist.", "File 'c:/root/node_modules/@types/module3.ts' does not exist.", "File 'c:/root/node_modules/@types/module3.tsx' does not exist.", "File 'c:/root/node_modules/@types/module3.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/module3.js' does not exist.", - "File 'c:/root/node_modules/@types/module3.jsx' does not exist.", "File 'c:/root/node_modules/@types/module3/package.json' does not exist.", "File 'c:/root/node_modules/@types/module3/index.ts' does not exist.", "File 'c:/root/node_modules/@types/module3/index.tsx' does not exist.", "File 'c:/root/node_modules/@types/module3/index.d.ts' does not exist.", - "File 'c:/root/node_modules/@types/module3/index.js' does not exist.", - "File 'c:/root/node_modules/@types/module3/index.jsx' does not exist.", "File 'c:/node_modules/module3.ts' does not exist.", "File 'c:/node_modules/module3.tsx' does not exist.", "File 'c:/node_modules/module3.d.ts' exist - use it as a name resolution result.", @@ -115,21 +87,15 @@ "File 'c:/root/module1.ts' does not exist.", "File 'c:/root/module1.tsx' does not exist.", "File 'c:/root/module1.d.ts' does not exist.", - "File 'c:/root/module1.js' does not exist.", - "File 'c:/root/module1.jsx' does not exist.", "File 'c:/root/module1/package.json' does not exist.", "File 'c:/root/module1/index.ts' does not exist.", "File 'c:/root/module1/index.tsx' does not exist.", "File 'c:/root/module1/index.d.ts' does not exist.", - "File 'c:/root/module1/index.js' does not exist.", - "File 'c:/root/module1/index.jsx' does not exist.", "Trying substitution 'c:/shared/*', candidate module location: 'c:/shared/module1'.", "Loading module as file / folder, candidate module location 'c:/shared/module1'.", "File 'c:/shared/module1.ts' does not exist.", "File 'c:/shared/module1.tsx' does not exist.", "File 'c:/shared/module1.d.ts' does not exist.", - "File 'c:/shared/module1.js' does not exist.", - "File 'c:/shared/module1.jsx' does not exist.", "File 'c:/shared/module1/package.json' does not exist.", "File 'c:/shared/module1/index.ts' does not exist.", "File 'c:/shared/module1/index.tsx' does not exist.", @@ -157,22 +123,16 @@ "File 'c:/root/generated/src/file3.ts' does not exist.", "File 'c:/root/generated/src/file3.tsx' does not exist.", "File 'c:/root/generated/src/file3.d.ts' does not exist.", - "File 'c:/root/generated/src/file3.js' does not exist.", - "File 'c:/root/generated/src/file3.jsx' does not exist.", "File 'c:/root/generated/src/file3/package.json' does not exist.", "File 'c:/root/generated/src/file3/index.ts' does not exist.", "File 'c:/root/generated/src/file3/index.tsx' does not exist.", "File 'c:/root/generated/src/file3/index.d.ts' does not exist.", - "File 'c:/root/generated/src/file3/index.js' does not exist.", - "File 'c:/root/generated/src/file3/index.jsx' does not exist.", "Trying other entries in 'rootDirs'", "Loading 'file3' from the root dir 'c:/root/src', candidate location 'c:/root/src/file3'", "Loading module as file / folder, candidate module location 'c:/root/src/file3'.", "File 'c:/root/src/file3.ts' does not exist.", "File 'c:/root/src/file3.tsx' does not exist.", "File 'c:/root/src/file3.d.ts' does not exist.", - "File 'c:/root/src/file3.js' does not exist.", - "File 'c:/root/src/file3.jsx' does not exist.", "File 'c:/root/src/file3/package.json' does not exist.", "File 'c:/root/src/file3/index.ts' does not exist.", "File 'c:/root/src/file3/index.tsx' does not exist.", diff --git a/tests/baselines/reference/typeRootsFromMultipleNodeModulesDirectories.trace.json b/tests/baselines/reference/typeRootsFromMultipleNodeModulesDirectories.trace.json index a541ee310ef..eec78e40192 100644 --- a/tests/baselines/reference/typeRootsFromMultipleNodeModulesDirectories.trace.json +++ b/tests/baselines/reference/typeRootsFromMultipleNodeModulesDirectories.trace.json @@ -5,67 +5,74 @@ "File '/foo/bar/node_modules/xyz.ts' does not exist.", "File '/foo/bar/node_modules/xyz.tsx' does not exist.", "File '/foo/bar/node_modules/xyz.d.ts' does not exist.", - "File '/foo/bar/node_modules/xyz.js' does not exist.", - "File '/foo/bar/node_modules/xyz.jsx' does not exist.", "File '/foo/bar/node_modules/xyz/package.json' does not exist.", "File '/foo/bar/node_modules/xyz/index.ts' does not exist.", "File '/foo/bar/node_modules/xyz/index.tsx' does not exist.", "File '/foo/bar/node_modules/xyz/index.d.ts' does not exist.", - "File '/foo/bar/node_modules/xyz/index.js' does not exist.", - "File '/foo/bar/node_modules/xyz/index.jsx' does not exist.", "File '/foo/bar/node_modules/@types/xyz.ts' does not exist.", "File '/foo/bar/node_modules/@types/xyz.tsx' does not exist.", "File '/foo/bar/node_modules/@types/xyz.d.ts' does not exist.", - "File '/foo/bar/node_modules/@types/xyz.js' does not exist.", - "File '/foo/bar/node_modules/@types/xyz.jsx' does not exist.", "File '/foo/bar/node_modules/@types/xyz/package.json' does not exist.", "File '/foo/bar/node_modules/@types/xyz/index.ts' does not exist.", "File '/foo/bar/node_modules/@types/xyz/index.tsx' does not exist.", "File '/foo/bar/node_modules/@types/xyz/index.d.ts' does not exist.", - "File '/foo/bar/node_modules/@types/xyz/index.js' does not exist.", - "File '/foo/bar/node_modules/@types/xyz/index.jsx' does not exist.", "File '/foo/node_modules/xyz.ts' does not exist.", "File '/foo/node_modules/xyz.tsx' does not exist.", "File '/foo/node_modules/xyz.d.ts' does not exist.", - "File '/foo/node_modules/xyz.js' does not exist.", - "File '/foo/node_modules/xyz.jsx' does not exist.", "File '/foo/node_modules/xyz/package.json' does not exist.", "File '/foo/node_modules/xyz/index.ts' does not exist.", "File '/foo/node_modules/xyz/index.tsx' does not exist.", "File '/foo/node_modules/xyz/index.d.ts' does not exist.", - "File '/foo/node_modules/xyz/index.js' does not exist.", - "File '/foo/node_modules/xyz/index.jsx' does not exist.", "File '/foo/node_modules/@types/xyz.ts' does not exist.", "File '/foo/node_modules/@types/xyz.tsx' does not exist.", "File '/foo/node_modules/@types/xyz.d.ts' does not exist.", - "File '/foo/node_modules/@types/xyz.js' does not exist.", - "File '/foo/node_modules/@types/xyz.jsx' does not exist.", "File '/foo/node_modules/@types/xyz/package.json' does not exist.", "File '/foo/node_modules/@types/xyz/index.ts' does not exist.", "File '/foo/node_modules/@types/xyz/index.tsx' does not exist.", "File '/foo/node_modules/@types/xyz/index.d.ts' does not exist.", - "File '/foo/node_modules/@types/xyz/index.js' does not exist.", - "File '/foo/node_modules/@types/xyz/index.jsx' does not exist.", "File '/node_modules/xyz.ts' does not exist.", "File '/node_modules/xyz.tsx' does not exist.", "File '/node_modules/xyz.d.ts' does not exist.", - "File '/node_modules/xyz.js' does not exist.", - "File '/node_modules/xyz.jsx' does not exist.", "File '/node_modules/xyz/package.json' does not exist.", "File '/node_modules/xyz/index.ts' does not exist.", "File '/node_modules/xyz/index.tsx' does not exist.", "File '/node_modules/xyz/index.d.ts' does not exist.", - "File '/node_modules/xyz/index.js' does not exist.", - "File '/node_modules/xyz/index.jsx' does not exist.", "File '/node_modules/@types/xyz.ts' does not exist.", "File '/node_modules/@types/xyz.tsx' does not exist.", "File '/node_modules/@types/xyz.d.ts' does not exist.", - "File '/node_modules/@types/xyz.js' does not exist.", - "File '/node_modules/@types/xyz.jsx' does not exist.", "File '/node_modules/@types/xyz/package.json' does not exist.", "File '/node_modules/@types/xyz/index.ts' does not exist.", "File '/node_modules/@types/xyz/index.tsx' does not exist.", "File '/node_modules/@types/xyz/index.d.ts' does not exist.", + "Loading module 'xyz' from 'node_modules' folder.", + "File '/foo/bar/node_modules/xyz.js' does not exist.", + "File '/foo/bar/node_modules/xyz.jsx' does not exist.", + "File '/foo/bar/node_modules/xyz/package.json' does not exist.", + "File '/foo/bar/node_modules/xyz/index.js' does not exist.", + "File '/foo/bar/node_modules/xyz/index.jsx' does not exist.", + "File '/foo/bar/node_modules/@types/xyz.js' does not exist.", + "File '/foo/bar/node_modules/@types/xyz.jsx' does not exist.", + "File '/foo/bar/node_modules/@types/xyz/package.json' does not exist.", + "File '/foo/bar/node_modules/@types/xyz/index.js' does not exist.", + "File '/foo/bar/node_modules/@types/xyz/index.jsx' does not exist.", + "File '/foo/node_modules/xyz.js' does not exist.", + "File '/foo/node_modules/xyz.jsx' does not exist.", + "File '/foo/node_modules/xyz/package.json' does not exist.", + "File '/foo/node_modules/xyz/index.js' does not exist.", + "File '/foo/node_modules/xyz/index.jsx' does not exist.", + "File '/foo/node_modules/@types/xyz.js' does not exist.", + "File '/foo/node_modules/@types/xyz.jsx' does not exist.", + "File '/foo/node_modules/@types/xyz/package.json' does not exist.", + "File '/foo/node_modules/@types/xyz/index.js' does not exist.", + "File '/foo/node_modules/@types/xyz/index.jsx' does not exist.", + "File '/node_modules/xyz.js' does not exist.", + "File '/node_modules/xyz.jsx' does not exist.", + "File '/node_modules/xyz/package.json' does not exist.", + "File '/node_modules/xyz/index.js' does not exist.", + "File '/node_modules/xyz/index.jsx' does not exist.", + "File '/node_modules/@types/xyz.js' does not exist.", + "File '/node_modules/@types/xyz.jsx' does not exist.", + "File '/node_modules/@types/xyz/package.json' does not exist.", "File '/node_modules/@types/xyz/index.js' does not exist.", "File '/node_modules/@types/xyz/index.jsx' does not exist.", "======== Module name 'xyz' was not resolved. ========", @@ -75,67 +82,74 @@ "File '/foo/bar/node_modules/pdq.ts' does not exist.", "File '/foo/bar/node_modules/pdq.tsx' does not exist.", "File '/foo/bar/node_modules/pdq.d.ts' does not exist.", - "File '/foo/bar/node_modules/pdq.js' does not exist.", - "File '/foo/bar/node_modules/pdq.jsx' does not exist.", "File '/foo/bar/node_modules/pdq/package.json' does not exist.", "File '/foo/bar/node_modules/pdq/index.ts' does not exist.", "File '/foo/bar/node_modules/pdq/index.tsx' does not exist.", "File '/foo/bar/node_modules/pdq/index.d.ts' does not exist.", - "File '/foo/bar/node_modules/pdq/index.js' does not exist.", - "File '/foo/bar/node_modules/pdq/index.jsx' does not exist.", "File '/foo/bar/node_modules/@types/pdq.ts' does not exist.", "File '/foo/bar/node_modules/@types/pdq.tsx' does not exist.", "File '/foo/bar/node_modules/@types/pdq.d.ts' does not exist.", - "File '/foo/bar/node_modules/@types/pdq.js' does not exist.", - "File '/foo/bar/node_modules/@types/pdq.jsx' does not exist.", "File '/foo/bar/node_modules/@types/pdq/package.json' does not exist.", "File '/foo/bar/node_modules/@types/pdq/index.ts' does not exist.", "File '/foo/bar/node_modules/@types/pdq/index.tsx' does not exist.", "File '/foo/bar/node_modules/@types/pdq/index.d.ts' does not exist.", - "File '/foo/bar/node_modules/@types/pdq/index.js' does not exist.", - "File '/foo/bar/node_modules/@types/pdq/index.jsx' does not exist.", "File '/foo/node_modules/pdq.ts' does not exist.", "File '/foo/node_modules/pdq.tsx' does not exist.", "File '/foo/node_modules/pdq.d.ts' does not exist.", - "File '/foo/node_modules/pdq.js' does not exist.", - "File '/foo/node_modules/pdq.jsx' does not exist.", "File '/foo/node_modules/pdq/package.json' does not exist.", "File '/foo/node_modules/pdq/index.ts' does not exist.", "File '/foo/node_modules/pdq/index.tsx' does not exist.", "File '/foo/node_modules/pdq/index.d.ts' does not exist.", - "File '/foo/node_modules/pdq/index.js' does not exist.", - "File '/foo/node_modules/pdq/index.jsx' does not exist.", "File '/foo/node_modules/@types/pdq.ts' does not exist.", "File '/foo/node_modules/@types/pdq.tsx' does not exist.", "File '/foo/node_modules/@types/pdq.d.ts' does not exist.", - "File '/foo/node_modules/@types/pdq.js' does not exist.", - "File '/foo/node_modules/@types/pdq.jsx' does not exist.", "File '/foo/node_modules/@types/pdq/package.json' does not exist.", "File '/foo/node_modules/@types/pdq/index.ts' does not exist.", "File '/foo/node_modules/@types/pdq/index.tsx' does not exist.", "File '/foo/node_modules/@types/pdq/index.d.ts' does not exist.", - "File '/foo/node_modules/@types/pdq/index.js' does not exist.", - "File '/foo/node_modules/@types/pdq/index.jsx' does not exist.", "File '/node_modules/pdq.ts' does not exist.", "File '/node_modules/pdq.tsx' does not exist.", "File '/node_modules/pdq.d.ts' does not exist.", - "File '/node_modules/pdq.js' does not exist.", - "File '/node_modules/pdq.jsx' does not exist.", "File '/node_modules/pdq/package.json' does not exist.", "File '/node_modules/pdq/index.ts' does not exist.", "File '/node_modules/pdq/index.tsx' does not exist.", "File '/node_modules/pdq/index.d.ts' does not exist.", - "File '/node_modules/pdq/index.js' does not exist.", - "File '/node_modules/pdq/index.jsx' does not exist.", "File '/node_modules/@types/pdq.ts' does not exist.", "File '/node_modules/@types/pdq.tsx' does not exist.", "File '/node_modules/@types/pdq.d.ts' does not exist.", - "File '/node_modules/@types/pdq.js' does not exist.", - "File '/node_modules/@types/pdq.jsx' does not exist.", "File '/node_modules/@types/pdq/package.json' does not exist.", "File '/node_modules/@types/pdq/index.ts' does not exist.", "File '/node_modules/@types/pdq/index.tsx' does not exist.", "File '/node_modules/@types/pdq/index.d.ts' does not exist.", + "Loading module 'pdq' from 'node_modules' folder.", + "File '/foo/bar/node_modules/pdq.js' does not exist.", + "File '/foo/bar/node_modules/pdq.jsx' does not exist.", + "File '/foo/bar/node_modules/pdq/package.json' does not exist.", + "File '/foo/bar/node_modules/pdq/index.js' does not exist.", + "File '/foo/bar/node_modules/pdq/index.jsx' does not exist.", + "File '/foo/bar/node_modules/@types/pdq.js' does not exist.", + "File '/foo/bar/node_modules/@types/pdq.jsx' does not exist.", + "File '/foo/bar/node_modules/@types/pdq/package.json' does not exist.", + "File '/foo/bar/node_modules/@types/pdq/index.js' does not exist.", + "File '/foo/bar/node_modules/@types/pdq/index.jsx' does not exist.", + "File '/foo/node_modules/pdq.js' does not exist.", + "File '/foo/node_modules/pdq.jsx' does not exist.", + "File '/foo/node_modules/pdq/package.json' does not exist.", + "File '/foo/node_modules/pdq/index.js' does not exist.", + "File '/foo/node_modules/pdq/index.jsx' does not exist.", + "File '/foo/node_modules/@types/pdq.js' does not exist.", + "File '/foo/node_modules/@types/pdq.jsx' does not exist.", + "File '/foo/node_modules/@types/pdq/package.json' does not exist.", + "File '/foo/node_modules/@types/pdq/index.js' does not exist.", + "File '/foo/node_modules/@types/pdq/index.jsx' does not exist.", + "File '/node_modules/pdq.js' does not exist.", + "File '/node_modules/pdq.jsx' does not exist.", + "File '/node_modules/pdq/package.json' does not exist.", + "File '/node_modules/pdq/index.js' does not exist.", + "File '/node_modules/pdq/index.jsx' does not exist.", + "File '/node_modules/@types/pdq.js' does not exist.", + "File '/node_modules/@types/pdq.jsx' does not exist.", + "File '/node_modules/@types/pdq/package.json' does not exist.", "File '/node_modules/@types/pdq/index.js' does not exist.", "File '/node_modules/@types/pdq/index.jsx' does not exist.", "======== Module name 'pdq' was not resolved. ========", @@ -145,67 +159,74 @@ "File '/foo/bar/node_modules/abc.ts' does not exist.", "File '/foo/bar/node_modules/abc.tsx' does not exist.", "File '/foo/bar/node_modules/abc.d.ts' does not exist.", - "File '/foo/bar/node_modules/abc.js' does not exist.", - "File '/foo/bar/node_modules/abc.jsx' does not exist.", "File '/foo/bar/node_modules/abc/package.json' does not exist.", "File '/foo/bar/node_modules/abc/index.ts' does not exist.", "File '/foo/bar/node_modules/abc/index.tsx' does not exist.", "File '/foo/bar/node_modules/abc/index.d.ts' does not exist.", - "File '/foo/bar/node_modules/abc/index.js' does not exist.", - "File '/foo/bar/node_modules/abc/index.jsx' does not exist.", "File '/foo/bar/node_modules/@types/abc.ts' does not exist.", "File '/foo/bar/node_modules/@types/abc.tsx' does not exist.", "File '/foo/bar/node_modules/@types/abc.d.ts' does not exist.", - "File '/foo/bar/node_modules/@types/abc.js' does not exist.", - "File '/foo/bar/node_modules/@types/abc.jsx' does not exist.", "File '/foo/bar/node_modules/@types/abc/package.json' does not exist.", "File '/foo/bar/node_modules/@types/abc/index.ts' does not exist.", "File '/foo/bar/node_modules/@types/abc/index.tsx' does not exist.", "File '/foo/bar/node_modules/@types/abc/index.d.ts' does not exist.", - "File '/foo/bar/node_modules/@types/abc/index.js' does not exist.", - "File '/foo/bar/node_modules/@types/abc/index.jsx' does not exist.", "File '/foo/node_modules/abc.ts' does not exist.", "File '/foo/node_modules/abc.tsx' does not exist.", "File '/foo/node_modules/abc.d.ts' does not exist.", - "File '/foo/node_modules/abc.js' does not exist.", - "File '/foo/node_modules/abc.jsx' does not exist.", "File '/foo/node_modules/abc/package.json' does not exist.", "File '/foo/node_modules/abc/index.ts' does not exist.", "File '/foo/node_modules/abc/index.tsx' does not exist.", "File '/foo/node_modules/abc/index.d.ts' does not exist.", - "File '/foo/node_modules/abc/index.js' does not exist.", - "File '/foo/node_modules/abc/index.jsx' does not exist.", "File '/foo/node_modules/@types/abc.ts' does not exist.", "File '/foo/node_modules/@types/abc.tsx' does not exist.", "File '/foo/node_modules/@types/abc.d.ts' does not exist.", - "File '/foo/node_modules/@types/abc.js' does not exist.", - "File '/foo/node_modules/@types/abc.jsx' does not exist.", "File '/foo/node_modules/@types/abc/package.json' does not exist.", "File '/foo/node_modules/@types/abc/index.ts' does not exist.", "File '/foo/node_modules/@types/abc/index.tsx' does not exist.", "File '/foo/node_modules/@types/abc/index.d.ts' does not exist.", - "File '/foo/node_modules/@types/abc/index.js' does not exist.", - "File '/foo/node_modules/@types/abc/index.jsx' does not exist.", "File '/node_modules/abc.ts' does not exist.", "File '/node_modules/abc.tsx' does not exist.", "File '/node_modules/abc.d.ts' does not exist.", - "File '/node_modules/abc.js' does not exist.", - "File '/node_modules/abc.jsx' does not exist.", "File '/node_modules/abc/package.json' does not exist.", "File '/node_modules/abc/index.ts' does not exist.", "File '/node_modules/abc/index.tsx' does not exist.", "File '/node_modules/abc/index.d.ts' does not exist.", - "File '/node_modules/abc/index.js' does not exist.", - "File '/node_modules/abc/index.jsx' does not exist.", "File '/node_modules/@types/abc.ts' does not exist.", "File '/node_modules/@types/abc.tsx' does not exist.", "File '/node_modules/@types/abc.d.ts' does not exist.", - "File '/node_modules/@types/abc.js' does not exist.", - "File '/node_modules/@types/abc.jsx' does not exist.", "File '/node_modules/@types/abc/package.json' does not exist.", "File '/node_modules/@types/abc/index.ts' does not exist.", "File '/node_modules/@types/abc/index.tsx' does not exist.", "File '/node_modules/@types/abc/index.d.ts' does not exist.", + "Loading module 'abc' from 'node_modules' folder.", + "File '/foo/bar/node_modules/abc.js' does not exist.", + "File '/foo/bar/node_modules/abc.jsx' does not exist.", + "File '/foo/bar/node_modules/abc/package.json' does not exist.", + "File '/foo/bar/node_modules/abc/index.js' does not exist.", + "File '/foo/bar/node_modules/abc/index.jsx' does not exist.", + "File '/foo/bar/node_modules/@types/abc.js' does not exist.", + "File '/foo/bar/node_modules/@types/abc.jsx' does not exist.", + "File '/foo/bar/node_modules/@types/abc/package.json' does not exist.", + "File '/foo/bar/node_modules/@types/abc/index.js' does not exist.", + "File '/foo/bar/node_modules/@types/abc/index.jsx' does not exist.", + "File '/foo/node_modules/abc.js' does not exist.", + "File '/foo/node_modules/abc.jsx' does not exist.", + "File '/foo/node_modules/abc/package.json' does not exist.", + "File '/foo/node_modules/abc/index.js' does not exist.", + "File '/foo/node_modules/abc/index.jsx' does not exist.", + "File '/foo/node_modules/@types/abc.js' does not exist.", + "File '/foo/node_modules/@types/abc.jsx' does not exist.", + "File '/foo/node_modules/@types/abc/package.json' does not exist.", + "File '/foo/node_modules/@types/abc/index.js' does not exist.", + "File '/foo/node_modules/@types/abc/index.jsx' does not exist.", + "File '/node_modules/abc.js' does not exist.", + "File '/node_modules/abc.jsx' does not exist.", + "File '/node_modules/abc/package.json' does not exist.", + "File '/node_modules/abc/index.js' does not exist.", + "File '/node_modules/abc/index.jsx' does not exist.", + "File '/node_modules/@types/abc.js' does not exist.", + "File '/node_modules/@types/abc.jsx' does not exist.", + "File '/node_modules/@types/abc/package.json' does not exist.", "File '/node_modules/@types/abc/index.js' does not exist.", "File '/node_modules/@types/abc/index.jsx' does not exist.", "======== Module name 'abc' was not resolved. ========", diff --git a/tests/baselines/reference/typeRootsFromNodeModulesInParentDirectory.trace.json b/tests/baselines/reference/typeRootsFromNodeModulesInParentDirectory.trace.json index 12a0bc0d23a..4bb62bc255a 100644 --- a/tests/baselines/reference/typeRootsFromNodeModulesInParentDirectory.trace.json +++ b/tests/baselines/reference/typeRootsFromNodeModulesInParentDirectory.trace.json @@ -5,45 +5,50 @@ "File '/src/node_modules/xyz.ts' does not exist.", "File '/src/node_modules/xyz.tsx' does not exist.", "File '/src/node_modules/xyz.d.ts' does not exist.", - "File '/src/node_modules/xyz.js' does not exist.", - "File '/src/node_modules/xyz.jsx' does not exist.", "File '/src/node_modules/xyz/package.json' does not exist.", "File '/src/node_modules/xyz/index.ts' does not exist.", "File '/src/node_modules/xyz/index.tsx' does not exist.", "File '/src/node_modules/xyz/index.d.ts' does not exist.", - "File '/src/node_modules/xyz/index.js' does not exist.", - "File '/src/node_modules/xyz/index.jsx' does not exist.", "File '/src/node_modules/@types/xyz.ts' does not exist.", "File '/src/node_modules/@types/xyz.tsx' does not exist.", "File '/src/node_modules/@types/xyz.d.ts' does not exist.", - "File '/src/node_modules/@types/xyz.js' does not exist.", - "File '/src/node_modules/@types/xyz.jsx' does not exist.", "File '/src/node_modules/@types/xyz/package.json' does not exist.", "File '/src/node_modules/@types/xyz/index.ts' does not exist.", "File '/src/node_modules/@types/xyz/index.tsx' does not exist.", "File '/src/node_modules/@types/xyz/index.d.ts' does not exist.", - "File '/src/node_modules/@types/xyz/index.js' does not exist.", - "File '/src/node_modules/@types/xyz/index.jsx' does not exist.", "File '/node_modules/xyz.ts' does not exist.", "File '/node_modules/xyz.tsx' does not exist.", "File '/node_modules/xyz.d.ts' does not exist.", - "File '/node_modules/xyz.js' does not exist.", - "File '/node_modules/xyz.jsx' does not exist.", "File '/node_modules/xyz/package.json' does not exist.", "File '/node_modules/xyz/index.ts' does not exist.", "File '/node_modules/xyz/index.tsx' does not exist.", "File '/node_modules/xyz/index.d.ts' does not exist.", - "File '/node_modules/xyz/index.js' does not exist.", - "File '/node_modules/xyz/index.jsx' does not exist.", "File '/node_modules/@types/xyz.ts' does not exist.", "File '/node_modules/@types/xyz.tsx' does not exist.", "File '/node_modules/@types/xyz.d.ts' does not exist.", - "File '/node_modules/@types/xyz.js' does not exist.", - "File '/node_modules/@types/xyz.jsx' does not exist.", "File '/node_modules/@types/xyz/package.json' does not exist.", "File '/node_modules/@types/xyz/index.ts' does not exist.", "File '/node_modules/@types/xyz/index.tsx' does not exist.", "File '/node_modules/@types/xyz/index.d.ts' does not exist.", + "Loading module 'xyz' from 'node_modules' folder.", + "File '/src/node_modules/xyz.js' does not exist.", + "File '/src/node_modules/xyz.jsx' does not exist.", + "File '/src/node_modules/xyz/package.json' does not exist.", + "File '/src/node_modules/xyz/index.js' does not exist.", + "File '/src/node_modules/xyz/index.jsx' does not exist.", + "File '/src/node_modules/@types/xyz.js' does not exist.", + "File '/src/node_modules/@types/xyz.jsx' does not exist.", + "File '/src/node_modules/@types/xyz/package.json' does not exist.", + "File '/src/node_modules/@types/xyz/index.js' does not exist.", + "File '/src/node_modules/@types/xyz/index.jsx' does not exist.", + "File '/node_modules/xyz.js' does not exist.", + "File '/node_modules/xyz.jsx' does not exist.", + "File '/node_modules/xyz/package.json' does not exist.", + "File '/node_modules/xyz/index.js' does not exist.", + "File '/node_modules/xyz/index.jsx' does not exist.", + "File '/node_modules/@types/xyz.js' does not exist.", + "File '/node_modules/@types/xyz.jsx' does not exist.", + "File '/node_modules/@types/xyz/package.json' does not exist.", "File '/node_modules/@types/xyz/index.js' does not exist.", "File '/node_modules/@types/xyz/index.jsx' does not exist.", "======== Module name 'xyz' was not resolved. ========", diff --git a/tests/baselines/reference/typingsLookup4.trace.json b/tests/baselines/reference/typingsLookup4.trace.json index e5ad33fd0d2..bb9d94f43b5 100644 --- a/tests/baselines/reference/typingsLookup4.trace.json +++ b/tests/baselines/reference/typingsLookup4.trace.json @@ -5,19 +5,13 @@ "File '/node_modules/jquery.ts' does not exist.", "File '/node_modules/jquery.tsx' does not exist.", "File '/node_modules/jquery.d.ts' does not exist.", - "File '/node_modules/jquery.js' does not exist.", - "File '/node_modules/jquery.jsx' does not exist.", "File '/node_modules/jquery/package.json' does not exist.", "File '/node_modules/jquery/index.ts' does not exist.", "File '/node_modules/jquery/index.tsx' does not exist.", "File '/node_modules/jquery/index.d.ts' does not exist.", - "File '/node_modules/jquery/index.js' does not exist.", - "File '/node_modules/jquery/index.jsx' does not exist.", "File '/node_modules/@types/jquery.ts' does not exist.", "File '/node_modules/@types/jquery.tsx' does not exist.", "File '/node_modules/@types/jquery.d.ts' does not exist.", - "File '/node_modules/@types/jquery.js' does not exist.", - "File '/node_modules/@types/jquery.jsx' does not exist.", "Found 'package.json' at '/node_modules/@types/jquery/package.json'.", "'package.json' has 'typings' field 'jquery.d.ts' that references '/node_modules/@types/jquery/jquery.d.ts'.", "File '/node_modules/@types/jquery/jquery.d.ts' exist - use it as a name resolution result.", @@ -29,19 +23,13 @@ "File '/node_modules/kquery.ts' does not exist.", "File '/node_modules/kquery.tsx' does not exist.", "File '/node_modules/kquery.d.ts' does not exist.", - "File '/node_modules/kquery.js' does not exist.", - "File '/node_modules/kquery.jsx' does not exist.", "File '/node_modules/kquery/package.json' does not exist.", "File '/node_modules/kquery/index.ts' does not exist.", "File '/node_modules/kquery/index.tsx' does not exist.", "File '/node_modules/kquery/index.d.ts' does not exist.", - "File '/node_modules/kquery/index.js' does not exist.", - "File '/node_modules/kquery/index.jsx' does not exist.", "File '/node_modules/@types/kquery.ts' does not exist.", "File '/node_modules/@types/kquery.tsx' does not exist.", "File '/node_modules/@types/kquery.d.ts' does not exist.", - "File '/node_modules/@types/kquery.js' does not exist.", - "File '/node_modules/@types/kquery.jsx' does not exist.", "Found 'package.json' at '/node_modules/@types/kquery/package.json'.", "'package.json' has 'typings' field 'kquery' that references '/node_modules/@types/kquery/kquery'.", "File '/node_modules/@types/kquery/kquery' does not exist.", @@ -56,19 +44,13 @@ "File '/node_modules/lquery.ts' does not exist.", "File '/node_modules/lquery.tsx' does not exist.", "File '/node_modules/lquery.d.ts' does not exist.", - "File '/node_modules/lquery.js' does not exist.", - "File '/node_modules/lquery.jsx' does not exist.", "File '/node_modules/lquery/package.json' does not exist.", "File '/node_modules/lquery/index.ts' does not exist.", "File '/node_modules/lquery/index.tsx' does not exist.", "File '/node_modules/lquery/index.d.ts' does not exist.", - "File '/node_modules/lquery/index.js' does not exist.", - "File '/node_modules/lquery/index.jsx' does not exist.", "File '/node_modules/@types/lquery.ts' does not exist.", "File '/node_modules/@types/lquery.tsx' does not exist.", "File '/node_modules/@types/lquery.d.ts' does not exist.", - "File '/node_modules/@types/lquery.js' does not exist.", - "File '/node_modules/@types/lquery.jsx' does not exist.", "Found 'package.json' at '/node_modules/@types/lquery/package.json'.", "'package.json' has 'typings' field 'lquery' that references '/node_modules/@types/lquery/lquery'.", "File '/node_modules/@types/lquery/lquery' does not exist.", diff --git a/tests/baselines/reference/typingsLookupAmd.trace.json b/tests/baselines/reference/typingsLookupAmd.trace.json index 732e9900658..496166926a8 100644 --- a/tests/baselines/reference/typingsLookupAmd.trace.json +++ b/tests/baselines/reference/typingsLookupAmd.trace.json @@ -4,34 +4,22 @@ "File '/x/y/b.ts' does not exist.", "File '/x/y/b.tsx' does not exist.", "File '/x/y/b.d.ts' does not exist.", - "File '/x/y/b.js' does not exist.", - "File '/x/y/b.jsx' does not exist.", "File '/x/b.ts' does not exist.", "File '/x/b.tsx' does not exist.", "File '/x/b.d.ts' does not exist.", - "File '/x/b.js' does not exist.", - "File '/x/b.jsx' does not exist.", "File '/b.ts' does not exist.", "File '/b.tsx' does not exist.", "File '/b.d.ts' does not exist.", - "File '/b.js' does not exist.", - "File '/b.jsx' does not exist.", "File '/x/y/node_modules/@types/b.ts' does not exist.", "File '/x/y/node_modules/@types/b.tsx' does not exist.", "File '/x/y/node_modules/@types/b.d.ts' does not exist.", - "File '/x/y/node_modules/@types/b.js' does not exist.", - "File '/x/y/node_modules/@types/b.jsx' does not exist.", "File '/x/y/node_modules/@types/b/package.json' does not exist.", "File '/x/y/node_modules/@types/b/index.ts' does not exist.", "File '/x/y/node_modules/@types/b/index.tsx' does not exist.", "File '/x/y/node_modules/@types/b/index.d.ts' does not exist.", - "File '/x/y/node_modules/@types/b/index.js' does not exist.", - "File '/x/y/node_modules/@types/b/index.jsx' does not exist.", "File '/x/node_modules/@types/b.ts' does not exist.", "File '/x/node_modules/@types/b.tsx' does not exist.", "File '/x/node_modules/@types/b.d.ts' does not exist.", - "File '/x/node_modules/@types/b.js' does not exist.", - "File '/x/node_modules/@types/b.jsx' does not exist.", "File '/x/node_modules/@types/b/package.json' does not exist.", "File '/x/node_modules/@types/b/index.ts' does not exist.", "File '/x/node_modules/@types/b/index.tsx' does not exist.", @@ -42,66 +30,42 @@ "File '/x/node_modules/@types/b/a.ts' does not exist.", "File '/x/node_modules/@types/b/a.tsx' does not exist.", "File '/x/node_modules/@types/b/a.d.ts' does not exist.", - "File '/x/node_modules/@types/b/a.js' does not exist.", - "File '/x/node_modules/@types/b/a.jsx' does not exist.", "File '/x/node_modules/@types/a.ts' does not exist.", "File '/x/node_modules/@types/a.tsx' does not exist.", "File '/x/node_modules/@types/a.d.ts' does not exist.", - "File '/x/node_modules/@types/a.js' does not exist.", - "File '/x/node_modules/@types/a.jsx' does not exist.", "File '/x/node_modules/a.ts' does not exist.", "File '/x/node_modules/a.tsx' does not exist.", "File '/x/node_modules/a.d.ts' does not exist.", - "File '/x/node_modules/a.js' does not exist.", - "File '/x/node_modules/a.jsx' does not exist.", "File '/x/a.ts' does not exist.", "File '/x/a.tsx' does not exist.", "File '/x/a.d.ts' does not exist.", - "File '/x/a.js' does not exist.", - "File '/x/a.jsx' does not exist.", "File '/a.ts' does not exist.", "File '/a.tsx' does not exist.", "File '/a.d.ts' does not exist.", - "File '/a.js' does not exist.", - "File '/a.jsx' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a.ts' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a.tsx' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a.d.ts' does not exist.", - "File '/x/node_modules/@types/b/node_modules/@types/a.js' does not exist.", - "File '/x/node_modules/@types/b/node_modules/@types/a.jsx' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a/package.json' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a/index.ts' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a/index.tsx' does not exist.", "File '/x/node_modules/@types/b/node_modules/@types/a/index.d.ts' does not exist.", - "File '/x/node_modules/@types/b/node_modules/@types/a/index.js' does not exist.", - "File '/x/node_modules/@types/b/node_modules/@types/a/index.jsx' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a.ts' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a.tsx' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a.d.ts' does not exist.", - "File '/x/node_modules/@types/node_modules/@types/a.js' does not exist.", - "File '/x/node_modules/@types/node_modules/@types/a.jsx' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a/package.json' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a/index.ts' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a/index.tsx' does not exist.", "File '/x/node_modules/@types/node_modules/@types/a/index.d.ts' does not exist.", - "File '/x/node_modules/@types/node_modules/@types/a/index.js' does not exist.", - "File '/x/node_modules/@types/node_modules/@types/a/index.jsx' does not exist.", "File '/x/node_modules/@types/a.ts' does not exist.", "File '/x/node_modules/@types/a.tsx' does not exist.", "File '/x/node_modules/@types/a.d.ts' does not exist.", - "File '/x/node_modules/@types/a.js' does not exist.", - "File '/x/node_modules/@types/a.jsx' does not exist.", "File '/x/node_modules/@types/a/package.json' does not exist.", "File '/x/node_modules/@types/a/index.ts' does not exist.", "File '/x/node_modules/@types/a/index.tsx' does not exist.", "File '/x/node_modules/@types/a/index.d.ts' does not exist.", - "File '/x/node_modules/@types/a/index.js' does not exist.", - "File '/x/node_modules/@types/a/index.jsx' does not exist.", "File '/node_modules/@types/a.ts' does not exist.", "File '/node_modules/@types/a.tsx' does not exist.", "File '/node_modules/@types/a.d.ts' does not exist.", - "File '/node_modules/@types/a.js' does not exist.", - "File '/node_modules/@types/a.jsx' does not exist.", "File '/node_modules/@types/a/package.json' does not exist.", "File '/node_modules/@types/a/index.ts' does not exist.", "File '/node_modules/@types/a/index.tsx' does not exist.",