| 'use strict'; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| |
| var _postcss = require('postcss'); |
| |
| var _postcss2 = _interopRequireDefault(_postcss); |
| |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| |
| let charset = 'charset'; |
| |
| exports.default = _postcss2.default.plugin('postcss-normalize-' + charset, (opts = {}) => { |
| return css => { |
| let charsetRule; |
| let nonAsciiNode; |
| let nonAscii = /[^\x00-\x7F]/; |
| |
| css.walk(node => { |
| if (node.type === 'atrule' && node.name === charset) { |
| if (!charsetRule) { |
| charsetRule = node; |
| } |
| node.remove(); |
| } else if (!nonAsciiNode && node.parent === css && nonAscii.test(node)) { |
| nonAsciiNode = node; |
| } |
| }); |
| |
| if (nonAsciiNode) { |
| if (!charsetRule && opts.add !== false) { |
| charsetRule = _postcss2.default.atRule({ |
| name: charset, |
| params: '"utf-8"' |
| }); |
| } |
| if (charsetRule) { |
| charsetRule.source = nonAsciiNode.source; |
| css.prepend(charsetRule); |
| } |
| } |
| }; |
| }); |
| module.exports = exports['default']; |