Skip to content

Commit c9479f7

Browse files
committed
Remove the specialized type UnresolvedImportsMap which is just a redirection and helps only in test only
1 parent b0fb73c commit c9479f7

File tree

3 files changed

+9
-51
lines changed

3 files changed

+9
-51
lines changed

src/harness/unittests/typingsInstaller.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,7 @@ namespace ts.projectSystem {
999999
proj.updateGraph();
10001000

10011001
assert.deepEqual(
1002-
proj.getCachedUnresolvedImportsPerFile_TestOnly().get(<Path>f1.path),
1002+
proj.cachedUnresolvedImportsPerFile.get(<Path>f1.path),
10031003
["foo", "foo", "foo", "@bar/router", "@bar/common", "@bar/common"]
10041004
);
10051005

@@ -1029,7 +1029,7 @@ namespace ts.projectSystem {
10291029
const projectService = session.getProjectService();
10301030
checkNumberOfProjects(projectService, { inferredProjects: 1 });
10311031
const proj = projectService.inferredProjects[0];
1032-
const version1 = proj.getCachedUnresolvedImportsPerFile_TestOnly().getVersion();
1032+
const version1 = proj.lastCachedUnresolvedImportsList;
10331033

10341034
// make a change that should not affect the structure of the program
10351035
const changeRequest: server.protocol.ChangeRequest = {
@@ -1047,7 +1047,7 @@ namespace ts.projectSystem {
10471047
};
10481048
session.executeCommand(changeRequest);
10491049
host.checkTimeoutQueueLengthAndRun(2); // This enqueues the updategraph and refresh inferred projects
1050-
const version2 = proj.getCachedUnresolvedImportsPerFile_TestOnly().getVersion();
1050+
const version2 = proj.lastCachedUnresolvedImportsList;
10511051
assert.notEqual(version1, version2, "set of unresolved imports should change");
10521052
});
10531053

src/server/project.ts

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -55,34 +55,6 @@ namespace ts.server {
5555
projectErrors: ReadonlyArray<Diagnostic>;
5656
}
5757

58-
export class UnresolvedImportsMap {
59-
readonly perFileMap = createMap<ReadonlyArray<string>>();
60-
private version = 0;
61-
62-
public clear() {
63-
this.perFileMap.clear();
64-
this.version = 0;
65-
}
66-
67-
public getVersion() {
68-
return this.version;
69-
}
70-
71-
public remove(path: Path) {
72-
this.perFileMap.delete(path);
73-
this.version++;
74-
}
75-
76-
public get(path: Path) {
77-
return this.perFileMap.get(path);
78-
}
79-
80-
public set(path: Path, value: ReadonlyArray<string>) {
81-
this.perFileMap.set(path, value);
82-
this.version++;
83-
}
84-
}
85-
8658
export interface PluginCreateInfo {
8759
project: Project;
8860
languageService: LanguageService;
@@ -116,8 +88,10 @@ namespace ts.server {
11688
private missingFilesMap: Map<FileWatcher>;
11789
private plugins: PluginModule[] = [];
11890

119-
private cachedUnresolvedImportsPerFile = new UnresolvedImportsMap();
120-
private lastCachedUnresolvedImportsList: SortedReadonlyArray<string>;
91+
/*@internal*/
92+
cachedUnresolvedImportsPerFile = createMap<ReadonlyArray<string>>();
93+
/*@internal*/
94+
lastCachedUnresolvedImportsList: SortedReadonlyArray<string>;
12195

12296
private lastFileExceededProgramSize: string | undefined;
12397

@@ -181,10 +155,6 @@ namespace ts.server {
181155
return hasOneOrMoreJsAndNoTsFiles(this);
182156
}
183157

184-
public getCachedUnresolvedImportsPerFile_TestOnly() {
185-
return this.cachedUnresolvedImportsPerFile;
186-
}
187-
188158
public static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void): {} {
189159
const resolvedPath = normalizeSlashes(host.resolvePath(combinePaths(initialDir, "node_modules")));
190160
log(`Loading ${moduleName} from ${initialDir} (resolved to ${resolvedPath})`);
@@ -742,7 +712,7 @@ namespace ts.server {
742712
else {
743713
this.resolutionCache.invalidateResolutionOfFile(info.path);
744714
}
745-
this.cachedUnresolvedImportsPerFile.remove(info.path);
715+
this.cachedUnresolvedImportsPerFile.delete(info.path);
746716

747717
if (detachFromProject) {
748718
info.detachFromProject(this);
@@ -812,7 +782,7 @@ namespace ts.server {
812782

813783
for (const file of changedFiles) {
814784
// delete cached information for changed files
815-
this.cachedUnresolvedImportsPerFile.remove(file);
785+
this.cachedUnresolvedImportsPerFile.delete(file);
816786
}
817787

818788
// update builder only if language service is enabled

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7611,15 +7611,6 @@ declare namespace ts.server {
76117611
}
76127612
function allRootFilesAreJsOrDts(project: Project): boolean;
76137613
function allFilesAreJsOrDts(project: Project): boolean;
7614-
class UnresolvedImportsMap {
7615-
readonly perFileMap: Map<ReadonlyArray<string>>;
7616-
private version;
7617-
clear(): void;
7618-
getVersion(): number;
7619-
remove(path: Path): void;
7620-
get(path: Path): ReadonlyArray<string>;
7621-
set(path: Path, value: ReadonlyArray<string>): void;
7622-
}
76237614
interface PluginCreateInfo {
76247615
project: Project;
76257616
languageService: LanguageService;
@@ -7652,8 +7643,6 @@ declare namespace ts.server {
76527643
private externalFiles;
76537644
private missingFilesMap;
76547645
private plugins;
7655-
private cachedUnresolvedImportsPerFile;
7656-
private lastCachedUnresolvedImportsList;
76577646
private lastFileExceededProgramSize;
76587647
protected languageService: LanguageService;
76597648
languageServiceEnabled: boolean;
@@ -7688,7 +7677,6 @@ declare namespace ts.server {
76887677
private readonly cancellationToken;
76897678
isNonTsProject(): boolean;
76907679
isJsOnlyProject(): boolean;
7691-
getCachedUnresolvedImportsPerFile_TestOnly(): UnresolvedImportsMap;
76927680
static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void): {};
76937681
isKnownTypesPackageName(name: string): boolean;
76947682
installPackage(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>;

0 commit comments

Comments
 (0)