/
TON618OFF
/
FinalPWHTML
Обзор
Документация
Войти
/
TON618OFF
/
FinalPWHTML
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/postcss-normalize-charset/src/index.js
56 строк
1 KB
TON618OFF
не ну это ваще
23 июн 2024, 00:30
23 июн 2024, 00:30
e27ae20
Код
Авторство
О чём код?
'use strict'; const charset = 'charset'; // eslint-disable-next-line no-control-regex const nonAscii = /[^\x00-\x7F]/; /** * @typedef {{add?: boolean}} Options */ /** * @type {import('postcss').PluginCreator<Options>} * @param {Options} opts * @return {import('postcss').Plugin} */ function pluginCreator(opts = {}) { return { postcssPlugin: 'postcss-normalize-' + charset, OnceExit(css, { AtRule }) { /** @type {import('postcss').AtRule | undefined} */ let charsetRule; /** @type {import('postcss').Node | undefined} */ 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; module.exports = pluginCreator;