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.
22 lines
691 B
22 lines
691 B
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;
|
|
|