understyle
Version:
Functional style utilities for authoring JavaScript style objects
64 lines (51 loc) • 1.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
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); } }
var hyphenate = exports.hyphenate = function hyphenate(str) {
return str.replace(/([A-Z])/g, function (g) {
return '-' + g.toLowerCase();
});
};
var objToArr = exports.objToArr = function objToArr(obj) {
return Object.keys(obj).map(function (key) {
return { key: key, value: obj[key] };
});
};
var flattenArray = exports.flattenArray = function flattenArray() {
var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var b = arguments[1];
if (Array.isArray(b)) {
return [].concat(_toConsumableArray(a), _toConsumableArray(b)).reduce(flattenArray, []);
}
return [].concat(_toConsumableArray(a), [b]);
};
var toObj = exports.toObj = function toObj() {
var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var b = arguments[1];
a[b.key] = b.value;
return a;
};
var flattenColors = exports.flattenColors = function flattenColors(colors) {
return objToArr(colors).map(colorKeyMapper).reduce(flattenArray, []).reduce(toObj, {});
};
var colorKeyMapper = exports.colorKeyMapper = function colorKeyMapper(_ref) {
var key = _ref.key,
value = _ref.value;
if (Array.isArray(value)) {
var scale = value.map(function (val, i) {
return {
key: '' + key + i,
value: val
};
});
return [{
key: key,
value: scale[5].value
}].concat(_toConsumableArray(scale));
}
return {
key: key, value: value
};
};
;