mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-09 00:59:02 +02:00
Merge pull request #21097 from overleaf/ls-scripts-to-esm-1
Migrate scripts folder to esm 1/x GitOrigin-RevId: 4a4bc9a161f144fdb40ce3f2a0a9313b36c6df81
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import minimist from 'minimist'
|
||||
import { waitForDb } from '../app/src/infrastructure/mongodb.js'
|
||||
import ChatApiHandler from '../app/src/Features/Chat/ChatApiHandler.js'
|
||||
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
|
||||
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
|
||||
import { promiseMapWithLimit } from '@overleaf/promise-utils'
|
||||
|
||||
const WRITE_CONCURRENCY = parseInt(process.env.WRITE_CONCURRENCY, 10) || 10
|
||||
|
||||
/**
|
||||
* Remove doc comment ranges that are "orphaned" as they do have matching chat
|
||||
* threads. This can happen when adding comments and the HTTP request fails, but
|
||||
* the ShareJS op succeeded (eventually). See https://github.com/overleaf/internal/issues/3425
|
||||
* for more detail.
|
||||
*/
|
||||
async function main() {
|
||||
await waitForDb()
|
||||
|
||||
const argv = minimist(process.argv.slice(2))
|
||||
const { projectId, docId } = argv
|
||||
|
||||
const threads = await ChatApiHandler.promises.getThreads(projectId)
|
||||
const threadIds = Object.keys(threads)
|
||||
|
||||
const doc = await DocstoreManager.promises.getDoc(projectId, docId)
|
||||
const comments = doc.ranges.comments
|
||||
|
||||
const orphanedCommentIds = comments.filter(comment => {
|
||||
const commentThreadId = comment.op.t
|
||||
return !threadIds.includes(commentThreadId)
|
||||
})
|
||||
|
||||
await promiseMapWithLimit(
|
||||
WRITE_CONCURRENCY,
|
||||
orphanedCommentIds,
|
||||
async comment => {
|
||||
await DocumentUpdaterHandler.promises.deleteThread(
|
||||
projectId,
|
||||
docId,
|
||||
comment.op.t
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
await DocumentUpdaterHandler.promises.flushDocToMongo(projectId, docId)
|
||||
}
|
||||
|
||||
try {
|
||||
await main()
|
||||
console.log('Done.')
|
||||
process.exit(0)
|
||||
} catch (error) {
|
||||
console.error({ error })
|
||||
process.exit(1)
|
||||
}
|
||||
Reference in New Issue
Block a user