exhibit-plugin-postcss
Version:
Runs CSS files through your choice of postcss plugins.
51 lines (35 loc) • 4.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _exhibit = require('exhibit');
var _lodash = require('lodash');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const defaults = {
match: '**/*.css',
map: true
};
exports.default = (...plugins) => {
let _options;
if ((0, _lodash.isPlainObject)(plugins[plugins.length - 1])) {
_options = plugins.pop();
}
const options = _extends({}, defaults, _options);
const match = (0, _exhibit.createMatcher)(options.match);
const processor = (0, _postcss2.default)(plugins);
return (0, _exhibit.cache)(async (content, name) => {
if (!match(name)) return content;
return processor.process(content.toString(), options).then(result => {
for (const warning of result.warnings()) {
console.warn(_chalk2.default.yellow(`exhibit-plugin-postcss: warning for ${name}\n `) + warning.toString());
}
return result.css;
});
});
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4aGliaXQtcGx1Z2luLXBvc3Rjc3MvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdHMiLCJtYXRjaCIsIm1hcCIsInBsdWdpbnMiLCJfb3B0aW9ucyIsImxlbmd0aCIsInBvcCIsIm9wdGlvbnMiLCJwcm9jZXNzb3IiLCJjb250ZW50IiwibmFtZSIsInByb2Nlc3MiLCJ0b1N0cmluZyIsInRoZW4iLCJyZXN1bHQiLCJ3YXJuaW5nIiwid2FybmluZ3MiLCJjb25zb2xlIiwid2FybiIsInllbGxvdyIsImNzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxXQUFXO0FBQ2ZDLFNBQU8sVUFEUTtBQUVmQyxPQUFLO0FBRlUsQ0FBakI7O2tCQUtlLENBQUMsR0FBR0MsT0FBSixLQUFnQjtBQUM3QixNQUFJQyxRQUFKO0FBQ0EsTUFBSSwyQkFBY0QsUUFBUUEsUUFBUUUsTUFBUixHQUFpQixDQUF6QixDQUFkLENBQUosRUFBZ0Q7QUFDOUNELGVBQVdELFFBQVFHLEdBQVIsRUFBWDtBQUNEOztBQUVELFFBQU1DLHVCQUFlUCxRQUFmLEVBQTRCSSxRQUE1QixDQUFOO0FBQ0EsUUFBTUgsUUFBUSw0QkFBY00sUUFBUU4sS0FBdEIsQ0FBZDs7QUFFQSxRQUFNTyxZQUFZLHVCQUFRTCxPQUFSLENBQWxCOztBQUVBLFNBQU8sb0JBQU0sT0FBT00sT0FBUCxFQUFnQkMsSUFBaEIsS0FBeUI7QUFDcEMsUUFBSSxDQUFDVCxNQUFNUyxJQUFOLENBQUwsRUFBa0IsT0FBT0QsT0FBUDs7QUFFbEIsV0FBT0QsVUFDSkcsT0FESSxDQUNJRixRQUFRRyxRQUFSLEVBREosRUFDd0JMLE9BRHhCLEVBRUpNLElBRkksQ0FFRUMsTUFBRCxJQUFZO0FBQ2hCLFdBQUssTUFBTUMsT0FBWCxJQUFzQkQsT0FBT0UsUUFBUCxFQUF0QixFQUF5QztBQUN2Q0MsZ0JBQVFDLElBQVIsQ0FDRSxnQkFBTUMsTUFBTixDQUFjLHVDQUFzQ1QsSUFBSyxNQUF6RCxJQUNBSyxRQUFRSCxRQUFSLEVBRkY7QUFJRDs7QUFFRCxhQUFPRSxPQUFPTSxHQUFkO0FBQ0QsS0FYSSxDQUFQO0FBWUQsR0FmTSxDQUFQO0FBZ0JELEMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHBvc3Rjc3MgZnJvbSAncG9zdGNzcyc7XG5pbXBvcnQgeyBjYWNoZSwgY3JlYXRlTWF0Y2hlciB9IGZyb20gJ2V4aGliaXQnO1xuaW1wb3J0IHsgaXNQbGFpbk9iamVjdCB9IGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IGRlZmF1bHRzID0ge1xuICBtYXRjaDogJyoqLyouY3NzJyxcbiAgbWFwOiB0cnVlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgKC4uLnBsdWdpbnMpID0+IHtcbiAgbGV0IF9vcHRpb25zO1xuICBpZiAoaXNQbGFpbk9iamVjdChwbHVnaW5zW3BsdWdpbnMubGVuZ3RoIC0gMV0pKSB7XG4gICAgX29wdGlvbnMgPSBwbHVnaW5zLnBvcCgpO1xuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLl9vcHRpb25zIH07XG4gIGNvbnN0IG1hdGNoID0gY3JlYXRlTWF0Y2hlcihvcHRpb25zLm1hdGNoKTtcblxuICBjb25zdCBwcm9jZXNzb3IgPSBwb3N0Y3NzKHBsdWdpbnMpO1xuXG4gIHJldHVybiBjYWNoZShhc3luYyAoY29udGVudCwgbmFtZSkgPT4ge1xuICAgIGlmICghbWF0Y2gobmFtZSkpIHJldHVybiBjb250ZW50O1xuXG4gICAgcmV0dXJuIHByb2Nlc3NvclxuICAgICAgLnByb2Nlc3MoY29udGVudC50b1N0cmluZygpLCBvcHRpb25zKVxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IHdhcm5pbmcgb2YgcmVzdWx0Lndhcm5pbmdzKCkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBjaGFsay55ZWxsb3coYGV4aGliaXQtcGx1Z2luLXBvc3Rjc3M6IHdhcm5pbmcgZm9yICR7bmFtZX1cXG4gIGApICtcbiAgICAgICAgICAgIHdhcm5pbmcudG9TdHJpbmcoKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdC5jc3M7XG4gICAgICB9KTtcbiAgfSk7XG59O1xuIl19