mongodb.js 815 B

123456789101112131415161718192021222324252627
  1. import Metrics from '@overleaf/metrics'
  2. import Settings from '@overleaf/settings'
  3. import mongodb from 'mongodb-legacy'
  4. const { MongoClient, ObjectId } = mongodb
  5. /**
  6. * @import { ProjectHistoryFailure } from './mongo-types.ts'
  7. */
  8. export { ObjectId }
  9. export const mongoClient = new MongoClient(
  10. Settings.mongo.url,
  11. Settings.mongo.options
  12. )
  13. const mongoDb = mongoClient.db()
  14. Metrics.mongodb.monitor(mongoClient)
  15. export const db = {
  16. deletedProjects: mongoDb.collection('deletedProjects'),
  17. projects: mongoDb.collection('projects'),
  18. /** @type {mongodb.Collection<ProjectHistoryFailure>} */
  19. projectHistoryFailures: mongoDb.collection('projectHistoryFailures'),
  20. projectHistoryLabels: mongoDb.collection('projectHistoryLabels'),
  21. projectHistorySyncState: mongoDb.collection('projectHistorySyncState'),
  22. }