Skip to content

Commit bf567b8

Browse files
committed
Change getModifiedTime type
1 parent 60986ad commit bf567b8

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

src/compiler/program.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ namespace ts {
6363
interface OutputFingerprint {
6464
hash: string;
6565
byteOrderMark: boolean;
66-
mtime: Date;
66+
mtime: Date | undefined;
6767
}
6868

6969
export function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost {
@@ -128,6 +128,7 @@ namespace ts {
128128
if (fingerprint &&
129129
fingerprint.byteOrderMark === writeByteOrderMark &&
130130
fingerprint.hash === hash &&
131+
fingerprint.mtime !== undefined &&
131132
fingerprint.mtime.getTime() === mtimeBefore.getTime()) {
132133
return;
133134
}

src/compiler/sys.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ namespace ts {
482482
getCurrentDirectory(): string;
483483
getDirectories(path: string): string[];
484484
readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
485-
getModifiedTime?(path: string): Date;
485+
getModifiedTime?(path: string): Date | undefined;
486486
setModifiedTime?(path: string, time: Date): void;
487487
deleteFile?(path: string): void;
488488
/**

src/compiler/tsbuild.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -848,9 +848,14 @@ namespace ts {
848848
const outputs = getAllProjectOutputs(proj);
849849
let priorNewestUpdateTime = minimumDate;
850850
for (const file of outputs) {
851+
851852
if (isDeclarationFile(file)) {
852-
priorNewestUpdateTime = newer(priorNewestUpdateTime, compilerHost.getModifiedTime!(file));
853+
const fileModifiedTime = compilerHost.getModifiedTime!(file);
854+
if (fileModifiedTime !== undefined) {
855+
priorNewestUpdateTime = newer(priorNewestUpdateTime, fileModifiedTime);
856+
}
853857
}
858+
854859
compilerHost.setModifiedTime!(file, now);
855860
}
856861

@@ -1058,7 +1063,7 @@ namespace ts {
10581063
}
10591064

10601065
const inputTime = host.getModifiedTime(inputFile);
1061-
if (inputTime > newestInputFileTime) {
1066+
if (inputTime !== undefined && inputTime > newestInputFileTime) {
10621067
newestInputFileName = inputFile;
10631068
newestInputFileTime = inputTime;
10641069
}
@@ -1090,19 +1095,19 @@ namespace ts {
10901095
}
10911096

10921097
const outputTime = host.getModifiedTime(output);
1093-
if (outputTime < oldestOutputFileTime) {
1098+
if (outputTime !== undefined && outputTime < oldestOutputFileTime) {
10941099
oldestOutputFileTime = outputTime;
10951100
oldestOutputFileName = output;
10961101
}
10971102

10981103
// If an output is older than the newest input, we can stop checking
10991104
// Don't immediately return because we can still be upstream-blocked, which is a higher-priority status
1100-
if (outputTime < newestInputFileTime) {
1105+
if (outputTime !== undefined && outputTime < newestInputFileTime) {
11011106
isOutOfDateWithInputs = true;
11021107
break;
11031108
}
11041109

1105-
if (outputTime > newestOutputFileTime) {
1110+
if (outputTime !== undefined && outputTime > newestOutputFileTime) {
11061111
newestOutputFileTime = outputTime;
11071112
newestOutputFileName = output;
11081113
}
@@ -1117,7 +1122,10 @@ namespace ts {
11171122
newestDeclarationFileContentChangedTime = newer(unchangedTime, newestDeclarationFileContentChangedTime);
11181123
}
11191124
else {
1120-
newestDeclarationFileContentChangedTime = newer(newestDeclarationFileContentChangedTime, host.getModifiedTime(output));
1125+
const outputModifiedTime = host.getModifiedTime(output);
1126+
if (outputModifiedTime !== undefined) {
1127+
newestDeclarationFileContentChangedTime = newer(newestDeclarationFileContentChangedTime, outputModifiedTime);
1128+
}
11211129
}
11221130
}
11231131
}

src/compiler/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4682,7 +4682,7 @@ namespace ts {
46824682

46834683
export interface UpToDateHost {
46844684
fileExists(fileName: string): boolean;
4685-
getModifiedTime(fileName: string): Date;
4685+
getModifiedTime(fileName: string): Date | undefined;
46864686
getUnchangedTime?(fileName: string): Date | undefined;
46874687
getLastStatus?(fileName: string): UpToDateStatus | undefined;
46884688
setLastStatus?(fileName: string, status: UpToDateStatus): void;
@@ -4820,7 +4820,7 @@ namespace ts {
48204820
/* @internal */ hasChangedAutomaticTypeDirectiveNames?: boolean;
48214821
createHash?(data: string): string;
48224822

4823-
getModifiedTime?(fileName: string): Date;
4823+
getModifiedTime?(fileName: string): Date | undefined;
48244824
setModifiedTime?(fileName: string, date: Date): void;
48254825
deleteFile?(fileName: string): void;
48264826
}

src/tsserver/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ namespace ts.server {
676676
fs.stat(watchedFile.fileName, (err, stats) => {
677677
if (err) {
678678
if (err.code === "ENOENT") {
679-
if (watchedFile.mtime.getTime() !== 0) {
679+
if (watchedFile.mtime !== undefined && watchedFile.mtime.getTime() !== 0) {
680680
watchedFile.mtime = missingFileModifiedTime;
681681
watchedFile.callback(watchedFile.fileName, FileWatcherEventKind.Deleted);
682682
}

0 commit comments

Comments
 (0)