mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-11 09:51:30 +00:00
This reverts commit 5b1b1b5541.
This commit is contained in:
@@ -1909,8 +1909,8 @@ export const saveEnvironment = (variables, environmentUid, collectionUid) => (di
|
||||
Modal Save writes what the user sees:
|
||||
- Non-ephemeral vars are saved as-is (without metadata)
|
||||
- Ephemeral vars:
|
||||
- if persistedValue exists, save that (restore original value)
|
||||
- otherwise filter out (don't save script-created ephemeral vars)
|
||||
- if persistedValue exists, save that (explicit persisted case)
|
||||
- otherwise save the current UI value (treat as user-authored)
|
||||
*/
|
||||
const persisted = buildPersistedEnvVariables(variables, { mode: 'save' });
|
||||
environment.variables = persisted;
|
||||
|
||||
@@ -12,31 +12,24 @@ const toPersistedEnvVarForMerge = (persistedNames) => (v) => {
|
||||
return rest;
|
||||
};
|
||||
|
||||
const isPersistableEnvVarForSave = (v) => {
|
||||
if (!v) return false;
|
||||
return !v.ephemeral || v.persistedValue !== undefined;
|
||||
};
|
||||
|
||||
const toPersistedEnvVarForSave = (v) => {
|
||||
const { ephemeral, persistedValue, ...rest } = v || {};
|
||||
return v?.ephemeral ? (persistedValue !== undefined ? { ...rest, value: persistedValue } : rest) : rest;
|
||||
};
|
||||
|
||||
// mode 'save': filters out ephemeral vars without persistedValue (script-created, never on disk)
|
||||
// mode 'merge': same as 'save', but also includes ephemeral vars explicitly persisted this run
|
||||
/*
|
||||
High-level builder for persisted variables
|
||||
- mode 'save': write what the user sees
|
||||
- mode 'merge': write only allowed vars (non-ephemeral, ephemerals with persistedValue, or explicitly persisted this run)
|
||||
*/
|
||||
export const buildPersistedEnvVariables = (variables, { mode, persistedNames } = {}) => {
|
||||
const src = Array.isArray(variables) ? variables : [];
|
||||
if (mode === 'merge') {
|
||||
const names = persistedNames instanceof Set ? persistedNames : new Set();
|
||||
return src
|
||||
.filter(isPersistableEnvVarForMerge(names))
|
||||
.map(toPersistedEnvVarForMerge(names));
|
||||
return src.filter(isPersistableEnvVarForMerge(names)).map(toPersistedEnvVarForMerge(names));
|
||||
}
|
||||
|
||||
// default to save mode
|
||||
return src
|
||||
.filter(isPersistableEnvVarForSave)
|
||||
.map(toPersistedEnvVarForSave);
|
||||
return src.map(toPersistedEnvVarForSave);
|
||||
};
|
||||
|
||||
export const buildEnvVariable = ({ envVariable: obj, withUuid = false }) => {
|
||||
|
||||
Reference in New Issue
Block a user