sort folders by name first and then sequence (#5063)

* sort folders by name first and then sequence
---------

Co-authored-by: lohit <lohit@usebruno.com>
This commit is contained in:
lohit
2025-07-14 22:17:11 +05:30
committed by GitHub
parent 31e555812c
commit 4e4c94d73f
13 changed files with 537 additions and 94 deletions

View File

@@ -213,8 +213,7 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
if (!folderRoot.meta) {
folderRoot.meta = {
name: folderName,
seq: 1
name: folderName
};
}
@@ -400,8 +399,7 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
} else {
folderBruFileJsonContent = {
meta: {
name: newName,
seq: 1
name: newName
}
};
}
@@ -451,8 +449,7 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
} else {
folderBruFileJsonContent = {
meta: {
name: newName,
seq: 1
name: newName
}
};
}
@@ -526,20 +523,14 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
});
// new folder
ipcMain.handle('renderer:new-folder', async (event, pathname, folderName) => {
ipcMain.handle('renderer:new-folder', async (event, { pathname, folderBruJsonData }) => {
const resolvedFolderName = sanitizeName(path.basename(pathname));
pathname = path.join(path.dirname(pathname), resolvedFolderName);
try {
if (!fs.existsSync(pathname)) {
fs.mkdirSync(pathname);
const folderBruFilePath = path.join(pathname, 'folder.bru');
let data = {
meta: {
name: folderName,
seq: 1
}
};
const content = await jsonToCollectionBru(data, true); // isFolder flag
const content = await jsonToCollectionBru(folderBruJsonData, true); // isFolder flag
await writeFile(folderBruFilePath, content);
} else {
return Promise.reject(new Error('The directory already exists'));
@@ -762,8 +753,8 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
const folderRootPath = path.join(item.pathname, 'folder.bru');
let folderBruJsonData = {
meta: {
name: path.basename(item?.pathname),
seq: item?.seq || 1
name: path.basename(item.pathname),
seq: item.seq
}
};
if (fs.existsSync(folderRootPath)) {
@@ -771,8 +762,8 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
folderBruJsonData = await collectionBruToJson(bru);
if (!folderBruJsonData?.meta) {
folderBruJsonData.meta = {
name: path.basename(item?.pathname),
seq: item?.seq || 1
name: path.basename(item.pathname),
seq: item.seq
};
}
if (folderBruJsonData?.meta?.seq === item.seq) {

View File

@@ -24,9 +24,8 @@ const { uuid, safeStringifyJSON, safeParseJSON, parseDataFromResponse, parseData
const { chooseFileToSave, writeBinaryFile, writeFile } = require('../../utils/filesystem');
const { addCookieToJar, getDomainsWithCookies, getCookieStringForUrl } = require('../../utils/cookies');
const { createFormData } = require('../../utils/form-data');
const { findItemInCollectionByPathname, sortFolder, getAllRequestsInFolderRecursively, getEnvVars, getTreePathFromCollectionToItem, mergeVars } = require('../../utils/collection');
const { findItemInCollectionByPathname, sortFolder, getAllRequestsInFolderRecursively, getEnvVars, getTreePathFromCollectionToItem, mergeVars, sortByNameThenSequence } = require('../../utils/collection');
const { getOAuth2TokenUsingAuthorizationCode, getOAuth2TokenUsingClientCredentials, getOAuth2TokenUsingPasswordCredentials, getOAuth2TokenUsingImplicitGrant } = require('../../utils/oauth2');
const { setupProxyAgents } = require('../../utils/proxy-util');
const { preferencesUtil } = require('../../store/preferences');
const { getProcessEnvVars } = require('../../store/process-env');
const { getBrunoConfig } = require('../../store/bruno-config');
@@ -1003,10 +1002,9 @@ const registerNetworkIpc = (mainWindow) => {
}
});
// sort requests by seq property
folderRequests.sort((a, b) => {
return a.seq - b.seq;
});
folderRequests = sortByNameThenSequence(folderRequests)
}
let currentRequestIndex = 0;