[web] Convert some Features files to ES modules (part 2) (#28275)
* Rename files * Rename test files * Convert to ESM GitOrigin-RevId: b0ee442ac8edd4ef3695f93a91ffd9521e6bf259
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { callbackify } from 'node:util'
|
||||
import Path from 'node:path'
|
||||
import ProjectEntityHandler from './ProjectEntityHandler.js'
|
||||
import EditorController from '../Editor/EditorController.js'
|
||||
|
||||
// generate a new name based on the original, with an optional label.
|
||||
// e.g. origname-20210101-122345.tex (default)
|
||||
// origname-restored-20210101-122345.tex (label="restored")
|
||||
function generateRestoredName(docName, label) {
|
||||
const formattedTimestamp = new Date()
|
||||
.toISOString()
|
||||
.replace('T', '-')
|
||||
.replace(/[^0-9-]/g, '')
|
||||
const extension = Path.extname(docName)
|
||||
const basename =
|
||||
Path.basename(docName, extension) + (label ? `-${label}` : '')
|
||||
return `${basename}-${formattedTimestamp}${extension}`
|
||||
}
|
||||
|
||||
async function restoreDeletedDoc(projectId, docId, docName, userId) {
|
||||
const deletedDoc = await ProjectEntityHandler.promises.getDoc(
|
||||
projectId,
|
||||
docId,
|
||||
{ include_deleted: true }
|
||||
)
|
||||
const deletedDocName = generateRestoredName(docName)
|
||||
// Create the doc and emit a websocket message.
|
||||
return await EditorController.promises.addDocWithRanges(
|
||||
projectId,
|
||||
null,
|
||||
`${deletedDocName}`,
|
||||
deletedDoc.lines,
|
||||
deletedDoc.ranges,
|
||||
null,
|
||||
userId
|
||||
)
|
||||
}
|
||||
|
||||
export default {
|
||||
restoreDeletedDoc: callbackify(restoreDeletedDoc),
|
||||
generateRestoredName,
|
||||
promises: {
|
||||
restoreDeletedDoc,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user