1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| '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.states.modify)) {
| if (skipDocArrays) {
| const schemaType = doc.$__schema.path(modifiedPath);
| if (schemaType && schemaType.$isMongooseDocumentArray) {
| continue;
| }
| }
| if (modifiedPath.startsWith(path + '.')) {
| delete doc.$__.activePaths.states.modify[modifiedPath];
| ++deleted;
| }
| }
| return deleted;
| };
|
|