gx
chenyc
2025-06-12 7b72ac13a83764a662159d4a49b7fffb90476ecb
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';
 
module.exports = function merge(s1, s2, skipConflictingPaths) {
  const paths = Object.keys(s2.tree);
  const pathsToAdd = {};
  for (const key of paths) {
    if (skipConflictingPaths && (s1.paths[key] || s1.nested[key] || s1.singleNestedPaths[key])) {
      continue;
    }
    pathsToAdd[key] = s2.tree[key];
  }
  s1.add(pathsToAdd);
 
  s1.callQueue = s1.callQueue.concat(s2.callQueue);
  s1.method(s2.methods);
  s1.static(s2.statics);
 
  for (const query in s2.query) {
    s1.query[query] = s2.query[query];
  }
 
  for (const virtual in s2.virtuals) {
    s1.virtuals[virtual] = s2.virtuals[virtual].clone();
  }
 
  s1._indexes = s1._indexes.concat(s2._indexes || []);
  s1.s.hooks.merge(s2.s.hooks, false);
};