mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Do not create packagejson imports and auto import provider in partial semantic server mode (#40890)
This commit is contained in:
parent
5ecdcef4ce
commit
fb2f3d4fd4
@ -1633,6 +1633,7 @@ namespace ts.server {
|
||||
|
||||
/*@internal*/
|
||||
getPackageJsonsVisibleToFile(fileName: string, rootDir?: string): readonly PackageJsonInfo[] {
|
||||
if (this.projectService.serverMode !== LanguageServiceMode.Semantic) return emptyArray;
|
||||
return this.projectService.getPackageJsonsVisibleToFile(fileName, rootDir);
|
||||
}
|
||||
|
||||
@ -1680,6 +1681,10 @@ namespace ts.server {
|
||||
if (this.autoImportProviderHost === false) {
|
||||
return undefined;
|
||||
}
|
||||
if (this.projectService.serverMode !== LanguageServiceMode.Semantic) {
|
||||
this.autoImportProviderHost = false;
|
||||
return undefined;
|
||||
}
|
||||
if (this.autoImportProviderHost) {
|
||||
updateProjectIfDirty(this.autoImportProviderHost);
|
||||
if (this.autoImportProviderHost.isEmpty()) {
|
||||
|
||||
@ -172,5 +172,36 @@ function fooB() { }`
|
||||
openFilesForSession([file2], session);
|
||||
checkProjectActualFiles(project, [libFile.path, file2.path, file3.path]);
|
||||
});
|
||||
|
||||
it("should not create autoImportProvider or handle package jsons", () => {
|
||||
const angularFormsDts: File = {
|
||||
path: "/node_modules/@angular/forms/forms.d.ts",
|
||||
content: "export declare class PatternValidator {}",
|
||||
};
|
||||
const angularFormsPackageJson: File = {
|
||||
path: "/node_modules/@angular/forms/package.json",
|
||||
content: `{ "name": "@angular/forms", "typings": "./forms.d.ts" }`,
|
||||
};
|
||||
const tsconfig: File = {
|
||||
path: "/tsconfig.json",
|
||||
content: `{ "compilerOptions": { "module": "commonjs" } }`,
|
||||
};
|
||||
const packageJson: File = {
|
||||
path: "/package.json",
|
||||
content: `{ "dependencies": { "@angular/forms": "*", "@angular/core": "*" } }`
|
||||
};
|
||||
const indexTs: File = {
|
||||
path: "/index.ts",
|
||||
content: ""
|
||||
};
|
||||
const host = createServerHost([angularFormsDts, angularFormsPackageJson, tsconfig, packageJson, indexTs, libFile]);
|
||||
const session = createSession(host, { serverMode: LanguageServiceMode.PartialSemantic, useSingleInferredProject: true });
|
||||
const service = session.getProjectService();
|
||||
openFilesForSession([indexTs], session);
|
||||
const project = service.inferredProjects[0];
|
||||
assert.isFalse(project.autoImportProviderHost);
|
||||
assert.isUndefined(project.getPackageJsonAutoImportProvider());
|
||||
assert.deepEqual(project.getPackageJsonsForAutoImport(), emptyArray);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user