Skip to content

Commit c623b07

Browse files
authored
API: cache SourceFile text to heavily improve performance (#4414)
1 parent cccc2ee commit c623b07

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

  • _packages/native-preview/src/api/node

_packages/native-preview/src/api/node/node.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export class RemoteSourceFile extends RemoteNode implements SourceFileInfo {
4545
readonly _offsetExtendedData: number;
4646
readonly _offsetStructuredData: number;
4747
readonly _decoder: TextDecoder;
48+
private _cachedText: string | undefined;
4849

4950
constructor(data: Uint8Array, decoder: TextDecoder) {
5051
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
@@ -198,6 +199,13 @@ export class RemoteSourceFile extends RemoteNode implements SourceFileInfo {
198199
get isDeclarationFile(): boolean {
199200
return (this.flags & NodeFlags.Ambient) !== 0;
200201
}
202+
203+
get text(): string {
204+
if (this._cachedText !== undefined) return this._cachedText;
205+
const text = super.text!;
206+
this._cachedText = text;
207+
return text;
208+
}
201209
}
202210

203211
/**

0 commit comments

Comments
 (0)