UNPKG

prejss-postcss-parser

Version:

PreJSS Parser based on PostCSS and plugins

48 lines (38 loc) 1.49 kB
'use strict'; 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 */