You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					28 lines
				
				678 B
			
		
		
			
		
	
	
					28 lines
				
				678 B
			| 
											3 years ago
										 | '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.s.hooks.merge(s2.s.hooks, false); | ||
|  | }; |