Skip to content

Commit

Permalink
feat: support prefix in VariableScope
Browse files Browse the repository at this point in the history
This change allows us to use the current VariableScope
with VaultVariables which have a fixed 'vault' prefix
  • Loading branch information
Pranav Joglekar committed Jul 12, 2024
1 parent e1dfe7a commit f006a5a
Show file tree
Hide file tree
Showing 3 changed files with 1,559 additions and 6 deletions.
34 changes: 28 additions & 6 deletions lib/collection/variable-scope.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@ _.inherit((
if (mutations) {
this.mutations = new MutationTracker(mutations);
}

if (definition && definition.prefix) {
this._postman_scopePrefix = definition.prefix;
}
}), Property);

/**
Expand All @@ -136,6 +140,16 @@ _.assign(VariableScope.prototype, /** @lends VariableScope.prototype */ {
*/
_postman_propertyRequiresId: true,

/**
* Defines the prefix associated with the VariableList variables for internal use.
*
* @private
* @type {String}
*
*/
_postman_scopePrefix: '',


/**
* @private
* @deprecated discontinued in v4.0
Expand Down Expand Up @@ -176,7 +190,9 @@ _.assign(VariableScope.prototype, /** @lends VariableScope.prototype */ {
* false otherwise
*/
has: function (key) {
var variable = this.values.oneNormalizedVariable(key),
const keyWithPrefix = this._postman_scopePrefix + key;

var variable = this.values.oneNormalizedVariable(keyWithPrefix),
i,
ii;

Expand All @@ -199,7 +215,9 @@ _.assign(VariableScope.prototype, /** @lends VariableScope.prototype */ {
* @returns {*} The value of the specified variable across scopes.
*/
get: function (key) {
var variable = this.values.oneNormalizedVariable(key),
const keyWithPrefix = this._postman_scopePrefix + key;

var variable = this.values.oneNormalizedVariable(keyWithPrefix),
i,
ii;

Expand All @@ -222,10 +240,12 @@ _.assign(VariableScope.prototype, /** @lends VariableScope.prototype */ {
* @param {Variable.types} [type] - Optionally, the value of the variable can be set to a type
*/
set: function (key, value, type) {
var variable = this.values.oneNormalizedVariable(key),
const keyWithPrefix = this._postman_scopePrefix + key;

var variable = this.values.oneNormalizedVariable(keyWithPrefix),

// create an object that will be used as setter
update = { key, value };
update = { key: keyWithPrefix, value: value };

_.isString(type) && (update.type = type);

Expand All @@ -248,11 +268,13 @@ _.assign(VariableScope.prototype, /** @lends VariableScope.prototype */ {
* @param {String} key -
*/
unset: function (key) {
const keyWithPrefix = this._postman_scopePrefix + key;

var lastDisabledVariable;

this.values.remove(function (variable) {
// bail out if variable name didn't match
if (variable.key !== key) {
if (variable.key !== keyWithPrefix) {
return false;
}

Expand All @@ -269,7 +291,7 @@ _.assign(VariableScope.prototype, /** @lends VariableScope.prototype */ {

// restore the reference with the last disabled variable
if (lastDisabledVariable) {
this.values.reference[key] = lastDisabledVariable;
this.values.reference[keyWithPrefix] = lastDisabledVariable;
}

// track the change if mutation tracking is enabled
Expand Down
Loading

0 comments on commit f006a5a

Please sign in to comment.