23 lines
		
	
	
		
			691 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			691 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var configuration = require('../../configuration');
 | |
| 
 | |
| function isComponentOf(property1, property2, shallow) {
 | |
|   return isDirectComponentOf(property1, property2)
 | |
|     || !shallow && !!configuration[property1.name].shorthandComponents && isSubComponentOf(property1, property2);
 | |
| }
 | |
| 
 | |
| function isDirectComponentOf(property1, property2) {
 | |
|   var descriptor = configuration[property1.name];
 | |
| 
 | |
|   return 'components' in descriptor && descriptor.components.indexOf(property2.name) > -1;
 | |
| }
 | |
| 
 | |
| function isSubComponentOf(property1, property2) {
 | |
|   return property1
 | |
|     .components
 | |
|     .some(function(component) {
 | |
|       return isDirectComponentOf(component, property2);
 | |
|     });
 | |
| }
 | |
| 
 | |
| module.exports = isComponentOf;
 |