var compactable = require('../compactable'); function isComponentOf(property1, property2, shallow) { return ( isDirectComponentOf(property1, property2) || (!shallow && !!compactable[property1.name].shorthandComponents && isSubComponentOf(property1, property2)) ); } function isDirectComponentOf(property1, property2) { var descriptor = compactable[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;