From 536d703d9ec3f208809a23b20b6058ebf38eae20 Mon Sep 17 00:00:00 2001 From: zhengbli Date: Wed, 12 Oct 2016 18:05:01 -0700 Subject: [PATCH] Set maxNodeModuleJsDepth for inferred projects --- .../unittests/tsserverProjectSystem.ts | 22 +++++++++++++++++++ src/server/project.ts | 7 ++++++ 2 files changed, 29 insertions(+) diff --git a/src/harness/unittests/tsserverProjectSystem.ts b/src/harness/unittests/tsserverProjectSystem.ts index 08e4bac7b2c..3e34b796955 100644 --- a/src/harness/unittests/tsserverProjectSystem.ts +++ b/src/harness/unittests/tsserverProjectSystem.ts @@ -2387,4 +2387,26 @@ namespace ts.projectSystem { assert.isTrue(errorResult.length === 0); }); }); + + describe("maxNodeModuleJsDepth for inferred projects", () => { + it("should be set by default", () => { + const file1: FileOrFolder = { + path: "/a/b/file1.js", + content: `var t = require("test"); t.` + }; + const moduleFile: FileOrFolder = { + path: "/a/b/node_modules/test/index.js", + content: `var v = 10; module.exports = v;` + }; + + const host = createServerHost([file1, moduleFile]); + const projectService = createProjectService(host); + projectService.openClientFile(file1.path); + + const project = projectService.inferredProjects[0]; + const sourceFile = project.getSourceFile(file1.path); + assert.isTrue("test" in sourceFile.resolvedModules); + assert.equal((sourceFile.resolvedModules["test"]).resolvedFileName, moduleFile.path); + }); + }); } \ No newline at end of file diff --git a/src/server/project.ts b/src/server/project.ts index a355d75f942..91e898bb568 100644 --- a/src/server/project.ts +++ b/src/server/project.ts @@ -126,6 +126,13 @@ namespace ts.server { this.compilerOptions.allowNonTsExtensions = true; } + if (this.projectKind === ProjectKind.Inferred) { + // Add default compiler options for inferred projects here + if (this.compilerOptions.maxNodeModuleJsDepth === undefined) { + this.compilerOptions.maxNodeModuleJsDepth = 2; + } + } + if (languageServiceEnabled) { this.enableLanguageService(); }