prejss-postcss-parser
Version:
PreJSS Parser based on PostCSS and plugins
48 lines (38 loc) • 1.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _postcssJs = require('postcss-js');
var _postcssJs2 = _interopRequireDefault(_postcssJs);
var _deasync = require('deasync');
var _deasync2 = _interopRequireDefault(_deasync);
var _processParsing = require('../common/process-parsing');
var _processParsing2 = _interopRequireDefault(_processParsing);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Parse specified Tagged Template Strings with CSS and expressions
*
* @param {String} raw source
* @param {Object} processOptions from api
* @returns {Object} JSS object
*/
exports.default = (0, _deasync2.default)(function (rawStyles) {
var processOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var cb = arguments[2];
(0, _processParsing2.default)(rawStyles, processOptions).then(function (result) {
return _postcssJs2.default.objectify(result.root);
}).then(function (result) {
return cb(null, result);
}).catch(function (error) {
return cb(error);
});
}); /**
* @see https://gist.github.com/muratgozel/e3ca2c08f74c9cb6eb7314e3088edb77#gistcomment-1802108
*
* At the moment PostCSS async parser is using.
*
* To get it as sync function deasync package has been used.
* Be careful! It blocks event loop. See more details in deasync README.
*
* @todo Find a way to do not use deasync
*/
;