diff --git a/src/testRunner/tests.ts b/src/testRunner/tests.ts index 0d646f714d7..1a9a5b966fc 100644 --- a/src/testRunner/tests.ts +++ b/src/testRunner/tests.ts @@ -95,6 +95,7 @@ import "./unittests/tsbuild/resolveJsonModule"; import "./unittests/tsbuild/roots"; import "./unittests/tsbuild/sample"; import "./unittests/tsbuild/transitiveReferences"; +import "./unittests/tsbuild/typeReferenceDirectives"; import "./unittests/tsbuildWatch/configFileErrors"; import "./unittests/tsbuildWatch/demo"; import "./unittests/tsbuildWatch/libraryResolution"; diff --git a/src/testRunner/unittests/helpers/tsserver.ts b/src/testRunner/unittests/helpers/tsserver.ts index 9ad804b5fa2..2c04526b55e 100644 --- a/src/testRunner/unittests/helpers/tsserver.ts +++ b/src/testRunner/unittests/helpers/tsserver.ts @@ -489,6 +489,7 @@ function patchHostTimeouts( export interface TestSessionOptions extends ts.server.SessionOptions { logger: Logger; allowNonBaseliningLogger?: boolean; + disableAutomaticTypingAcquisition?: boolean; } export type TestSessionRequest = Pick; @@ -543,7 +544,7 @@ export class TestSession extends ts.server.Session { export function createSession(host: TestServerHost, opts: Partial = {}) { const logger = opts.logger || createHasErrorMessageLogger(); - if (opts.typingsInstaller === undefined) { + if (!opts.disableAutomaticTypingAcquisition && opts.typingsInstaller === undefined) { opts.typingsInstaller = new TestTypingsInstaller(host.getHostSpecificPath("/a/data/"), /*throttleLimit*/ 5, host, logger); } @@ -556,7 +557,6 @@ export function createSession(host: TestServerHost, opts: Partial { + verifyTsc({ + scenario: "typeReferenceDirectives", + subScenario: `effective type roots affect module resolution`, + fs: () => + loadProjectFromFiles({ + "/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.json": JSON.stringify({ + compilerOptions: { incremental: true }, + }), + "/users/username/projects/replay/axios-src/test/module/ts-require/index.ts": dedent` + export const a = 10; + `, + "/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts": dedent` + declare const tsRequireGlobal = 10; + `, + "/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts": dedent` + /// + export const z = 10; + `, + "/users/username/projects/replay/axios-src/test/module/ts/tsconfig.json": JSON.stringify({ + compilerOptions: { incremental: true }, + }), + "/users/username/projects/replay/axios-src/test/module/ts/index.ts": dedent` + export const y = 10; + `, + "/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts": dedent` + declare const tsGlobal = 10; + `, + }, { cwd: "/users/username/projects/replay/axios-src" }), + commandLineArgs: ["-b", "test/module/ts-require", "test/module/ts", "--verbose", "--traceResolution", "--explainFiles"], + edits: [{ + caption: "build ts project with edit", + edit: fs => appendText(fs, "/users/username/projects/replay/axios-src/test/module/ts/index.ts", `export const z = 10;`), + }], + }); +}); diff --git a/src/testRunner/unittests/tsserver/resolutionCache.ts b/src/testRunner/unittests/tsserver/resolutionCache.ts index 2899df58217..ff8d5977662 100644 --- a/src/testRunner/unittests/tsserver/resolutionCache.ts +++ b/src/testRunner/unittests/tsserver/resolutionCache.ts @@ -628,6 +628,43 @@ export const x = 10;`, describe("unittests:: tsserver:: resolutionCache:: tsserverProjectSystem with project references", () => { it("sharing across references", () => { + const host = createServerHost({ + "/users/username/projects/node_modules/moduleX/index.d.ts": "export const x = 10;", + "/users/username/projects/common/tsconfig.json": JSON.stringify({ + compilerOptions: compilerOptionsToConfigJson({ + composite: true, + traceResolution: true, + typeRoots: [], + }), + }), + "/users/username/projects/common/moduleA.ts": "export const a = 10;", + "/users/username/projects/common/moduleB.ts": Utils.dedent` + import { x } from "moduleX"; + export const b = x; + `, + "/users/username/projects/app/tsconfig.json": JSON.stringify({ + compilerOptions: compilerOptionsToConfigJson({ + composite: true, + traceResolution: true, + typeRoots: [], + }), + references: [{ path: "../common" }], + }), + "/users/username/projects/app/appA.ts": Utils.dedent` + import { x } from "moduleX"; + export const y = x; + `, + "/users/username/projects/app/appB.ts": Utils.dedent` + import { x } from "../common/moduleB"; + export const y = x; + `, + }); + const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) }); + openFilesForSession(["/users/username/projects/app/appB.ts"], session); + baselineTsserverLogs("resolutionCache", "sharing across references", session); + }); + + it("not sharing across references because typeRoots are not specified and config directories are different", () => { const host = createServerHost({ "/users/username/projects/node_modules/moduleX/index.d.ts": "export const x = 10;", "/users/username/projects/common/tsconfig.json": JSON.stringify({ @@ -659,7 +696,7 @@ describe("unittests:: tsserver:: resolutionCache:: tsserverProjectSystem with pr }); const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) }); openFilesForSession(["/users/username/projects/app/appB.ts"], session); - baselineTsserverLogs("resolutionCache", "sharing across references", session); + baselineTsserverLogs("resolutionCache", "not sharing across references because typeRoots are not specified and config directories are different", session); }); it("not sharing across references", () => { diff --git a/src/testRunner/unittests/tsserver/typeReferenceDirectives.ts b/src/testRunner/unittests/tsserver/typeReferenceDirectives.ts index c0caf9bab9c..b8b05aafcec 100644 --- a/src/testRunner/unittests/tsserver/typeReferenceDirectives.ts +++ b/src/testRunner/unittests/tsserver/typeReferenceDirectives.ts @@ -1,3 +1,7 @@ +import * as ts from "../../_namespaces/ts"; +import { + dedent, +} from "../../_namespaces/Utils"; import { baselineTsserverLogs, createLoggerWithInMemoryLogs, @@ -10,7 +14,7 @@ import { libFile, } from "../helpers/virtualFileSystemWithWatch"; -describe("unittests:: tsserver:: typeReferenceDirectives", () => { +describe("unittests:: tsserver:: typeReferenceDirectives::", () => { it("when typeReferenceDirective contains UpperCasePackage", () => { const libProjectLocation = `/user/username/projects/myproject/lib`; const typeLib: File = { @@ -91,4 +95,56 @@ declare class TestLib { openFilesForSession([file], session); baselineTsserverLogs("typeReferenceDirectives", "when typeReferenceDirective is relative path and in a sibling folder", session); }); + + it("typeReferenceDirective of shared auto type file in two projects with same options", () => { + const host = createServerHost({ + "/users/username/projects/replay/axios-src/test/module/ts-require/index.js": dedent` + export const a = 10; + + `, + "/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts": dedent` + export const x = 10; + `, + "/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts": dedent` + /// + export const z = 10; + `, + "/users/username/projects/replay/axios-src/test/module/ts/index.js": dedent` + export const y = 10; + `, + "/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts": dedent` + export const x = 10; + `, + }); + const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host), disableAutomaticTypingAcquisition: true }); + // This will add responselike/index.d.ts and resolve the type ref "node" to "test/module/ts-require/node_modules/@types/node/index.d.ts" because of current directory + openFilesForSession(["/users/username/projects/replay/axios-src/test/module/ts-require/index.js"], session); + session.executeCommandSeq({ // Schedule update + command: ts.server.protocol.CommandTypes.UpdateOpen, + arguments: { + changedFiles: [{ + fileName: "/users/username/projects/replay/axios-src/test/module/ts-require/index.js", + textChanges: [{ + newText: "//comment", + start: { line: 2, offset: 1 }, + end: { line: 2, offset: 1 }, + }], + }], + }, + }); + // This will add responselike/index.d.ts - which is same sourceFile as from previous project and update the typeRef "node" to "test/module/ts/node_modules/@types/node/index.d.ts" because of current directory + openFilesForSession(["/users/username/projects/replay/axios-src/test/module/ts/index.js"], session); + const firstProjectSourceFile = session.getProjectService().inferredProjects[0].getCurrentProgram()!.getSourceFile("/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts"); + const secondProjectSourceFile = session.getProjectService().inferredProjects[1].getCurrentProgram()!.getSourceFile("/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts"); + assert.isTrue(firstProjectSourceFile === secondProjectSourceFile, "Source file would be same in both projects even though resolutions will not be"); + // So when first project is updated as part of this command, it will get incorrect type ref resolution from the other project + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.Navto, + arguments: { + searchValue: "a", + maxResultCount: 256, + }, + }); + baselineTsserverLogs("typeReferenceDirectives", "typeReferenceDirective of shared auto type file in two projects with same options", session); + }); }); diff --git a/tests/baselines/reference/tsbuild/typeReferenceDirectives/effective-type-roots-affect-module-resolution-discrepancies.js b/tests/baselines/reference/tsbuild/typeReferenceDirectives/effective-type-roots-affect-module-resolution-discrepancies.js new file mode 100644 index 00000000000..cc864ee17cd --- /dev/null +++ b/tests/baselines/reference/tsbuild/typeReferenceDirectives/effective-type-roots-affect-module-resolution-discrepancies.js @@ -0,0 +1,83 @@ +0:: build ts project with edit +*** Needs explanation +TsBuild info text without affectedFilesPendingEmit:: /users/username/projects/replay/axios-src/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt:: +CleanBuild: +{ + "program": { + "fileInfos": { + "../../../../../../../../lib/lib.d.ts": { + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14419396410-export const y = 10;\nexport const z = 10;" + }, + "./node_modules/@types/node/index.d.ts": { + "version": "-7116520553-declare const tsGlobal = 10;\n", + "affectsGlobalScope": true + }, + "../../../node_modules/@types/responselike/index.d.ts": { + "version": "4670743798-/// \nexport const z = 10;\n" + } + }, + "root": [ + [ + 2, + "./index.ts" + ] + ], + "referencedMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "../ts-require/node_modules/@types/node/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../../../../../../../../lib/lib.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts" + ], + "options": {} + }, + "version": "FakeTSVersion" +} +IncrementalBuild: +{ + "program": { + "fileInfos": { + "../../../../../../../../lib/lib.d.ts": { + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-14419396410-export const y = 10;\nexport const z = 10;" + }, + "./node_modules/@types/node/index.d.ts": { + "version": "-7116520553-declare const tsGlobal = 10;\n", + "affectsGlobalScope": true + }, + "../../../node_modules/@types/responselike/index.d.ts": { + "version": "4670743798-/// \nexport const z = 10;\n" + } + }, + "root": [ + [ + 2, + "./index.ts" + ] + ], + "referencedMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "./node_modules/@types/node/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../../../../../../../../lib/lib.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts" + ], + "options": {} + }, + "version": "FakeTSVersion" +} \ No newline at end of file diff --git a/tests/baselines/reference/tsbuild/typeReferenceDirectives/effective-type-roots-affect-module-resolution.js b/tests/baselines/reference/tsbuild/typeReferenceDirectives/effective-type-roots-affect-module-resolution.js new file mode 100644 index 00000000000..ae134d2f6a4 --- /dev/null +++ b/tests/baselines/reference/tsbuild/typeReferenceDirectives/effective-type-roots-affect-module-resolution.js @@ -0,0 +1,416 @@ +currentDirectory:: /users/username/projects/replay/axios-src useCaseSensitiveFileNames: false +Input:: +//// [/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + +//// [/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts] +/// +export const z = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/index.ts] +export const y = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts] +declare const tsGlobal = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/tsconfig.json] +{"compilerOptions":{"incremental":true}} + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/index.ts] +export const a = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts] +declare const tsRequireGlobal = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.json] +{"compilerOptions":{"incremental":true}} + + + +Output:: +/lib/tsc -b test/module/ts-require test/module/ts --verbose --traceResolution --explainFiles +[12:00:30 AM] Projects in this build: + * test/module/ts-require/tsconfig.json + * test/module/ts/tsconfig.json + +[12:00:31 AM] Project 'test/module/ts-require/tsconfig.json' is out of date because output file 'test/module/ts-require/tsconfig.tsbuildinfo' does not exist + +[12:00:32 AM] Building project '/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.json'... + +======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/test/module/ts-require/__inferred type names__.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/package.json' does not exist. +File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', result '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts'. +======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ======== +======== Resolving type reference directive 'responselike', containing file '/users/username/projects/replay/axios-src/test/module/ts-require/__inferred type names__.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +Directory '/users/username/projects/replay/axios-src/test/module/node_modules/@types' does not exist, skipping all lookups in it. +Directory '/users/username/projects/replay/axios-src/test/node_modules/@types' does not exist, skipping all lookups in it. +File '/users/username/projects/replay/axios-src/node_modules/@types/responselike/package.json' does not exist. +File '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', result '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts'. +======== Type reference directive 'responselike' was successfully resolved to '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', primary: true. ======== +======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups. +File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', result '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts'. +======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ======== +../../../../../lib/lib.d.ts + Default library for target 'es5' +test/module/ts-require/index.ts + Matched by default include pattern '**/*' +test/module/ts-require/node_modules/@types/node/index.d.ts + Entry point for implicit type library 'node' +node_modules/@types/responselike/index.d.ts + Entry point for implicit type library 'responselike' +[12:00:37 AM] Project 'test/module/ts/tsconfig.json' is out of date because output file 'test/module/ts/tsconfig.tsbuildinfo' does not exist + +[12:00:38 AM] Building project '/users/username/projects/replay/axios-src/test/module/ts/tsconfig.json'... + +======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/test/module/ts/__inferred type names__.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +File '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/package.json' does not exist. +File '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', result '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts'. +======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ======== +======== Resolving type reference directive 'responselike', containing file '/users/username/projects/replay/axios-src/test/module/ts/__inferred type names__.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +Directory '/users/username/projects/replay/axios-src/test/module/node_modules/@types' does not exist, skipping all lookups in it. +Directory '/users/username/projects/replay/axios-src/test/node_modules/@types' does not exist, skipping all lookups in it. +File '/users/username/projects/replay/axios-src/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups. +File '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', result '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts'. +======== Type reference directive 'responselike' was successfully resolved to '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', primary: true. ======== +======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts'. ======== +Resolution for type reference directive 'node' was found in cache from location '/users/username/projects/replay/axios-src/node_modules/@types/responselike'. +======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ======== +../../../../../lib/lib.d.ts + Default library for target 'es5' +test/module/ts/index.ts + Matched by default include pattern '**/*' +test/module/ts/node_modules/@types/node/index.d.ts + Entry point for implicit type library 'node' +node_modules/@types/responselike/index.d.ts + Entry point for implicit type library 'responselike' +exitCode:: ExitStatus.Success + + +//// [/users/username/projects/replay/axios-src/test/module/ts/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.y = void 0; +exports.y = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../../../../lib/lib.d.ts","./index.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts","../ts-require/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-15001859510-export const y = 10;\n",{"version":"-7116520553-declare const tsGlobal = 10;\n","affectsGlobalScope":true},"4670743798-/// \nexport const z = 10;\n"],"root":[2],"fileIdsList":[[5]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,1]],"semanticDiagnosticsPerFile":[1,4,2,3]},"version":"FakeTSVersion"} + +//// [/users/username/projects/replay/axios-src/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../../../../lib/lib.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "../ts-require/node_modules/@types/node/index.d.ts" + ], + "fileNamesList": [ + [ + "../ts-require/node_modules/@types/node/index.d.ts" + ] + ], + "fileInfos": { + "../../../../../../../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-15001859510-export const y = 10;\n", + "signature": "-15001859510-export const y = 10;\n" + }, + "./node_modules/@types/node/index.d.ts": { + "original": { + "version": "-7116520553-declare const tsGlobal = 10;\n", + "affectsGlobalScope": true + }, + "version": "-7116520553-declare const tsGlobal = 10;\n", + "signature": "-7116520553-declare const tsGlobal = 10;\n", + "affectsGlobalScope": true + }, + "../../../node_modules/@types/responselike/index.d.ts": { + "version": "4670743798-/// \nexport const z = 10;\n", + "signature": "4670743798-/// \nexport const z = 10;\n" + } + }, + "root": [ + [ + 2, + "./index.ts" + ] + ], + "referencedMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "../ts-require/node_modules/@types/node/index.d.ts" + ] + }, + "exportedModulesMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "../ts-require/node_modules/@types/node/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../../../../../../../../lib/lib.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts" + ] + }, + "version": "FakeTSVersion", + "size": 1059 +} + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../../../../lib/lib.d.ts","./index.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-15642274510-export const a = 10;\n",{"version":"-5802762828-declare const tsRequireGlobal = 10;\n","affectsGlobalScope":true},"4670743798-/// \nexport const z = 10;\n"],"root":[2],"fileIdsList":[[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,1]],"semanticDiagnosticsPerFile":[1,4,2,3]},"version":"FakeTSVersion"} + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../../../../lib/lib.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts", + "../../../node_modules/@types/responselike/index.d.ts" + ], + "fileNamesList": [ + [ + "./node_modules/@types/node/index.d.ts" + ] + ], + "fileInfos": { + "../../../../../../../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "./index.ts": { + "version": "-15642274510-export const a = 10;\n", + "signature": "-15642274510-export const a = 10;\n" + }, + "./node_modules/@types/node/index.d.ts": { + "original": { + "version": "-5802762828-declare const tsRequireGlobal = 10;\n", + "affectsGlobalScope": true + }, + "version": "-5802762828-declare const tsRequireGlobal = 10;\n", + "signature": "-5802762828-declare const tsRequireGlobal = 10;\n", + "affectsGlobalScope": true + }, + "../../../node_modules/@types/responselike/index.d.ts": { + "version": "4670743798-/// \nexport const z = 10;\n", + "signature": "4670743798-/// \nexport const z = 10;\n" + } + }, + "root": [ + [ + 2, + "./index.ts" + ] + ], + "referencedMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "./node_modules/@types/node/index.d.ts" + ] + }, + "exportedModulesMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "./node_modules/@types/node/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../../../../../../../../lib/lib.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts" + ] + }, + "version": "FakeTSVersion", + "size": 1014 +} + + + +Change:: build ts project with edit +Input:: +//// [/users/username/projects/replay/axios-src/test/module/ts/index.ts] +export const y = 10; +export const z = 10; + + + +Output:: +/lib/tsc -b test/module/ts-require test/module/ts --verbose --traceResolution --explainFiles +[12:00:44 AM] Projects in this build: + * test/module/ts-require/tsconfig.json + * test/module/ts/tsconfig.json + +[12:00:45 AM] Project 'test/module/ts-require/tsconfig.json' is up to date because newest input 'test/module/ts-require/index.ts' is older than output 'test/module/ts-require/tsconfig.tsbuildinfo' + +[12:00:46 AM] Project 'test/module/ts/tsconfig.json' is out of date because output 'test/module/ts/tsconfig.tsbuildinfo' is older than input 'test/module/ts/index.ts' + +[12:00:47 AM] Building project '/users/username/projects/replay/axios-src/test/module/ts/tsconfig.json'... + +======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/test/module/ts/__inferred type names__.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +File '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/package.json' does not exist. +File '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', result '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts'. +======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ======== +======== Resolving type reference directive 'responselike', containing file '/users/username/projects/replay/axios-src/test/module/ts/__inferred type names__.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +Directory '/users/username/projects/replay/axios-src/test/module/node_modules/@types' does not exist, skipping all lookups in it. +Directory '/users/username/projects/replay/axios-src/test/node_modules/@types' does not exist, skipping all lookups in it. +File '/users/username/projects/replay/axios-src/node_modules/@types/responselike/package.json' does not exist. +File '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', result '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts'. +======== Type reference directive 'responselike' was successfully resolved to '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', primary: true. ======== +======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ======== +Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'. +File '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups. +File '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result. +Resolving real path for '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', result '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts'. +======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ======== +../../../../../lib/lib.d.ts + Default library for target 'es5' +test/module/ts/index.ts + Matched by default include pattern '**/*' +test/module/ts/node_modules/@types/node/index.d.ts + Entry point for implicit type library 'node' +node_modules/@types/responselike/index.d.ts + Entry point for implicit type library 'responselike' +exitCode:: ExitStatus.Success + + +//// [/users/username/projects/replay/axios-src/test/module/ts/index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.z = exports.y = void 0; +exports.y = 10; +exports.z = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../../../../../../../lib/lib.d.ts","./index.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts","../ts-require/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-14419396410-export const y = 10;\nexport const z = 10;","signature":"-7595215440-export declare const y = 10;\nexport declare const z = 10;\n"},{"version":"-7116520553-declare const tsGlobal = 10;\n","affectsGlobalScope":true},"4670743798-/// \nexport const z = 10;\n"],"root":[2],"fileIdsList":[[3],[5]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,4,2,3]},"version":"FakeTSVersion"} + +//// [/users/username/projects/replay/axios-src/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../../../../../../../lib/lib.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "../ts-require/node_modules/@types/node/index.d.ts" + ], + "fileNamesList": [ + [ + "./node_modules/@types/node/index.d.ts" + ], + [ + "../ts-require/node_modules/@types/node/index.d.ts" + ] + ], + "fileInfos": { + "../../../../../../../../lib/lib.d.ts": { + "original": { + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "./index.ts": { + "original": { + "version": "-14419396410-export const y = 10;\nexport const z = 10;", + "signature": "-7595215440-export declare const y = 10;\nexport declare const z = 10;\n" + }, + "version": "-14419396410-export const y = 10;\nexport const z = 10;", + "signature": "-7595215440-export declare const y = 10;\nexport declare const z = 10;\n" + }, + "./node_modules/@types/node/index.d.ts": { + "original": { + "version": "-7116520553-declare const tsGlobal = 10;\n", + "affectsGlobalScope": true + }, + "version": "-7116520553-declare const tsGlobal = 10;\n", + "signature": "-7116520553-declare const tsGlobal = 10;\n", + "affectsGlobalScope": true + }, + "../../../node_modules/@types/responselike/index.d.ts": { + "version": "4670743798-/// \nexport const z = 10;\n", + "signature": "4670743798-/// \nexport const z = 10;\n" + } + }, + "root": [ + [ + 2, + "./index.ts" + ] + ], + "referencedMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "./node_modules/@types/node/index.d.ts" + ] + }, + "exportedModulesMap": { + "../../../node_modules/@types/responselike/index.d.ts": [ + "../ts-require/node_modules/@types/node/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../../../../../../../../lib/lib.d.ts", + "../../../node_modules/@types/responselike/index.d.ts", + "./index.ts", + "./node_modules/@types/node/index.d.ts" + ] + }, + "version": "FakeTSVersion", + "size": 1182 +} + diff --git a/tests/baselines/reference/tsserver/resolutionCache/not-sharing-across-references-because-typeRoots-are-not-specified-and-config-directories-are-different.js b/tests/baselines/reference/tsserver/resolutionCache/not-sharing-across-references-because-typeRoots-are-not-specified-and-config-directories-are-different.js new file mode 100644 index 00000000000..b07eecf34be --- /dev/null +++ b/tests/baselines/reference/tsserver/resolutionCache/not-sharing-across-references-because-typeRoots-are-not-specified-and-config-directories-are-different.js @@ -0,0 +1,184 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/a/lib/typesMap.json" doesn't exist +Before request +//// [/users/username/projects/node_modules/moduleX/index.d.ts] +export const x = 10; + +//// [/users/username/projects/common/tsconfig.json] +{"compilerOptions":{"composite":true,"traceResolution":true}} + +//// [/users/username/projects/common/moduleA.ts] +export const a = 10; + +//// [/users/username/projects/common/moduleB.ts] +import { x } from "moduleX"; +export const b = x; + + +//// [/users/username/projects/app/tsconfig.json] +{"compilerOptions":{"composite":true,"traceResolution":true},"references":[{"path":"../common"}]} + +//// [/users/username/projects/app/appA.ts] +import { x } from "moduleX"; +export const y = x; + + +//// [/users/username/projects/app/appB.ts] +import { x } from "../common/moduleB"; +export const y = x; + + + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/users/username/projects/app/appB.ts" + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] Search path: /users/username/projects/app +Info seq [hh:mm:ss:mss] For info: /users/username/projects/app/appB.ts :: Config file name: /users/username/projects/app/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /users/username/projects/app/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/app/tsconfig.json 2000 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] Config: /users/username/projects/app/tsconfig.json : { + "rootNames": [ + "/users/username/projects/app/appA.ts", + "/users/username/projects/app/appB.ts" + ], + "options": { + "composite": true, + "traceResolution": true, + "configFilePath": "/users/username/projects/app/tsconfig.json" + }, + "projectReferences": [ + { + "path": "/users/username/projects/common", + "originalPath": "../common" + } + ] +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app 1 undefined Config: /users/username/projects/app/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app 1 undefined Config: /users/username/projects/app/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/app/appA.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /users/username/projects/app/tsconfig.json +Info seq [hh:mm:ss:mss] Config: /users/username/projects/common/tsconfig.json : { + "rootNames": [ + "/users/username/projects/common/moduleA.ts", + "/users/username/projects/common/moduleB.ts" + ], + "options": { + "composite": true, + "traceResolution": true, + "configFilePath": "/users/username/projects/common/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/common/tsconfig.json 2000 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/common 1 undefined Config: /users/username/projects/common/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/common 1 undefined Config: /users/username/projects/common/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] ======== Resolving module 'moduleX' from '/users/username/projects/app/appA.ts'. ======== +Info seq [hh:mm:ss:mss] Module resolution kind is not specified, using 'Node10'. +Info seq [hh:mm:ss:mss] Loading module 'moduleX' from 'node_modules' folder, target file types: TypeScript, Declaration. +Info seq [hh:mm:ss:mss] Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Info seq [hh:mm:ss:mss] Directory '/users/username/projects/app/node_modules' does not exist, skipping all lookups in it. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX/package.json' does not exist. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX.ts' does not exist. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX.tsx' does not exist. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX.d.ts' does not exist. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX/index.ts' does not exist. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX/index.tsx' does not exist. +Info seq [hh:mm:ss:mss] File '/users/username/projects/node_modules/moduleX/index.d.ts' exists - use it as a name resolution result. +Info seq [hh:mm:ss:mss] Resolving real path for '/users/username/projects/node_modules/moduleX/index.d.ts', result '/users/username/projects/node_modules/moduleX/index.d.ts'. +Info seq [hh:mm:ss:mss] ======== Module name 'moduleX' was successfully resolved to '/users/username/projects/node_modules/moduleX/index.d.ts'. ======== +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] ======== Resolving module '../common/moduleB' from '/users/username/projects/app/appB.ts'. ======== +Info seq [hh:mm:ss:mss] Module resolution kind is not specified, using 'Node10'. +Info seq [hh:mm:ss:mss] Loading module as file / folder, candidate module location '/users/username/projects/common/moduleB', target file types: TypeScript, Declaration. +Info seq [hh:mm:ss:mss] File '/users/username/projects/common/moduleB.ts' exists - use it as a name resolution result. +Info seq [hh:mm:ss:mss] ======== Module name '../common/moduleB' was successfully resolved to '/users/username/projects/common/moduleB.ts'. ======== +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/common/moduleB.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] ======== Resolving module 'moduleX' from '/users/username/projects/common/moduleB.ts'. ======== +Info seq [hh:mm:ss:mss] Using compiler options of project reference redirect '/users/username/projects/common/tsconfig.json'. +Info seq [hh:mm:ss:mss] Module resolution kind is not specified, using 'Node10'. +Info seq [hh:mm:ss:mss] Loading module 'moduleX' from 'node_modules' folder, target file types: TypeScript, Declaration. +Info seq [hh:mm:ss:mss] Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Info seq [hh:mm:ss:mss] Directory '/users/username/projects/common/node_modules' does not exist, skipping all lookups in it. +Info seq [hh:mm:ss:mss] Resolution for module 'moduleX' was found in cache from location '/users/username/projects'. +Info seq [hh:mm:ss:mss] ======== Module name 'moduleX' was successfully resolved to '/users/username/projects/node_modules/moduleX/index.d.ts'. ======== +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/common/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/common/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Missing file +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /users/username/projects/app/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/users/username/projects/app/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (4) + /users/username/projects/node_modules/moduleX/index.d.ts Text-1 "export const x = 10;" + /users/username/projects/app/appA.ts Text-1 "import { x } from \"moduleX\";\nexport const y = x;\n" + /users/username/projects/common/moduleB.ts Text-1 "import { x } from \"moduleX\";\nexport const b = x;\n" + /users/username/projects/app/appB.ts SVC-1-0 "import { x } from \"../common/moduleB\";\nexport const y = x;\n" + + + ../node_modules/moduleX/index.d.ts + Imported via "moduleX" from file 'appA.ts' + Imported via "moduleX" from file '../common/moduleB.ts' + appA.ts + Matched by default include pattern '**/*' + ../common/moduleB.ts + Imported via "../common/moduleB" from file 'appB.ts' + appB.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Search path: /users/username/projects/app +Info seq [hh:mm:ss:mss] For info: /users/username/projects/app/tsconfig.json :: No config files found. +Info seq [hh:mm:ss:mss] Project '/users/username/projects/app/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (4) + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Open files: +Info seq [hh:mm:ss:mss] FileName: /users/username/projects/app/appB.ts ProjectRootPath: undefined +Info seq [hh:mm:ss:mss] Projects: /users/username/projects/app/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"pollingInterval":500} +/users/username/projects/app/node_modules: *new* + {"pollingInterval":500} +/users/username/projects/app/node_modules/@types: *new* + {"pollingInterval":500} +/users/username/projects/common/node_modules: *new* + {"pollingInterval":500} +/users/username/projects/node_modules/@types: *new* + {"pollingInterval":500} + +FsWatches:: +/users/username/projects/app/appa.ts: *new* + {} +/users/username/projects/app/tsconfig.json: *new* + {} +/users/username/projects/common/moduleb.ts: *new* + {} +/users/username/projects/common/tsconfig.json: *new* + {} + +FsWatchesRecursive:: +/users/username/projects/app: *new* + {} +/users/username/projects/common: *new* + {} +/users/username/projects/node_modules: *new* + {} diff --git a/tests/baselines/reference/tsserver/resolutionCache/sharing-across-references.js b/tests/baselines/reference/tsserver/resolutionCache/sharing-across-references.js index b07eecf34be..e18f6cacc69 100644 --- a/tests/baselines/reference/tsserver/resolutionCache/sharing-across-references.js +++ b/tests/baselines/reference/tsserver/resolutionCache/sharing-across-references.js @@ -5,7 +5,7 @@ Before request export const x = 10; //// [/users/username/projects/common/tsconfig.json] -{"compilerOptions":{"composite":true,"traceResolution":true}} +{"compilerOptions":{"composite":true,"traceResolution":true,"typeRoots":[]}} //// [/users/username/projects/common/moduleA.ts] export const a = 10; @@ -16,7 +16,7 @@ export const b = x; //// [/users/username/projects/app/tsconfig.json] -{"compilerOptions":{"composite":true,"traceResolution":true},"references":[{"path":"../common"}]} +{"compilerOptions":{"composite":true,"traceResolution":true,"typeRoots":[]},"references":[{"path":"../common"}]} //// [/users/username/projects/app/appA.ts] import { x } from "moduleX"; @@ -50,6 +50,7 @@ Info seq [hh:mm:ss:mss] Config: /users/username/projects/app/tsconfig.json : { "options": { "composite": true, "traceResolution": true, + "typeRoots": [], "configFilePath": "/users/username/projects/app/tsconfig.json" }, "projectReferences": [ @@ -71,6 +72,7 @@ Info seq [hh:mm:ss:mss] Config: /users/username/projects/common/tsconfig.json : "options": { "composite": true, "traceResolution": true, + "typeRoots": [], "configFilePath": "/users/username/projects/common/tsconfig.json" } } @@ -114,10 +116,6 @@ Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /us Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/common/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/common/node_modules 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Failed Lookup Locations Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Missing file -Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots -Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/app/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots -Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots -Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /users/username/projects/app/tsconfig.json WatchType: Type roots Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /users/username/projects/app/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms Info seq [hh:mm:ss:mss] Project '/users/username/projects/app/tsconfig.json' (Configured) Info seq [hh:mm:ss:mss] Files (4) @@ -158,12 +156,8 @@ PolledWatches:: {"pollingInterval":500} /users/username/projects/app/node_modules: *new* {"pollingInterval":500} -/users/username/projects/app/node_modules/@types: *new* - {"pollingInterval":500} /users/username/projects/common/node_modules: *new* {"pollingInterval":500} -/users/username/projects/node_modules/@types: *new* - {"pollingInterval":500} FsWatches:: /users/username/projects/app/appa.ts: *new* diff --git a/tests/baselines/reference/tsserver/typeReferenceDirectives/typeReferenceDirective-of-shared-auto-type-file-in-two-projects-with-same-options.js b/tests/baselines/reference/tsserver/typeReferenceDirectives/typeReferenceDirective-of-shared-auto-type-file-in-two-projects-with-same-options.js new file mode 100644 index 00000000000..201bf1f3668 --- /dev/null +++ b/tests/baselines/reference/tsserver/typeReferenceDirectives/typeReferenceDirective-of-shared-auto-type-file-in-two-projects-with-same-options.js @@ -0,0 +1,355 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/a/lib/typesMap.json" doesn't exist +Before request +//// [/users/username/projects/replay/axios-src/test/module/ts-require/index.js] +export const a = 10; + + + +//// [/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts] +export const x = 10; + + +//// [/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts] +/// +export const z = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/index.js] +export const y = 10; + + +//// [/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts] +export const x = 10; + + + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/users/username/projects/replay/axios-src/test/module/ts-require/index.js" + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] Search path: /users/username/projects/replay/axios-src/test/module/ts-require +Info seq [hh:mm:ss:mss] For info: /users/username/projects/replay/axios-src/test/module/ts-require/index.js :: No config files found. +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /dev/null/inferredProject1* +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /dev/null/inferredProject1* WatchType: Missing file +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /dev/null/inferredProject1* Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) +Info seq [hh:mm:ss:mss] Files (3) + /users/username/projects/replay/axios-src/test/module/ts-require/index.js SVC-1-0 "export const a = 10;\n\n" + /users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "export const x = 10;\n" + /users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts Text-1 "/// \nexport const z = 10;\n" + + + index.js + Root file specified for compilation + node_modules/@types/node/index.d.ts + Entry point for implicit type library 'node' + ../../../node_modules/@types/responselike/index.d.ts + Entry point for implicit type library 'responselike' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) +Info seq [hh:mm:ss:mss] Files (3) + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Open files: +Info seq [hh:mm:ss:mss] FileName: /users/username/projects/replay/axios-src/test/module/ts-require/index.js ProjectRootPath: undefined +Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1* +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"pollingInterval":500} +/users/username/projects/node_modules/@types: *new* + {"pollingInterval":500} +/users/username/projects/replay/axios-src/jsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/jsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/jsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/node_modules: *new* + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/module/node_modules/@types: *new* + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/module/ts-require/jsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/tsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/node_modules: *new* + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/node_modules/@types: *new* + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/tsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/tsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/jsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/node_modules/@types: *new* + {"pollingInterval":500} +/users/username/projects/replay/tsconfig.json: *new* + {"pollingInterval":2000} + +FsWatchesRecursive:: +/users/username/projects/replay/axios-src/node_modules: *new* + {} +/users/username/projects/replay/axios-src/node_modules/@types: *new* + {} +/users/username/projects/replay/axios-src/test/module/ts-require/node_modules: *new* + {} +/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types: *new* + {} + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "changedFiles": [ + { + "fileName": "/users/username/projects/replay/axios-src/test/module/ts-require/index.js", + "textChanges": [ + { + "newText": "//comment", + "start": { + "line": 2, + "offset": 1 + }, + "end": { + "line": 2, + "offset": 1 + } + } + ] + } + ] + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/users/username/projects/replay/axios-src/test/module/ts/index.js" + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] Search path: /users/username/projects/replay/axios-src/test/module/ts +Info seq [hh:mm:ss:mss] For info: /users/username/projects/replay/axios-src/test/module/ts/index.js :: No config files found. +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /dev/null/inferredProject2* +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined Project: /dev/null/inferredProject2* WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /dev/null/inferredProject2* WatchType: Missing file +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /dev/null/inferredProject2* Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject2*' (Inferred) +Info seq [hh:mm:ss:mss] Files (3) + /users/username/projects/replay/axios-src/test/module/ts/index.js SVC-1-0 "export const y = 10;\n" + /users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts Text-1 "export const x = 10;\n" + /users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts Text-1 "/// \nexport const z = 10;\n" + + + index.js + Root file specified for compilation + node_modules/@types/node/index.d.ts + Entry point for implicit type library 'node' + ../../../node_modules/@types/responselike/index.d.ts + Entry point for implicit type library 'responselike' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) +Info seq [hh:mm:ss:mss] Files (3) + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject2*' (Inferred) +Info seq [hh:mm:ss:mss] Files (3) + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Open files: +Info seq [hh:mm:ss:mss] FileName: /users/username/projects/replay/axios-src/test/module/ts-require/index.js ProjectRootPath: undefined +Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1* +Info seq [hh:mm:ss:mss] FileName: /users/username/projects/replay/axios-src/test/module/ts/index.js ProjectRootPath: undefined +Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject2* +Info seq [hh:mm:ss:mss] response: + { + "responseRequired": false + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"pollingInterval":500} +/users/username/projects/node_modules/@types: + {"pollingInterval":500} +/users/username/projects/replay/axios-src/jsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/jsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/jsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/node_modules: + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/module/node_modules/@types: + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/module/ts-require/jsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/ts-require/tsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/ts/jsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/ts/tsconfig.json: *new* + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/module/tsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/test/node_modules: + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/node_modules/@types: + {"pollingInterval":500} +/users/username/projects/replay/axios-src/test/tsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/axios-src/tsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/jsconfig.json: + {"pollingInterval":2000} +/users/username/projects/replay/node_modules/@types: + {"pollingInterval":500} +/users/username/projects/replay/tsconfig.json: + {"pollingInterval":2000} + +FsWatchesRecursive:: +/users/username/projects/replay/axios-src/node_modules: + {} +/users/username/projects/replay/axios-src/node_modules/@types: + {} +/users/username/projects/replay/axios-src/test/module/ts-require/node_modules: + {} +/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types: + {} +/users/username/projects/replay/axios-src/test/module/ts/node_modules: *new* + {} +/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types: *new* + {} + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "navto", + "arguments": { + "searchValue": "a", + "maxResultCount": 256 + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /dev/null/inferredProject1* +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /dev/null/inferredProject1* Version: 2 structureChanged: false structureIsReused:: Completely Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) +Info seq [hh:mm:ss:mss] Files (3) + /users/username/projects/replay/axios-src/test/module/ts-require/index.js SVC-1-1 "export const a = 10;\n//comment\n" + /users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "export const x = 10;\n" + /users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts Text-1 "/// \nexport const z = 10;\n" + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "name": "a", + "kind": "const", + "kindModifiers": "export", + "isCaseSensitive": true, + "matchKind": "exact", + "file": "/users/username/projects/replay/axios-src/test/module/ts-require/index.js", + "start": { + "line": 1, + "offset": 14 + }, + "end": { + "line": 1, + "offset": 20 + } + } + ], + "responseRequired": true + } +After request