feat: introduce REQUEST_TYPES constant and update item deletion logic (#6244)

- Added REQUEST_TYPES constant to centralize request type definitions.
- Updated deleteItem action to filter items based on REQUEST_TYPES and folders.
- Modified collection.js to handle REQUEST_TYPES during file resequence operations.
This commit is contained in:
Abhishek S Lal
2025-12-03 16:07:38 +05:30
committed by GitHub
parent 9caef9e573
commit a3d2d35d2e
4 changed files with 8 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
import { collectionSchema, environmentSchema, itemSchema } from '@usebruno/schema';
import { parseQueryParams, extractPromptVariables } from '@usebruno/common/utils';
import { REQUEST_TYPES } from 'utils/common/constants';
import cloneDeep from 'lodash/cloneDeep';
import filter from 'lodash/filter';
import find from 'lodash/find';
@@ -1064,7 +1065,9 @@ export const deleteItem = (itemUid, collectionUid) => (dispatch, getState) => {
.then(async () => {
// Reorder items in parent directory after deletion
if (parentDirectoryItem.items) {
const directoryItemsWithoutDeletedItem = parentDirectoryItem.items.filter((i) => i.uid !== itemUid);
const requestAndFolderTypes = [...REQUEST_TYPES, 'folder'];
const directoryItemsWithOnlyRequestAndFolders = parentDirectoryItem.items.filter((i) => requestAndFolderTypes.includes(i.type));
const directoryItemsWithoutDeletedItem = directoryItemsWithOnlyRequestAndFolders.filter((i) => i.uid !== itemUid);
const reorderedSourceItems = getReorderedItemsInSourceDirectory({
items: directoryItemsWithoutDeletedItem
});

View File

@@ -0,0 +1 @@
export const REQUEST_TYPES = ['http-request', 'graphql-request', 'grpc-request', 'ws-request'];

View File

@@ -62,6 +62,7 @@ const { getOAuth2TokenUsingAuthorizationCode, getOAuth2TokenUsingClientCredentia
const { getCertsAndProxyConfig } = require('./network/cert-utils');
const collectionWatcher = require('../app/collection-watcher');
const { transformBrunoConfigBeforeSave } = require('../utils/transfomBrunoConfig');
const { REQUEST_TYPES } = require('../utils/constants');
const environmentSecretsStore = new EnvironmentSecretsStore();
const collectionSecurityStore = new CollectionSecurityStore();
@@ -1023,7 +1024,7 @@ const registerRendererEventHandlers = (mainWindow, watcher, lastOpenedCollection
}
const content = await stringifyFolder(folderJsonData, { format });
await writeFile(folderRootPath, content);
} else {
} else if (REQUEST_TYPES.includes(item?.type)) {
if (fs.existsSync(item.pathname)) {
const itemToSave = transformRequestToSaveToFilesystem(item);
const content = await stringifyRequestViaWorker(itemToSave, { format });

View File

@@ -0,0 +1 @@
export const REQUEST_TYPES = ['http-request', 'graphql-request', 'grpc-request', 'ws-request'];