mirror of https://github.com/rancher/dashboard.git
28 lines
665 B
JavaScript
28 lines
665 B
JavaScript
export function queryParamsFor(current, qp, defaults = {}) {
|
|
const query = Object.assign({}, current || {});
|
|
|
|
for ( const key of Object.keys(qp) ) {
|
|
const val = qp[key];
|
|
|
|
if ( typeof defaults[key] === 'undefined' ) {
|
|
// There is no default
|
|
query[key] = qp[key];
|
|
} else if ( defaults[key] === false ) {
|
|
// Value-less boolean flags
|
|
if ( val ) {
|
|
query[key] = null;
|
|
} else {
|
|
delete query[key];
|
|
}
|
|
} else if ( val === defaults[key] ) {
|
|
// The value is the default
|
|
delete query[key];
|
|
} else {
|
|
// The value is not the default
|
|
query[key] = val;
|
|
}
|
|
}
|
|
|
|
return query;
|
|
}
|