UNPKG

exhibit-plugin-postcss

Version:

Runs CSS files through your choice of postcss plugins.

51 lines (35 loc) 4.15 kB
'use strict'; 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