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.
		
		
		
		
		
			
		
			
				
					31 lines
				
				582 B
			
		
		
			
		
	
	
					31 lines
				
				582 B
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | module.exports = function lookupLocalFields(cur, path, val) { | ||
|  |   if (cur == null) { | ||
|  |     return cur; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (cur._doc != null) { | ||
|  |     cur = cur._doc; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (arguments.length >= 3) { | ||
|  |     if (typeof cur !== 'object') { | ||
|  |       return void 0; | ||
|  |     } | ||
|  |     if (val === void 0) { | ||
|  |       return void 0; | ||
|  |     } | ||
|  |     cur[path] = val; | ||
|  |     return val; | ||
|  |   } | ||
|  | 
 | ||
|  | 
 | ||
|  |   // Support populating paths under maps using `map.$*.subpath`
 | ||
|  |   if (path === '$*') { | ||
|  |     return cur instanceof Map ? | ||
|  |       Array.from(cur.values()) : | ||
|  |       Object.keys(cur).map(key => cur[key]); | ||
|  |   } | ||
|  |   return cur[path]; | ||
|  | }; |