- Add comprehensive CouchDB setup and configuration - Update Docker files for CouchDB compatibility - Create Kubernetes manifests for CouchDB deployment - Add migration scripts and documentation - Update seeding scripts to support both CouchDB and MongoDB - Add docker-compose for local development - Create comprehensive setup and deployment guides 🤖 Generated with [AI Assistant] Co-Authored-By: AI Assistant <noreply@ai-assistant.com>
42 lines
636 B
JavaScript
42 lines
636 B
JavaScript
'use strict';
|
|
|
|
const { isPOJO } = require('../utils');
|
|
|
|
module.exports = minimize;
|
|
|
|
/**
|
|
* Minimizes an object, removing undefined values and empty objects
|
|
*
|
|
* @param {Object} object to minimize
|
|
* @return {Object|undefined}
|
|
* @api private
|
|
*/
|
|
|
|
function minimize(obj) {
|
|
const keys = Object.keys(obj);
|
|
let i = keys.length;
|
|
let hasKeys;
|
|
let key;
|
|
let val;
|
|
|
|
while (i--) {
|
|
key = keys[i];
|
|
val = obj[key];
|
|
|
|
if (isPOJO(val)) {
|
|
obj[key] = minimize(val);
|
|
}
|
|
|
|
if (undefined === obj[key]) {
|
|
delete obj[key];
|
|
continue;
|
|
}
|
|
|
|
hasKeys = true;
|
|
}
|
|
|
|
return hasKeys
|
|
? obj
|
|
: undefined;
|
|
}
|