@@ -55,25 +55,22 @@ type StoredExport = ReadyExport | InProgressExport;
5555 * JIRA: https://jira.mongodb.org/browse/MCP-104 */
5656type AvailableExport = Pick < StoredExport , "exportName" | "exportURI" | "exportPath" > ;
5757
58- export type SessionExportsManagerConfig = Pick <
59- UserConfig ,
60- "exportsPath" | "exportTimeoutMs" | "exportCleanupIntervalMs"
61- > ;
58+ export type ExportsManagerConfig = Pick < UserConfig , "exportsPath" | "exportTimeoutMs" | "exportCleanupIntervalMs" > ;
6259
63- type SessionExportsManagerEvents = {
60+ type ExportsManagerEvents = {
6461 "export-expired" : [ string ] ;
6562 "export-available" : [ string ] ;
6663} ;
6764
68- export class SessionExportsManager extends EventEmitter < SessionExportsManagerEvents > {
69- private sessionExports : Record < StoredExport [ "exportName" ] , StoredExport > = { } ;
65+ export class ExportsManager extends EventEmitter < ExportsManagerEvents > {
66+ private storedExports : Record < StoredExport [ "exportName" ] , StoredExport > = { } ;
7067 private exportsCleanupInProgress : boolean = false ;
7168 private exportsCleanupInterval : NodeJS . Timeout ;
7269 private exportsDirectoryPath : string ;
7370
7471 constructor (
7572 sessionId : string ,
76- private readonly config : SessionExportsManagerConfig ,
73+ private readonly config : ExportsManagerConfig ,
7774 private readonly logger : LoggerBase
7875 ) {
7976 super ( ) ;
@@ -85,11 +82,11 @@ export class SessionExportsManager extends EventEmitter<SessionExportsManagerEve
8582 }
8683
8784 public get availableExports ( ) : AvailableExport [ ] {
88- return Object . values ( this . sessionExports )
89- . filter ( ( sessionExport ) => {
85+ return Object . values ( this . storedExports )
86+ . filter ( ( storedExport ) => {
9087 return (
91- sessionExport . exportStatus === "ready" &&
92- ! isExportExpired ( sessionExport . exportCreatedAt , this . config . exportTimeoutMs )
88+ storedExport . exportStatus === "ready" &&
89+ ! isExportExpired ( storedExport . exportCreatedAt , this . config . exportTimeoutMs )
9390 ) ;
9491 } )
9592 . map ( ( { exportName, exportURI, exportPath } ) => ( {
@@ -106,7 +103,7 @@ export class SessionExportsManager extends EventEmitter<SessionExportsManagerEve
106103 } catch ( error ) {
107104 this . logger . error ( {
108105 id : LogId . exportCloseError ,
109- context : "Error while closing SessionExportManager " ,
106+ context : "Error while closing ExportsManager " ,
110107 message : error instanceof Error ? error . message : String ( error ) ,
111108 } ) ;
112109 }
@@ -115,7 +112,7 @@ export class SessionExportsManager extends EventEmitter<SessionExportsManagerEve
115112 public async readExport ( exportName : string ) : Promise < string > {
116113 try {
117114 const exportNameWithExtension = validateExportName ( exportName ) ;
118- const exportHandle = this . sessionExports [ exportNameWithExtension ] ;
115+ const exportHandle = this . storedExports [ exportNameWithExtension ] ;
119116 if ( ! exportHandle ) {
120117 throw new Error ( "Requested export has either expired or does not exist!" ) ;
121118 }
@@ -157,7 +154,7 @@ export class SessionExportsManager extends EventEmitter<SessionExportsManagerEve
157154 const exportNameWithExtension = validateExportName ( ensureExtension ( exportName , "json" ) ) ;
158155 const exportURI = `exported-data://${ encodeURIComponent ( exportNameWithExtension ) } ` ;
159156 const exportFilePath = path . join ( this . exportsDirectoryPath , exportNameWithExtension ) ;
160- const inProgressExport : InProgressExport = ( this . sessionExports [ exportNameWithExtension ] = {
157+ const inProgressExport : InProgressExport = ( this . storedExports [ exportNameWithExtension ] = {
161158 exportName : exportNameWithExtension ,
162159 exportPath : exportFilePath ,
163160 exportURI : exportURI ,
@@ -210,10 +207,10 @@ export class SessionExportsManager extends EventEmitter<SessionExportsManagerEve
210207 LogId . exportCreationCleanupError ,
211208 `Error when removing incomplete export ${ inProgressExport . exportName } `
212209 ) ;
213- delete this . sessionExports [ inProgressExport . exportName ] ;
210+ delete this . storedExports [ inProgressExport . exportName ] ;
214211 } finally {
215212 if ( pipeSuccessful ) {
216- this . sessionExports [ inProgressExport . exportName ] = {
213+ this . storedExports [ inProgressExport . exportName ] = {
217214 ...inProgressExport ,
218215 exportCreatedAt : Date . now ( ) ,
219216 exportStatus : "ready" ,
@@ -263,13 +260,13 @@ export class SessionExportsManager extends EventEmitter<SessionExportsManagerEve
263260 }
264261
265262 this . exportsCleanupInProgress = true ;
266- const exportsForCleanup = Object . values ( { ...this . sessionExports } ) . filter (
267- ( sessionExport ) : sessionExport is ReadyExport => sessionExport . exportStatus === "ready"
263+ const exportsForCleanup = Object . values ( { ...this . storedExports } ) . filter (
264+ ( storedExport ) : storedExport is ReadyExport => storedExport . exportStatus === "ready"
268265 ) ;
269266 try {
270267 for ( const { exportPath, exportCreatedAt, exportURI, exportName } of exportsForCleanup ) {
271268 if ( isExportExpired ( exportCreatedAt , this . config . exportTimeoutMs ) ) {
272- delete this . sessionExports [ exportName ] ;
269+ delete this . storedExports [ exportName ] ;
273270 await this . silentlyRemoveExport (
274271 exportPath ,
275272 LogId . exportCleanupError ,
0 commit comments