/
TON618OFF
/
FinalPWHTML
Обзор
Документация
Войти
/
TON618OFF
/
FinalPWHTML
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/stylehacks/src/index.js
60 строк
1 KB
TON618OFF
не ну это ваще
23 июн 2024, 00:30
23 июн 2024, 00:30
e27ae20
Код
Авторство
О чём код?
'use strict'; const browserslist = require('browserslist'); const plugins = require('./plugins'); /** @typedef {{lint?: boolean}} Options */ /** * @type {import('postcss').PluginCreator<Options>} * @param {Options} opts * @return {import('postcss').Plugin} */ function pluginCreator(opts = {}) { return { postcssPlugin: 'stylehacks', OnceExit(css, { result }) { /** @type {typeof result.opts & browserslist.Options} */ const resultOpts = result.opts || {}; const browsers = browserslist(null, { stats: resultOpts.stats, path: __dirname, env: resultOpts.env, }); /** @type {import('./plugin').Plugin[]} */ const processors = []; for (const Plugin of plugins) { const hack = new Plugin(result); if (!browsers.some((browser) => hack.targets.has(browser))) { processors.push(hack); } } css.walk((node) => { processors.forEach((proc) => { if (!proc.nodeTypes.has(node.type)) { return; } if (opts.lint) { return proc.detectAndWarn(node); } return proc.detectAndResolve(node); }); }); }, }; } /** @type {(node: import('postcss').Node) => boolean} */ pluginCreator.detect = (node) => { return plugins.some((Plugin) => { const hack = new Plugin(); return hack.any(node); }); }; pluginCreator.postcss = true; module.exports = pluginCreator;