Skip to content

Commit 9a9f45f

Browse files
authored
use createHash from ServerHost instead of explicit require (microsoft#12043)
* use createHash from ServerHost instead of explicit require * added missing method in ServerHost stub
1 parent 2282477 commit 9a9f45f

File tree

6 files changed

+15
-14
lines changed

6 files changed

+15
-14
lines changed

src/harness/harnessLanguageService.ts

+4
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,10 @@ namespace Harness.LanguageService {
720720
clearImmediate(timeoutId: any): void {
721721
clearImmediate(timeoutId);
722722
}
723+
724+
createHash(s: string) {
725+
return s;
726+
}
723727
}
724728

725729
export class ServerLanguageServiceAdapter implements LanguageServiceAdapter {

src/harness/unittests/cachingInServerLSHost.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ namespace ts {
4343
setTimeout,
4444
clearTimeout,
4545
setImmediate: typeof setImmediate !== "undefined" ? setImmediate : action => setTimeout(action, 0),
46-
clearImmediate: typeof clearImmediate !== "undefined" ? clearImmediate : clearTimeout
46+
clearImmediate: typeof clearImmediate !== "undefined" ? clearImmediate : clearTimeout,
47+
createHash: s => s
4748
};
4849
}
4950

src/harness/unittests/session.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ namespace ts.server {
2424
setTimeout() { return 0; },
2525
clearTimeout: noop,
2626
setImmediate: () => 0,
27-
clearImmediate: noop
27+
clearImmediate: noop,
28+
createHash: s => s
2829
};
2930
const nullCancellationToken: HostCancellationToken = { isCancellationRequested: () => false };
3031
const mockLogger: Logger = {

src/harness/unittests/tsserverProjectSystem.ts

+4
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,10 @@ namespace ts.projectSystem {
434434
};
435435
}
436436

437+
createHash(s: string): string {
438+
return s;
439+
}
440+
437441
triggerDirectoryWatcherCallback(directoryName: string, fileName: string): void {
438442
const path = this.toPath(directoryName);
439443
const callbacks = this.watchedDirectories[path];

src/server/builder.ts

+1-12
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,6 @@
55

66
namespace ts.server {
77

8-
interface Hash {
9-
update(data: any, input_encoding?: string): Hash;
10-
digest(encoding: string): any;
11-
}
12-
13-
const crypto: {
14-
createHash(algorithm: string): Hash
15-
} = require("crypto");
16-
178
export function shouldEmitFile(scriptInfo: ScriptInfo) {
189
return !scriptInfo.hasMixedContent;
1910
}
@@ -49,9 +40,7 @@ namespace ts.server {
4940
}
5041

5142
private computeHash(text: string): string {
52-
return crypto.createHash("md5")
53-
.update(text)
54-
.digest("base64");
43+
return this.project.projectService.host.createHash(text);
5544
}
5645

5746
private getSourceFile(): SourceFile {

src/server/editorServices.ts

+2
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ namespace ts.server {
250250
readonly typingsInstaller: ITypingsInstaller = nullTypingsInstaller,
251251
private readonly eventHandler?: ProjectServiceEventHandler) {
252252

253+
Debug.assert(!!host.createHash, "'ServerHost.createHash' is required for ProjectService");
254+
253255
this.toCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames);
254256
this.directoryWatchers = new DirectoryWatchers(this);
255257
this.throttledOperations = new ThrottledOperations(host);

0 commit comments

Comments
 (0)