feat: Complete CouchDB migration and Docker configuration
- 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>
This commit is contained in:
45
node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js
generated
vendored
Normal file
45
node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
'use strict';
|
||||
|
||||
/*!
|
||||
* ignore
|
||||
*/
|
||||
|
||||
module.exports = function cleanModifiedSubpaths(doc, path, options) {
|
||||
options = options || {};
|
||||
const skipDocArrays = options.skipDocArrays;
|
||||
|
||||
let deleted = 0;
|
||||
if (!doc) {
|
||||
return deleted;
|
||||
}
|
||||
|
||||
for (const modifiedPath of Object.keys(doc.$__.activePaths.getStatePaths('modify'))) {
|
||||
if (skipDocArrays) {
|
||||
const schemaType = doc.$__schema.path(modifiedPath);
|
||||
if (schemaType && schemaType.$isMongooseDocumentArray) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (modifiedPath.startsWith(path + '.')) {
|
||||
doc.$__.activePaths.clearPath(modifiedPath);
|
||||
++deleted;
|
||||
|
||||
if (doc.$isSubdocument) {
|
||||
cleanParent(doc, modifiedPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
return deleted;
|
||||
};
|
||||
|
||||
function cleanParent(doc, path, seen = new Set()) {
|
||||
if (seen.has(doc)) {
|
||||
throw new Error('Infinite subdocument loop: subdoc with _id ' + doc._id + ' is a parent of itself');
|
||||
}
|
||||
const parent = doc.$parent();
|
||||
const newPath = doc.$__pathRelativeToParent(void 0, false) + '.' + path;
|
||||
parent.$__.activePaths.clearPath(newPath);
|
||||
if (parent.$isSubdocument) {
|
||||
cleanParent(parent, newPath, seen);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user