notes/node_modules/stylehacks/dist/index.js

128 lines
3.9 KiB
JavaScript
Executable File

'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssReporter = require('postcss-reporter');
var _postcssReporter2 = _interopRequireDefault(_postcssReporter);
var _browserslist = require('browserslist');
var _browserslist2 = _interopRequireDefault(_browserslist);
var _formatter = require('./formatter');
var _formatter2 = _interopRequireDefault(_formatter);
var _bodyEmpty = require('./plugins/bodyEmpty');
var _bodyEmpty2 = _interopRequireDefault(_bodyEmpty);
var _htmlCombinatorCommentBody = require('./plugins/htmlCombinatorCommentBody');
var _htmlCombinatorCommentBody2 = _interopRequireDefault(_htmlCombinatorCommentBody);
var _htmlFirstChild = require('./plugins/htmlFirstChild');
var _htmlFirstChild2 = _interopRequireDefault(_htmlFirstChild);
var _important = require('./plugins/important');
var _important2 = _interopRequireDefault(_important);
var _leadingStar = require('./plugins/leadingStar');
var _leadingStar2 = _interopRequireDefault(_leadingStar);
var _leadingUnderscore = require('./plugins/leadingUnderscore');
var _leadingUnderscore2 = _interopRequireDefault(_leadingUnderscore);
var _mediaSlash = require('./plugins/mediaSlash0');
var _mediaSlash2 = _interopRequireDefault(_mediaSlash);
var _mediaSlash3 = require('./plugins/mediaSlash9');
var _mediaSlash4 = _interopRequireDefault(_mediaSlash3);
var _slash = require('./plugins/slash9');
var _slash2 = _interopRequireDefault(_slash);
var _starHtml = require('./plugins/starHtml');
var _starHtml2 = _interopRequireDefault(_starHtml);
var _trailingSlashComma = require('./plugins/trailingSlashComma');
var _trailingSlashComma2 = _interopRequireDefault(_trailingSlashComma);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var plugins = [_bodyEmpty2.default, _htmlCombinatorCommentBody2.default, _htmlFirstChild2.default, _important2.default, _leadingStar2.default, _leadingUnderscore2.default, _mediaSlash2.default, _mediaSlash4.default, _slash2.default, _starHtml2.default, _trailingSlashComma2.default];
// plugins
var stylehacks = _postcss2.default.plugin('stylehacks', function () {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var b = opts.browsers;
var browsers = b instanceof Array ? b : (0, _browserslist2.default)(b);
return function (css, result) {
var processors = plugins.reduce(function (list, Plugin) {
var hack = new Plugin(result);
var applied = browsers.some(function (browser) {
return hack.targets.some(function (target) {
return browser === target;
});
});
if (applied) {
return list;
}
return [].concat(list, [hack]);
}, []);
css.walk(function (node) {
processors.forEach(function (proc) {
if (!~proc.nodeTypes.indexOf(node.type)) {
return;
}
if (opts.lint) {
return proc.detectAndWarn(node);
}
return proc.detectAndResolve(node);
});
});
};
});
stylehacks.detect = function (node) {
var hacked = plugins.some(function (Plugin) {
var hack = new Plugin();
return hack.any(node);
});
return hacked;
};
stylehacks.process = function (css) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
opts.reporter = {};
opts.reporter.formatter = _formatter2.default;
opts.map = opts.map || (opts.sourcemap ? true : null);
var processor = (0, _postcss2.default)([stylehacks(opts)]);
if (opts.lint && !opts.silent) {
processor.use((0, _postcssReporter2.default)(opts.reporter));
}
return processor.process(css, opts);
};
exports.default = stylehacks;
module.exports = exports['default'];