Просмотр исходного кода

Merge pull request #28833 from overleaf/ii-await-project-helper

[web] Promisify ProjectHelper

GitOrigin-RevId: a31457228c335ba1d70acdfa4671effce30c8014
ilkin-overleaf 1 год назад
Родитель
Сommit
9cc6fd9d82

+ 1 - 1
services/web/app/src/Features/Project/ProjectDetailsHandler.js

@@ -158,7 +158,7 @@ async function generateUniqueName(userId, name, suffixes = []) {
     _.flattenDeep(_.values(allUsersProjectNames)),
     'name'
   )
-  const uniqueName = await ProjectHelper.promises.ensureNameIsUnique(
+  const uniqueName = ProjectHelper.ensureNameIsUnique(
     projectNameList,
     name,
     suffixes,

+ 7 - 10
services/web/app/src/Features/Project/ProjectHelper.js

@@ -1,7 +1,6 @@
 // @ts-check
 const { ObjectId } = require('mongodb-legacy')
 const _ = require('lodash')
-const { promisify } = require('util')
 const Settings = require('@overleaf/settings')
 
 /**
@@ -20,11 +19,8 @@ module.exports = {
   isArchived,
   isTrashed,
   isArchivedOrTrashed,
-  ensureNameIsUnique,
   getAllowedImagesForUser,
-  promises: {
-    ensureNameIsUnique: promisify(ensureNameIsUnique),
-  },
+  ensureNameIsUnique,
 }
 
 function compilerFromV1Engine(engine) {
@@ -67,8 +63,9 @@ function isArchivedOrTrashed(project, userId) {
  * @param {string} name
  * @param {string[]} suffixes
  * @param {number} maxLength
+ * @returns string
  */
-function ensureNameIsUnique(nameList, name, suffixes, maxLength, callback) {
+function ensureNameIsUnique(nameList, name, suffixes, maxLength) {
   // create a set of all project names
   if (suffixes == null) {
     suffixes = []
@@ -77,21 +74,21 @@ function ensureNameIsUnique(nameList, name, suffixes, maxLength, callback) {
   const isUnique = x => !allNames.has(x)
   // check if the supplied name is already unique
   if (isUnique(name)) {
-    return callback(null, name)
+    return name
   }
   // the name already exists, try adding the user-supplied suffixes to generate a unique name
   for (const suffix of suffixes) {
     const candidateName = _addSuffixToProjectName(name, suffix, maxLength)
     if (isUnique(candidateName)) {
-      return callback(null, candidateName)
+      return candidateName
     }
   }
   // if there are no (more) suffixes, use a numeric one
   const uniqueName = _addNumericSuffixToProjectName(name, allNames, maxLength)
   if (uniqueName != null) {
-    callback(null, uniqueName)
+    return uniqueName
   } else {
-    callback(new Error(`Failed to generate a unique name for: ${name}`))
+    throw new Error(`Failed to generate a unique name for: ${name}`)
   }
 }