Address more potential this issues

This commit is contained in:
Andrew Casey
2019-10-21 14:01:12 -07:00
parent 6429e4cd36
commit ca31f008a8
4 changed files with 15 additions and 9 deletions

View File

@@ -114,9 +114,9 @@ namespace ts {
fileName,
data,
writeByteOrderMark,
writeFileWorker,
compilerHost.createDirectory || system.createDirectory,
directoryExists);
(f, d, w) => writeFileWorker(f, d, w),
p => (compilerHost.createDirectory || system.createDirectory)(p),
p => directoryExists(p));
performance.mark("afterIOWrite");
performance.measure("I/O Write", "beforeIOWrite", "afterIOWrite");

View File

@@ -533,10 +533,10 @@ namespace ts {
writeFileEnsuringDirectories(
path,
data,
writeBom,
!!writeBom,
(p, d, w) => originalWriteFile.call(sys, p, d, w),
p => sys.createDirectory.call(sys, p),
p => sys.directoryExists.call(sys, p));
p => sys.createDirectory(p),
p => sys.directoryExists(p));
}
/*@internal*/

View File

@@ -3714,8 +3714,8 @@ namespace ts {
export function writeFileEnsuringDirectories(
path: string,
data: string,
writeByteOrderMark: boolean | undefined,
writeFile: (path: string, data: string, writeByteOrderMark?: boolean) => void,
writeByteOrderMark: boolean,
writeFile: (path: string, data: string, writeByteOrderMark: boolean) => void,
createDirectory: (path: string) => void,
directoryExists: (path: string) => boolean): void {

View File

@@ -303,7 +303,13 @@ namespace ts {
// NOTE: If patchWriteFileEnsuringDirectory has been called,
// the host.writeFile will do its own directory creation and
// the ensureDirectoriesExist call will always be redundant.
writeFileEnsuringDirectories(fileName, text, writeByteOrderMark, host.writeFile!, host.createDirectory!, host.directoryExists!);
writeFileEnsuringDirectories(
fileName,
text,
writeByteOrderMark,
(f, w, d) => host.writeFile!(f, w, d),
p => host.createDirectory!(p),
p => host.directoryExists!(p));
performance.mark("afterIOWrite");
performance.measure("I/O Write", "beforeIOWrite", "afterIOWrite");