Skip to content

Commit f415097

Browse files
committed
addressed PR feedback
1 parent 049a5fb commit f415097

File tree

2 files changed

+5
-43
lines changed

2 files changed

+5
-43
lines changed

src/compiler/program.ts

+5-38
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ namespace ts {
3636
}
3737

3838
export function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModule {
39-
switch(compilerOptions.moduleResolution) {
39+
switch (compilerOptions.moduleResolution) {
4040
case ModuleResolutionKind.NodeJs: return nodeModuleNameResolver(moduleName, containingFile, host);
4141
case ModuleResolutionKind.BaseUrl: return baseUrlModuleNameResolver(moduleName, containingFile, compilerOptions.baseUrl, host);
4242
default: return legacyNameResolver(moduleName, containingFile, compilerOptions, host);
@@ -141,26 +141,7 @@ namespace ts {
141141

142142
let failedLookupLocations: string[] = [];
143143

144-
let hasSupportedExtension = forEach(supportedExtensions, ext => fileExtensionIs(candidate, ext));
145-
146-
if (hasSupportedExtension) {
147-
// module name already has extension - use it as is
148-
let result = tryLoadFile(candidate);
149-
if (result) {
150-
return result;
151-
}
152-
}
153-
else {
154-
// module name does not have extension - try every supported extension
155-
for(let ext of supportedExtensions) {
156-
let result = tryLoadFile(candidate + ext);
157-
if (result) {
158-
return result;
159-
}
160-
}
161-
}
162-
163-
return { resolvedFileName: undefined, failedLookupLocations };
144+
return forEach(supportedExtensions, ext => tryLoadFile(candidate + ext)) || { resolvedFileName: undefined, failedLookupLocations };
164145

165146
function tryLoadFile(location: string): ResolvedModule {
166147
if (host.fileExists(location)) {
@@ -179,23 +160,9 @@ namespace ts {
179160
}
180161

181162
function useBaseUrl(moduleName: string): boolean {
182-
// path is rooted
183-
if (getRootLength(moduleName) !== 0) {
184-
return false;
185-
}
186-
187-
// module name starts with './' or '../'
188-
if (nameStartsWithDotSlashOrDotDotSlash(moduleName)) {
189-
return false;
190-
}
191-
192-
// module name has one of supported extesions
193-
for(let ext of supportedExtensions ) {
194-
if (fileExtensionIs(moduleName, ext)) {
195-
return false;
196-
}
197-
}
198-
return true;
163+
// path is not rooted
164+
// module name does not start with './' or '../'
165+
return getRootLength(moduleName) === 0 && !nameStartsWithDotSlashOrDotDotSlash(moduleName);
199166
}
200167

201168
export function legacyNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModule {

tests/cases/unittests/moduleResolution.ts

-5
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,6 @@ module ts {
253253
assert.deepEqual(resolution.failedLookupLocations, expectedFailedLookupLocations)
254254
}
255255

256-
test("/a/b/c/d.ts", "/foo.ts", "/foo.ts");
257256
test("/a/b/c/d.ts", "/foo.ts", "/foo");
258257
test("/a/b/c/d.ts", "/foo.d.ts", "/foo");
259258
test("/a/b/c/d.ts", "/foo.tsx", "/foo");
@@ -265,10 +264,6 @@ module ts {
265264
test("/a/b/c/d.ts", "/a/b/foo.ts", "../foo");
266265
test("/a/b/c/d.ts", "/a/b/foo.d.ts", "../foo");
267266
test("/a/b/c/d.ts", "/a/b/foo.tsx", "../foo");
268-
269-
test("/a/b/c/d.ts", "/a/b/c/foo.ts", "foo.ts");
270-
test("/a/b/c/d.ts", "/a/b/c/foo.tsx", "foo.tsx");
271-
test("/a/b/c/d.ts", "/a/b/c/foo.d.ts", "foo.d.ts");
272267
});
273268

274269
it ("load module using base url", () => {

0 commit comments

Comments
 (0)