"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; const charset = 'charset'; // eslint-disable-next-line no-control-regex const nonAscii = /[^\x00-\x7F]/; function pluginCreator(opts = {}) { return { postcssPlugin: 'postcss-normalize-' + charset, OnceExit(css, { AtRule }) { let charsetRule; let nonAsciiNode; 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.toString())) { nonAsciiNode = node; } }); if (nonAsciiNode) { if (!charsetRule && opts.add !== false) { charsetRule = new AtRule({ name: charset, params: '"utf-8"' }); } if (charsetRule) { charsetRule.source = nonAsciiNode.source; css.prepend(charsetRule); } } } }; } pluginCreator.postcss = true; var _default = pluginCreator; exports.default = _default; module.exports = exports.default;