Files
Verso/services/filestore/test/acceptance/js/FilestoreApp.js
T
Andrew RumbleandCopybot 90cf4b6a0a Merge pull request #29841 from overleaf/ar-convert-filestore-to-esm
[filestore] convert to ES modules

GitOrigin-RevId: 404905973548bb6e437fff66b368e87be8249b73
2025-12-05 09:05:35 +00:00

43 lines
998 B
JavaScript

import ObjectPersistor from '@overleaf/object-persistor'
import Settings from '@overleaf/settings'
import { promisify } from 'node:util'
import App from '../../../app.js'
import FileHandler from '../../../app/js/FileHandler.js'
class FilestoreApp {
async runServer() {
if (!this.server) {
await new Promise((resolve, reject) => {
this.server = App.listen(
Settings.internal.filestore.port,
'127.0.0.1',
err => {
if (err) {
return reject(err)
}
resolve()
}
)
})
}
this.persistor = ObjectPersistor({
...Settings.filestore,
paths: Settings.path,
})
FileHandler._TESTONLYSwapPersistorManager(this.persistor)
}
async stop() {
if (!this.server) return
const closeServer = promisify(this.server.close).bind(this.server)
try {
await closeServer()
} finally {
delete this.server
}
}
}
export default FilestoreApp