mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 10:47:07 +00:00
Support patching values out of the configuration.
A configuration patch having keys with null values will result in those keys being removed from the configuration.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
const { setSurvey } = require('../../connection');
|
||||
const { deepMerge } = require('../../../utils');
|
||||
const { deepMerge, removeNulls } = require('../../../utils');
|
||||
const { modify } = require('../create');
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ async function patch (projectId, payload, opts = {}) {
|
||||
}
|
||||
}
|
||||
|
||||
const dest = deepMerge(source, payload);
|
||||
const dest = removeNulls(deepMerge(source, payload));
|
||||
await modify(projectId, dest);
|
||||
return dest;
|
||||
|
||||
|
||||
@@ -4,5 +4,6 @@ module.exports = {
|
||||
dms: require('./dms'),
|
||||
replaceMarkers: require('./replaceMarkers'),
|
||||
flattenQCDefinitions: require('./flattenQCDefinitions'),
|
||||
deepMerge: require('./deepMerge')
|
||||
deepMerge: require('./deepMerge'),
|
||||
removeNulls: require('./removeNulls')
|
||||
};
|
||||
|
||||
23
lib/www/server/lib/utils/removeNulls.js
Normal file
23
lib/www/server/lib/utils/removeNulls.js
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
/**
|
||||
* Delete keys whose value is null.
|
||||
*
|
||||
*/
|
||||
function removeNulls (obj) {
|
||||
|
||||
function getType (obj) {
|
||||
return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
|
||||
}
|
||||
|
||||
for (let [key, value] of Object.entries(obj)) {
|
||||
if (value === null) {
|
||||
delete obj[key];
|
||||
} else if (getType(value) == "object") {
|
||||
removeNulls(value);
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
module.exports = removeNulls;
|
||||
Reference in New Issue
Block a user