Skip to content
This repository was archived by the owner on Dec 1, 2019. It is now read-only.

Commit 1748041

Browse files
committed
Merge branch 'jnetterf-remove-extensions'
2 parents 9b9930f + d834d9c commit 1748041

File tree

17 files changed

+2924
-17
lines changed

17 files changed

+2924
-17
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"standard-version": "^2.4.0",
6666
"temp": "^0.8.3",
6767
"tslint": "^3.14.0",
68-
"typescript": "^2.0.0",
68+
"typescript": "^2.0.2",
6969
"webpack": "2.1.0-beta.4"
7070
}
7171
}

src/deps.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { State } from './host';
2+
import { withoutTypeScriptExtension } from './helpers';
23
import * as path from 'path';
34
type FileSet = {[fileName: string]: boolean};
45

@@ -74,7 +75,8 @@ export class FileAnalyzer {
7475
imports.push.apply(imports, info.importedFiles
7576
.map(file => file.fileName)
7677
.map(depName => {
77-
let { resolvedModule } = ts.resolveModuleName(depName, fileName, options, ts.sys);
78+
let moduleName = withoutTypeScriptExtension(depName);
79+
let { resolvedModule } = ts.resolveModuleName(moduleName, fileName, options, ts.sys);
7880
if (resolvedModule) {
7981
deps.addModuleResolution(fileName, depName, resolvedModule);
8082
return resolvedModule.resolvedFileName;
@@ -91,7 +93,8 @@ export class FileAnalyzer {
9193
return path.resolve(path.dirname(fileName), relative);
9294
})
9395
.map(depName => {
94-
let { resolvedModule } = ts.resolveModuleName(depName, fileName, options, ts.sys);
96+
let moduleName = withoutTypeScriptExtension(depName);
97+
let { resolvedModule } = ts.classicNameResolver(moduleName, fileName, options, ts.sys);
9598
if (resolvedModule) {
9699
deps.addModuleResolution(fileName, depName, resolvedModule);
97100
// return non-realpath name (symlinks not resolved)
@@ -123,17 +126,10 @@ export interface IDependencyGraphItem {
123126
}
124127

125128
export class DependencyManager {
126-
dependencies: {[fileName: string]: string[]};
127-
moduleResolutions: {[cacheKey: string]: ts.ResolvedModule};
128-
typeReferenceResolutions: {[cacheKey: string]: ts.ResolvedTypeReferenceDirective};
129-
compiledModules: {[fileName: string]: string[]};
130-
131-
constructor() {
132-
this.dependencies = {};
133-
this.compiledModules = {};
134-
this.moduleResolutions = {};
135-
this.typeReferenceResolutions = {};
136-
}
129+
dependencies: {[fileName: string]: string[]} = {};
130+
moduleResolutions: {[cacheKey: string]: ts.ResolvedModule} = {};
131+
typeReferenceResolutions: {[cacheKey: string]: ts.ResolvedTypeReferenceDirective} = {};
132+
compiledModules: {[fileName: string]: string[]} = {};
137133

138134
addModuleResolution(fileName: string, depName: string, resolvedModule: ts.ResolvedModule) {
139135
this.moduleResolutions[`${fileName}::${depName}`] = resolvedModule;

src/helpers.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,9 @@ export function loadLib(moduleId) {
113113
text: text
114114
};
115115
}
116+
117+
const TYPESCRIPT_EXTENSION = /\.(d\.)?(t|j)s$/;
118+
119+
export function withoutTypeScriptExtension(fileName: string): string {
120+
return fileName.replace(TYPESCRIPT_EXTENSION, '');
121+
}

src/host.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,12 @@ export class Host implements ts.LanguageServiceHost {
8686
}
8787

8888
resolveModuleNames(moduleNames: string[], containingFile: string) {
89-
let deps = this.state.fileAnalyzer.dependencies;
90-
return moduleNames.map(moduleName => {
89+
const deps = this.state.fileAnalyzer.dependencies;
90+
const resolvedModules = moduleNames.map(moduleName => {
9191
return deps.getModuleResolution(containingFile, moduleName);
9292
});
93+
94+
return resolvedModules;
9395
}
9496

9597
getDefaultLibLocation(): string {
@@ -145,7 +147,7 @@ export class State {
145147
loadTypesFromConfig() {
146148
let { options } = this.compilerConfig;
147149

148-
const directives = this.ts.getAutomaticTypeDirectiveNames(options, [], this.compilerHost);
150+
const directives = this.ts.getAutomaticTypeDirectiveNames(options, this.compilerHost);
149151

150152
if (directives) {
151153
directives.forEach(type => {

src/test/fixtures/react/index.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import * as React from 'react'
2+
import { renderToString } from 'react-dom/server'
3+
4+
renderToString(<div />)

src/test/fixtures/react/node_modules/@types/react-dom/README.md

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/fixtures/react/node_modules/@types/react-dom/index.d.ts

Lines changed: 64 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/fixtures/react/node_modules/@types/react-dom/package.json

Lines changed: 80 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/fixtures/react/node_modules/@types/react-dom/react-dom.server.d.ts

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/fixtures/react/node_modules/@types/react-dom/types-metadata.json

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/fixtures/react/node_modules/@types/react/README.md

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)