From 1f0ff41aa1bc3b7c5330b2f5fe22e24bf578a6b2 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 1 Apr 2020 15:33:27 -0700 Subject: [PATCH] fix(typescript-estree): add support for TS3.9 extra file extensions (#1833) --- .../src/create-program/WatchCompilerHostOfConfigFile.ts | 1 + .../src/create-program/createWatchProgram.ts | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/packages/typescript-estree/src/create-program/WatchCompilerHostOfConfigFile.ts b/packages/typescript-estree/src/create-program/WatchCompilerHostOfConfigFile.ts index 471a6d6b6fe..565f58417c8 100644 --- a/packages/typescript-estree/src/create-program/WatchCompilerHostOfConfigFile.ts +++ b/packages/typescript-estree/src/create-program/WatchCompilerHostOfConfigFile.ts @@ -32,6 +32,7 @@ interface WatchCompilerHostOfConfigFile onCachedDirectoryStructureHostCreate( host: CachedDirectoryStructureHost, ): void; + extraFileExtensions?: readonly ts.FileExtensionInfo[]; } export { WatchCompilerHostOfConfigFile }; diff --git a/packages/typescript-estree/src/create-program/createWatchProgram.ts b/packages/typescript-estree/src/create-program/createWatchProgram.ts index 682e1d7c731..cf31a5c383d 100644 --- a/packages/typescript-estree/src/create-program/createWatchProgram.ts +++ b/packages/typescript-estree/src/create-program/createWatchProgram.ts @@ -314,6 +314,14 @@ function createWatchProgram( ); oldOnDirectoryStructureHostCreate(host); }; + // This works only on 3.9 + watchCompilerHost.extraFileExtensions = extra.extraFileExtensions.map( + extension => ({ + extension, + isMixedContent: true, + scriptKind: ts.ScriptKind.Deferred, + }), + ); watchCompilerHost.trace = log; // Since we don't want to asynchronously update program we want to disable timeout methods