Skip to content

Commit d60608a

Browse files
authored
feat(typescript-service): pick up the writeFile override from the LanguageServiceHost when it is overridden (#3491)
1 parent 242df82 commit d60608a

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@rnx-kit/typescript-service": patch
3+
---
4+
5+
Projects should use the writeFile set in the LanguageServiceHost to write files
6+
if it is overridden.

packages/typescript-service/src/project.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export class Project {
1010
private externalFiles: ExternalFileCache;
1111

1212
private languageService: ts.LanguageService;
13+
private writeFile: (fileName: string, content: string) => void;
1314

1415
constructor(
1516
documentRegistry: ts.DocumentRegistry,
@@ -93,6 +94,8 @@ export class Project {
9394
if (enhanceLanguageServiceHost) {
9495
enhanceLanguageServiceHost(languageServiceHost);
9596
}
97+
// if someone replaces writeFile when they enhance the language service host, use that for writing
98+
this.writeFile = languageServiceHost.writeFile || ts.sys.writeFile;
9699

97100
this.languageService = ts.createLanguageService(
98101
languageServiceHost,
@@ -157,7 +160,7 @@ export class Project {
157160
return false;
158161
}
159162
output.outputFiles.forEach((o) => {
160-
ts.sys.writeFile(o.name, o.text);
163+
this.writeFile(o.name, o.text);
161164
});
162165
return true;
163166
}

0 commit comments

Comments
 (0)