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;
|