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
						
					
					
						
							938 B
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							938 B
						
					
					
				| "use strict";
 | |
| 
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|   value: true
 | |
| });
 | |
| exports.getPropertyByPath = getPropertyByPath;
 | |
| 
 | |
| // Resolves property names or property paths defined with period-delimited
 | |
| // strings or arrays of strings. Property names that are found on the source
 | |
| // object are used directly (even if they include a period).
 | |
| // Nested property names that include periods, within a path, are only
 | |
| // understood in array paths.
 | |
| function getPropertyByPath(source, path) {
 | |
|   if (typeof path === 'string' && Object.prototype.hasOwnProperty.call(source, path)) {
 | |
|     return source[path];
 | |
|   }
 | |
| 
 | |
|   const parsedPath = typeof path === 'string' ? path.split('.') : path; // eslint-disable-next-line @typescript-eslint/no-explicit-any
 | |
| 
 | |
|   return parsedPath.reduce((previous, key) => {
 | |
|     if (previous === undefined) {
 | |
|       return previous;
 | |
|     }
 | |
| 
 | |
|     return previous[key];
 | |
|   }, source);
 | |
| }
 | |
| //# sourceMappingURL=getPropertyByPath.js.map
 |