Skip to content

Commit 1ee5022

Browse files
committed
Change the api for node name resolver to take compiler options instead of supportedExtensions
1 parent 0482afd commit 1ee5022

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

src/compiler/program.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ namespace ts {
4242
: compilerOptions.module === ModuleKind.CommonJS ? ModuleResolutionKind.NodeJs : ModuleResolutionKind.Classic;
4343

4444
switch (moduleResolution) {
45-
case ModuleResolutionKind.NodeJs: return nodeModuleNameResolver(moduleName, containingFile, getSupportedExtensions(compilerOptions), host);
45+
case ModuleResolutionKind.NodeJs: return nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host);
4646
case ModuleResolutionKind.Classic: return classicNameResolver(moduleName, containingFile, compilerOptions, host);
4747
}
4848
}
4949

50-
export function nodeModuleNameResolver(moduleName: string, containingFile: string, supportedExtensions: string[], host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations {
50+
export function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations {
5151
const containingDirectory = getDirectoryPath(containingFile);
52-
52+
const supportedExtensions = getSupportedExtensions(compilerOptions);
5353
if (getRootLength(moduleName) !== 0 || nameStartsWithDotSlashOrDotDotSlash(moduleName)) {
5454
const failedLookupLocations: string[] = [];
5555
const candidate = normalizePath(combinePaths(containingDirectory, moduleName));

tests/cases/unittests/moduleResolution.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ module ts {
5353
for (let ext of supportedTypeScriptExtensions) {
5454
let containingFile = { name: containingFileName }
5555
let moduleFile = { name: moduleFileNameNoExt + ext }
56-
let resolution = nodeModuleNameResolver(moduleName, containingFile.name, supportedTypeScriptExtensions, createModuleResolutionHost(containingFile, moduleFile));
56+
let resolution = nodeModuleNameResolver(moduleName, containingFile.name, {}, createModuleResolutionHost(containingFile, moduleFile));
5757
assert.equal(resolution.resolvedModule.resolvedFileName, moduleFile.name);
5858
assert.equal(!!resolution.resolvedModule.isExternalLibraryImport, false);
5959

@@ -92,7 +92,7 @@ module ts {
9292
let containingFile = { name: containingFileName };
9393
let packageJson = { name: packageJsonFileName, content: JSON.stringify({ "typings": fieldRef }) };
9494
let moduleFile = { name: moduleFileName };
95-
let resolution = nodeModuleNameResolver(moduleName, containingFile.name, supportedTypeScriptExtensions, createModuleResolutionHost(containingFile, packageJson, moduleFile));
95+
let resolution = nodeModuleNameResolver(moduleName, containingFile.name, {}, createModuleResolutionHost(containingFile, packageJson, moduleFile));
9696
assert.equal(resolution.resolvedModule.resolvedFileName, moduleFile.name);
9797
assert.equal(!!resolution.resolvedModule.isExternalLibraryImport, false);
9898
// expect three failed lookup location - attempt to load module as file with all supported extensions
@@ -110,7 +110,7 @@ module ts {
110110
let containingFile = { name: "/a/b/c.ts" };
111111
let packageJson = { name: "/a/b/foo/package.json", content: JSON.stringify({ main: "/c/d" }) };
112112
let indexFile = { name: "/a/b/foo/index.d.ts" };
113-
let resolution = nodeModuleNameResolver("./foo", containingFile.name, supportedTypeScriptExtensions, createModuleResolutionHost(containingFile, packageJson, indexFile));
113+
let resolution = nodeModuleNameResolver("./foo", containingFile.name, {}, createModuleResolutionHost(containingFile, packageJson, indexFile));
114114
assert.equal(resolution.resolvedModule.resolvedFileName, indexFile.name);
115115
assert.equal(!!resolution.resolvedModule.isExternalLibraryImport, false);
116116
assert.deepEqual(resolution.failedLookupLocations, [
@@ -127,7 +127,7 @@ module ts {
127127
it("load module as file - ts files not loaded", () => {
128128
let containingFile = { name: "/a/b/c/d/e.ts" };
129129
let moduleFile = { name: "/a/b/node_modules/foo.ts" };
130-
let resolution = nodeModuleNameResolver("foo", containingFile.name, supportedTypeScriptExtensions, createModuleResolutionHost(containingFile, moduleFile));
130+
let resolution = nodeModuleNameResolver("foo", containingFile.name, {}, createModuleResolutionHost(containingFile, moduleFile));
131131
assert.equal(resolution.resolvedModule.resolvedFileName, moduleFile.name);
132132
assert.deepEqual(resolution.failedLookupLocations, [
133133
"/a/b/c/d/node_modules/foo.ts",
@@ -150,15 +150,15 @@ module ts {
150150
it("load module as file", () => {
151151
let containingFile = { name: "/a/b/c/d/e.ts" };
152152
let moduleFile = { name: "/a/b/node_modules/foo.d.ts" };
153-
let resolution = nodeModuleNameResolver("foo", containingFile.name, supportedTypeScriptExtensions, createModuleResolutionHost(containingFile, moduleFile));
153+
let resolution = nodeModuleNameResolver("foo", containingFile.name, {}, createModuleResolutionHost(containingFile, moduleFile));
154154
assert.equal(resolution.resolvedModule.resolvedFileName, moduleFile.name);
155155
assert.equal(resolution.resolvedModule.isExternalLibraryImport, true);
156156
});
157157

158158
it("load module as directory", () => {
159159
let containingFile = { name: "/a/node_modules/b/c/node_modules/d/e.ts" };
160160
let moduleFile = { name: "/a/node_modules/foo/index.d.ts" };
161-
let resolution = nodeModuleNameResolver("foo", containingFile.name, supportedTypeScriptExtensions, createModuleResolutionHost(containingFile, moduleFile));
161+
let resolution = nodeModuleNameResolver("foo", containingFile.name, {}, createModuleResolutionHost(containingFile, moduleFile));
162162
assert.equal(resolution.resolvedModule.resolvedFileName, moduleFile.name);
163163
assert.equal(resolution.resolvedModule.isExternalLibraryImport, true);
164164
assert.deepEqual(resolution.failedLookupLocations, [

0 commit comments

Comments
 (0)