layeshifter-fela
Version:
State-Driven Styling in JavaScript
42 lines (30 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = combineRules;
var _assignStyle = require('css-in-js-utils/lib/assignStyle');
var _assignStyle2 = _interopRequireDefault(_assignStyle);
var _arrayReduce = require('fast-loops/lib/arrayReduce');
var _arrayReduce2 = _interopRequireDefault(_arrayReduce);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function resolveRule(rule, props, renderer) {
if (Array.isArray(rule)) {
return resolveRule(combineRules.apply(undefined, _toConsumableArray(rule)), props, renderer);
}
if (typeof rule === 'function') {
return rule(props, renderer);
}
return rule;
}
function combineRules() {
for (var _len = arguments.length, rules = Array(_len), _key = 0; _key < _len; _key++) {
rules[_key] = arguments[_key];
}
return function (props, renderer) {
return (0, _arrayReduce2.default)(rules, function (style, rule) {
return (0, _assignStyle2.default)(style, resolveRule(rule, props, renderer));
}, {});
};
}