prejss
Version:
Get the power of PostCSS with plugins in your JSS styles. 🎨 Just put CSS into JS and get it as JSS object.
44 lines (30 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extractExpressions = require('./extract-expressions');
var _extractExpressions2 = _interopRequireDefault(_extractExpressions);
var _restoreExpressions = require('./restore-expressions');
var _restoreExpressions2 = _interopRequireDefault(_restoreExpressions);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
exports.default = function (_ref) {
var prepare = _ref.prepare,
parse = _ref.parse,
finalize = _ref.finalize,
options = _objectWithoutProperties(_ref, ['prepare', 'parse', 'finalize']);
var extractFunc = options.extractExpressions || _extractExpressions2.default;
var restoreFunc = options.restoreExpressions || _restoreExpressions2.default;
return function (chunks) {
for (var _len = arguments.length, variables = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
variables[_key - 1] = arguments[_key];
}
var _extractFunc = extractFunc.apply(undefined, [chunks].concat(variables)),
rawStyles = _extractFunc.rawStyles,
expressions = _extractFunc.expressions;
var prepared = typeof prepare === 'function' ? prepare(rawStyles) : rawStyles;
var parsed = parse(prepared); // throw error if parse() is not defined properly
var finalParsed = restoreFunc(parsed, expressions);
return typeof finalize === 'function' ? finalize(finalParsed) : finalParsed;
};
};