blob: 5758936592d4e65bee5205634aa90a34b5a372f5 [file] [log] [blame]
/**
* Add some params to a ParamSet.
*
* @param {Object} paramset - Key-value pairs where keys are strings and values are arrays of strings.
* @param {Object} params - Key-value pairs where both keys and values are strings.
* @param {Array} ignored - List of keys to ignore.
*/
export function add(paramset, params, ignored = []) {
for (let key in params) {
if (ignored.includes(key)) {
continue
}
let value = params[key];
let values = paramset[key] || [];
if (!values.includes(value)) {
values.push(value);
paramset[key] = values;
}
}
}
/**
* Determines if the params given match the ParamSet.
*
* @param {Object} paramset - Key-value pairs where keys are strings and values are arrays of strings.
* @param {Object} params - Key-value pairs where both keys and values are strings.
*
* @return {bool} True if every key in ParamSet is present in 'params' and
* the value seen in params is in the ParamSet values.
*/
export function match(paramset, params) {
for (let key in paramset) {
if (!paramset[key].includes(params[key])) {
return false
}
}
return true
}