UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

116 lines (91 loc) 9.38 kB
'use strict'; var _getIterator = require('babel-runtime/core-js/get-iterator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _cssValue = require('css-value'); var _cssValue2 = _interopRequireDefault(_cssValue); var _rgb2hex = require('rgb2hex'); var _rgb2hex2 = _interopRequireDefault(_rgb2hex); var _sanitize = require('./sanitize'); var _sanitize2 = _interopRequireDefault(_sanitize); var parse = function parse(cssPropertyValue, cssProperty) { if (!cssPropertyValue || !cssPropertyValue.value) { return null; } var parsedValue = { property: cssProperty, value: cssPropertyValue.value.toLowerCase().trim() }; if (parsedValue.value.indexOf('rgb') === 0) { /** * remove whitespaces in rgb values */ parsedValue.value = parsedValue.value.replace(/\s/g, ''); /** * parse color values */ var color = parsedValue.value; parsedValue.parsed = (0, _rgb2hex2['default'])(parsedValue.value); parsedValue.parsed.type = 'color'; parsedValue.parsed[/[rgba]+/g.exec(color)[0]] = color; } else if (parsedValue.property === 'font-family') { var font = (0, _cssValue2['default'])(cssPropertyValue.value); var string = parsedValue.value; var value = cssPropertyValue.value.split(/,/).map(_sanitize2['default'].css); parsedValue.value = _sanitize2['default'].css(font[0].value || font[0].string); parsedValue.parsed = { value: value, type: 'font', string: string }; } else { /** * parse other css properties */ try { parsedValue.parsed = (0, _cssValue2['default'])(cssPropertyValue.value); if (parsedValue.parsed.length === 1) { parsedValue.parsed = parsedValue.parsed[0]; } if (parsedValue.parsed.type && parsedValue.parsed.type === 'number' && parsedValue.parsed.unit === '') { parsedValue.value = parsedValue.parsed.value; } } catch (e) { // TODO improve css-parse lib to handle properties like // `-webkit-animation-timing-function : cubic-bezier(0.25, 0.1, 0.25, 1) } } return parsedValue; }; var parseCSS = function parseCSS(response, cssProperty) { var parsedCSS = []; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _getIterator(response), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var res = _step.value; parsedCSS.push(parse(res, cssProperty)); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } if (parsedCSS.length === 1) { return parsedCSS[0]; } else if (parsedCSS.length === 0) { return null; } return parsedCSS; }; exports['default'] = parseCSS; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oZWxwZXJzL3BhcnNlQ1NTLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7d0JBQXFCLFdBQVc7Ozs7dUJBQ1osU0FBUzs7Ozt3QkFFUixZQUFZOzs7O0FBRWpDLElBQUksS0FBSyxHQUFHLFNBQVIsS0FBSyxDQUFhLGdCQUFnQixFQUFFLFdBQVcsRUFBRTtBQUNqRCxRQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7QUFDOUMsZUFBTyxJQUFJLENBQUE7S0FDZDs7QUFFRCxRQUFJLFdBQVcsR0FBRztBQUNkLGdCQUFRLEVBQUUsV0FBVztBQUNyQixhQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRTtLQUNyRCxDQUFBOztBQUVELFFBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFOzs7O0FBSXhDLG1CQUFXLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTs7Ozs7QUFLeEQsWUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQTtBQUM3QixtQkFBVyxDQUFDLE1BQU0sR0FBRywwQkFBUSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDL0MsbUJBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQTtBQUNqQyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFBO0tBQ3hELE1BQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxLQUFLLGFBQWEsRUFBRTtBQUMvQyxZQUFJLElBQUksR0FBRywyQkFBUyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMzQyxZQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFBO0FBQzlCLFlBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFTLEdBQUcsQ0FBQyxDQUFBOztBQUUvRCxtQkFBVyxDQUFDLEtBQUssR0FBRyxzQkFBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDakUsbUJBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUwsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFOLE1BQU0sRUFBRSxDQUFBO0tBQ3ZELE1BQU07Ozs7QUFJSCxZQUFJO0FBQ0EsdUJBQVcsQ0FBQyxNQUFNLEdBQUcsMkJBQVMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUE7O0FBRXJELGdCQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNqQywyQkFBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQzdDOztBQUVELGdCQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7QUFDbkcsMkJBQVcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7YUFDL0M7U0FDSixDQUFDLE9BQU8sQ0FBQyxFQUFFOzs7U0FHWDtLQUNKOztBQUVELFdBQU8sV0FBVyxDQUFBO0NBQ3JCLENBQUE7O0FBRUQsSUFBSSxRQUFRLEdBQUcsU0FBWCxRQUFRLENBQWEsUUFBUSxFQUFFLFdBQVcsRUFBRTtBQUM1QyxRQUFJLFNBQVMsR0FBRyxFQUFFLENBQUE7Ozs7Ozs7QUFFbEIsMENBQWdCLFFBQVEsNEdBQUU7Z0JBQWpCLEdBQUc7O0FBQ1IscUJBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO1NBQzFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUQsUUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUN4QixlQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUN0QixNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDL0IsZUFBTyxJQUFJLENBQUE7S0FDZDs7QUFFRCxXQUFPLFNBQVMsQ0FBQTtDQUNuQixDQUFBOztxQkFFYyxRQUFRIiwiZmlsZSI6InBhcnNlQ1NTLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNzc1ZhbHVlIGZyb20gJ2Nzcy12YWx1ZSdcbmltcG9ydCByZ2IyaGV4IGZyb20gJ3JnYjJoZXgnXG5cbmltcG9ydCBzYW5pdGl6ZSBmcm9tICcuL3Nhbml0aXplJ1xuXG5sZXQgcGFyc2UgPSBmdW5jdGlvbiAoY3NzUHJvcGVydHlWYWx1ZSwgY3NzUHJvcGVydHkpIHtcbiAgICBpZiAoIWNzc1Byb3BlcnR5VmFsdWUgfHwgIWNzc1Byb3BlcnR5VmFsdWUudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBsZXQgcGFyc2VkVmFsdWUgPSB7XG4gICAgICAgIHByb3BlcnR5OiBjc3NQcm9wZXJ0eSxcbiAgICAgICAgdmFsdWU6IGNzc1Byb3BlcnR5VmFsdWUudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKClcbiAgICB9XG5cbiAgICBpZiAocGFyc2VkVmFsdWUudmFsdWUuaW5kZXhPZigncmdiJykgPT09IDApIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHJlbW92ZSB3aGl0ZXNwYWNlcyBpbiByZ2IgdmFsdWVzXG4gICAgICAgICAqL1xuICAgICAgICBwYXJzZWRWYWx1ZS52YWx1ZSA9IHBhcnNlZFZhbHVlLnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJylcblxuICAgICAgICAvKipcbiAgICAgICAgICogcGFyc2UgY29sb3IgdmFsdWVzXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgY29sb3IgPSBwYXJzZWRWYWx1ZS52YWx1ZVxuICAgICAgICBwYXJzZWRWYWx1ZS5wYXJzZWQgPSByZ2IyaGV4KHBhcnNlZFZhbHVlLnZhbHVlKVxuICAgICAgICBwYXJzZWRWYWx1ZS5wYXJzZWQudHlwZSA9ICdjb2xvcidcbiAgICAgICAgcGFyc2VkVmFsdWUucGFyc2VkWy9bcmdiYV0rL2cuZXhlYyhjb2xvcilbMF1dID0gY29sb3JcbiAgICB9IGVsc2UgaWYgKHBhcnNlZFZhbHVlLnByb3BlcnR5ID09PSAnZm9udC1mYW1pbHknKSB7XG4gICAgICAgIGxldCBmb250ID0gY3NzVmFsdWUoY3NzUHJvcGVydHlWYWx1ZS52YWx1ZSlcbiAgICAgICAgbGV0IHN0cmluZyA9IHBhcnNlZFZhbHVlLnZhbHVlXG4gICAgICAgIGxldCB2YWx1ZSA9IGNzc1Byb3BlcnR5VmFsdWUudmFsdWUuc3BsaXQoLywvKS5tYXAoc2FuaXRpemUuY3NzKVxuXG4gICAgICAgIHBhcnNlZFZhbHVlLnZhbHVlID0gc2FuaXRpemUuY3NzKGZvbnRbMF0udmFsdWUgfHwgZm9udFswXS5zdHJpbmcpXG4gICAgICAgIHBhcnNlZFZhbHVlLnBhcnNlZCA9IHsgdmFsdWUsIHR5cGU6ICdmb250Jywgc3RyaW5nIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogcGFyc2Ugb3RoZXIgY3NzIHByb3BlcnRpZXNcbiAgICAgICAgICovXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwYXJzZWRWYWx1ZS5wYXJzZWQgPSBjc3NWYWx1ZShjc3NQcm9wZXJ0eVZhbHVlLnZhbHVlKVxuXG4gICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUucGFyc2VkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlLnBhcnNlZCA9IHBhcnNlZFZhbHVlLnBhcnNlZFswXVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUucGFyc2VkLnR5cGUgJiYgcGFyc2VkVmFsdWUucGFyc2VkLnR5cGUgPT09ICdudW1iZXInICYmIHBhcnNlZFZhbHVlLnBhcnNlZC51bml0ID09PSAnJykge1xuICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlLnZhbHVlID0gcGFyc2VkVmFsdWUucGFyc2VkLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE8gaW1wcm92ZSBjc3MtcGFyc2UgbGliIHRvIGhhbmRsZSBwcm9wZXJ0aWVzIGxpa2VcbiAgICAgICAgICAgIC8vIGAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gOiAgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRWYWx1ZVxufVxuXG5sZXQgcGFyc2VDU1MgPSBmdW5jdGlvbiAocmVzcG9uc2UsIGNzc1Byb3BlcnR5KSB7XG4gICAgbGV0IHBhcnNlZENTUyA9IFtdXG5cbiAgICBmb3IgKGxldCByZXMgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgcGFyc2VkQ1NTLnB1c2gocGFyc2UocmVzLCBjc3NQcm9wZXJ0eSkpXG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZENTUy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlZENTU1swXVxuICAgIH0gZWxzZSBpZiAocGFyc2VkQ1NTLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRDU1Ncbn1cblxuZXhwb3J0IGRlZmF1bHQgcGFyc2VDU1NcbiJdfQ==