Replace promisifyAll with individual promisify calls in web service (#30931)
* Initial plan * Replace promisifyAll with individual promisify calls in all 8 files Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com> * Remove unused promisify imports from V1Api and FileStoreHandler Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com> * Fix formatting and remove unnecessary .bind() calls Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com> * Fix formatting: collapse multi-line promisify calls to single lines Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com> GitOrigin-RevId: c16a3f3ea48c93c2f62ad32c1f4512cd237882bf
This commit is contained in:
committed by
Copybot
co-authored by
copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Seinzu
parent
21ccf42ae8
commit
55c3b6b7ea
@@ -8,7 +8,7 @@ import ProjectDeleter from '../Project/ProjectDeleter.mjs'
|
||||
import EditorRealTimeController from './EditorRealTimeController.mjs'
|
||||
import async from 'async'
|
||||
import PublicAccessLevels from '../Authorization/PublicAccessLevels.mjs'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisify, promisifyMultiResult } from '@overleaf/promise-utils'
|
||||
|
||||
const EditorController = {
|
||||
addDoc(projectId, folderId, docName, docLines, source, userId, callback) {
|
||||
@@ -687,9 +687,34 @@ const EditorController = {
|
||||
},
|
||||
}
|
||||
|
||||
EditorController.promises = promisifyAll(EditorController, {
|
||||
multiResult: {
|
||||
mkdirp: ['newFolders', 'lastFolder'],
|
||||
},
|
||||
})
|
||||
EditorController.promises = {
|
||||
addDoc: promisify(EditorController.addDoc),
|
||||
addDocWithRanges: promisify(EditorController.addDocWithRanges),
|
||||
addFile: promisify(EditorController.addFile),
|
||||
appendToDoc: promisify(EditorController.appendToDoc),
|
||||
upsertDoc: promisify(EditorController.upsertDoc),
|
||||
upsertFile: promisify(EditorController.upsertFile),
|
||||
upsertDocWithPath: promisify(EditorController.upsertDocWithPath),
|
||||
upsertFileWithPath: promisify(EditorController.upsertFileWithPath),
|
||||
addFolder: promisify(EditorController.addFolder),
|
||||
mkdirp: promisifyMultiResult(EditorController.mkdirp, [
|
||||
'newFolders',
|
||||
'lastFolder',
|
||||
]),
|
||||
deleteEntity: promisify(EditorController.deleteEntity),
|
||||
deleteEntityWithPath: promisify(EditorController.deleteEntityWithPath),
|
||||
updateProjectDescription: promisify(
|
||||
EditorController.updateProjectDescription
|
||||
),
|
||||
deleteProject: promisify(EditorController.deleteProject),
|
||||
renameEntity: promisify(EditorController.renameEntity),
|
||||
moveEntity: promisify(EditorController.moveEntity),
|
||||
renameProject: promisify(EditorController.renameProject),
|
||||
setCompiler: promisify(EditorController.setCompiler),
|
||||
setImageName: promisify(EditorController.setImageName),
|
||||
setSpellCheckLanguage: promisify(EditorController.setSpellCheckLanguage),
|
||||
setPublicAccessLevel: promisify(EditorController.setPublicAccessLevel),
|
||||
setRootDoc: promisify(EditorController.setRootDoc),
|
||||
setMainBibliographyDoc: promisify(EditorController.setMainBibliographyDoc),
|
||||
}
|
||||
export default EditorController
|
||||
|
||||
@@ -6,7 +6,7 @@ import HistoryManager from '../History/HistoryManager.mjs'
|
||||
import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
|
||||
import { File } from '../../models/File.mjs'
|
||||
import OError from '@overleaf/o-error'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisifyMultiResult } from '@overleaf/promise-utils'
|
||||
import Modules from '../../infrastructure/Modules.mjs'
|
||||
|
||||
const FileStoreHandler = {
|
||||
@@ -115,11 +115,15 @@ const FileStoreHandler = {
|
||||
},
|
||||
}
|
||||
|
||||
FileStoreHandler.promises = promisifyAll(FileStoreHandler, {
|
||||
multiResult: {
|
||||
uploadFileFromDisk: ['fileRef', 'createdBlob', 'size'],
|
||||
uploadFileFromDiskWithHistoryId: ['fileRef', 'createdBlob', 'size'],
|
||||
},
|
||||
})
|
||||
FileStoreHandler.promises = {
|
||||
uploadFileFromDisk: promisifyMultiResult(
|
||||
FileStoreHandler.uploadFileFromDisk,
|
||||
['fileRef', 'createdBlob', 'size']
|
||||
),
|
||||
uploadFileFromDiskWithHistoryId: promisifyMultiResult(
|
||||
FileStoreHandler.uploadFileFromDiskWithHistoryId,
|
||||
['fileRef', 'createdBlob', 'size']
|
||||
),
|
||||
}
|
||||
|
||||
export default FileStoreHandler
|
||||
|
||||
@@ -3,7 +3,7 @@ import OError from '@overleaf/o-error'
|
||||
import logger from '@overleaf/logger'
|
||||
import settings from '@overleaf/settings'
|
||||
import request from 'requestretry'
|
||||
import { promisifyAll, promiseMapWithLimit } from '@overleaf/promise-utils'
|
||||
import { promisify, promiseMapWithLimit } from '@overleaf/promise-utils'
|
||||
import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
|
||||
import {
|
||||
V1ConnectionError,
|
||||
@@ -406,17 +406,28 @@ function makeAffiliationRequest(options, callback) {
|
||||
})
|
||||
}
|
||||
|
||||
InstitutionsAPI.promises = promisifyAll(InstitutionsAPI, {
|
||||
without: [
|
||||
'addAffiliation',
|
||||
'removeAffiliation',
|
||||
'getUsersNeedingReconfirmationsLapsedProcessed',
|
||||
],
|
||||
})
|
||||
|
||||
InstitutionsAPI.promises.addAffiliation = addAffiliation
|
||||
InstitutionsAPI.promises.removeAffiliation = removeAffiliation
|
||||
InstitutionsAPI.promises.getUsersNeedingReconfirmationsLapsedProcessed =
|
||||
getUsersNeedingReconfirmationsLapsedProcessed
|
||||
InstitutionsAPI.promises = {
|
||||
getInstitutionAffiliations: promisify(
|
||||
InstitutionsAPI.getInstitutionAffiliations
|
||||
),
|
||||
getConfirmedInstitutionAffiliations: promisify(
|
||||
InstitutionsAPI.getConfirmedInstitutionAffiliations
|
||||
),
|
||||
getInstitutionAffiliationsCounts: promisify(
|
||||
InstitutionsAPI.getInstitutionAffiliationsCounts
|
||||
),
|
||||
getLicencesForAnalytics: promisify(InstitutionsAPI.getLicencesForAnalytics),
|
||||
getUserAffiliations: promisify(InstitutionsAPI.getUserAffiliations),
|
||||
getUsersNeedingReconfirmationsLapsedProcessed,
|
||||
addAffiliation,
|
||||
removeAffiliation,
|
||||
endorseAffiliation: promisify(InstitutionsAPI.endorseAffiliation),
|
||||
deleteAffiliations: promisify(InstitutionsAPI.deleteAffiliations),
|
||||
addEntitlement: promisify(InstitutionsAPI.addEntitlement),
|
||||
removeEntitlement: promisify(InstitutionsAPI.removeEntitlement),
|
||||
sendUsersWithReconfirmationsLapsedProcessed: promisify(
|
||||
InstitutionsAPI.sendUsersWithReconfirmationsLapsedProcessed
|
||||
),
|
||||
}
|
||||
|
||||
export default InstitutionsAPI
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import OError from '@overleaf/o-error'
|
||||
import Metrics from '@overleaf/metrics'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisify } from '@overleaf/promise-utils'
|
||||
import LearnedWordsManager from './LearnedWordsManager.mjs'
|
||||
|
||||
const SpellingHandler = {
|
||||
@@ -26,4 +26,13 @@ const SpellingHandler = {
|
||||
},
|
||||
}
|
||||
|
||||
export default { ...SpellingHandler, promises: promisifyAll(SpellingHandler) }
|
||||
export default {
|
||||
...SpellingHandler,
|
||||
promises: {
|
||||
getUserDictionary: promisify(SpellingHandler.getUserDictionary),
|
||||
deleteWordFromUserDictionary: promisify(
|
||||
SpellingHandler.deleteWordFromUserDictionary
|
||||
),
|
||||
deleteUserDictionary: promisify(SpellingHandler.deleteUserDictionary),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import UserGetter from '../User/UserGetter.mjs'
|
||||
import request from 'requestretry'
|
||||
import settings from '@overleaf/settings'
|
||||
import { V1ConnectionError, NotFoundError } from '../Errors/Errors.js'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisify } from '@overleaf/promise-utils'
|
||||
|
||||
const V1SubscriptionManager = {
|
||||
cancelV1Subscription(userId, callback) {
|
||||
@@ -117,8 +117,9 @@ const V1SubscriptionManager = {
|
||||
},
|
||||
}
|
||||
|
||||
V1SubscriptionManager.promises = promisifyAll(V1SubscriptionManager, {
|
||||
without: ['getGrandfatheredFeaturesForV1User'],
|
||||
})
|
||||
V1SubscriptionManager.promises = {
|
||||
cancelV1Subscription: promisify(V1SubscriptionManager.cancelV1Subscription),
|
||||
v1IdForUser: promisify(V1SubscriptionManager.v1IdForUser),
|
||||
}
|
||||
|
||||
export default V1SubscriptionManager
|
||||
|
||||
@@ -26,7 +26,7 @@ import {
|
||||
ZipContentsTooLargeError,
|
||||
} from './ArchiveErrors.mjs'
|
||||
import _ from 'lodash'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisify } from '@overleaf/promise-utils'
|
||||
|
||||
const ONE_MEG = 1024 * 1024
|
||||
|
||||
@@ -267,5 +267,8 @@ const ArchiveManager = {
|
||||
},
|
||||
}
|
||||
|
||||
ArchiveManager.promises = promisifyAll(ArchiveManager)
|
||||
ArchiveManager.promises = {
|
||||
extractZipArchive: promisify(ArchiveManager.extractZipArchive),
|
||||
findTopLevelDirectory: promisify(ArchiveManager.findTopLevelDirectory),
|
||||
}
|
||||
export default ArchiveManager
|
||||
|
||||
@@ -11,7 +11,7 @@ import request from 'request'
|
||||
|
||||
import settings from '@overleaf/settings'
|
||||
import Errors from '../Errors/Errors.js'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisifyMultiResult } from '@overleaf/promise-utils'
|
||||
|
||||
// TODO: check what happens when these settings aren't defined
|
||||
const DEFAULT_V1_PARAMS = {
|
||||
@@ -98,10 +98,8 @@ const V1Api = {
|
||||
},
|
||||
}
|
||||
|
||||
V1Api.promises = promisifyAll(V1Api, {
|
||||
multiResult: {
|
||||
request: ['response', 'body'],
|
||||
oauthRequest: ['response', 'body'],
|
||||
},
|
||||
})
|
||||
V1Api.promises = {
|
||||
request: promisifyMultiResult(V1Api.request, ['response', 'body']),
|
||||
oauthRequest: promisifyMultiResult(V1Api.oauthRequest, ['response', 'body']),
|
||||
}
|
||||
export default V1Api
|
||||
|
||||
@@ -15,7 +15,7 @@ import Settings from '@overleaf/settings'
|
||||
import request from 'request'
|
||||
import { Transform, pipeline } from 'node:stream'
|
||||
import { FileTooLargeError } from '../Features/Errors/Errors.js'
|
||||
import { promisifyAll } from '@overleaf/promise-utils'
|
||||
import { promisify } from '@overleaf/promise-utils'
|
||||
|
||||
export class SizeLimitedStream extends Transform {
|
||||
constructor(options) {
|
||||
@@ -180,8 +180,11 @@ const FileWriter = {
|
||||
},
|
||||
}
|
||||
|
||||
FileWriter.promises = promisifyAll(FileWriter, {
|
||||
without: ['ensureDumpFolderExists'],
|
||||
})
|
||||
FileWriter.promises = {
|
||||
writeLinesToDisk: promisify(FileWriter.writeLinesToDisk),
|
||||
writeContentToDisk: promisify(FileWriter.writeContentToDisk),
|
||||
writeStreamToDisk: promisify(FileWriter.writeStreamToDisk),
|
||||
writeUrlToDisk: promisify(FileWriter.writeUrlToDisk),
|
||||
}
|
||||
|
||||
export default FileWriter
|
||||
|
||||
Reference in New Issue
Block a user