import setupTrackingContext from './lib/setupTrackingContext' import processTailwindFeatures from './processTailwindFeatures' import { env } from './lib/sharedState' import { findAtConfigPath } from './lib/findAtConfigPath' module.exports = function tailwindcss(configOrPath) { return { postcssPlugin: 'tailwindcss', plugins: [ env.DEBUG && function (root) { console.log('\n') console.time('JIT TOTAL') return root }, async function (root, result) { // Use the path for the `@config` directive if it exists, otherwise use the // path for the file being processed configOrPath = findAtConfigPath(root, result) ?? configOrPath let context = setupTrackingContext(configOrPath) if (root.type === 'document') { let roots = root.nodes.filter((node) => node.type === 'root') for (const root of roots) { if (root.type === 'root') { await processTailwindFeatures(context)(root, result) } } return } await processTailwindFeatures(context)(root, result) }, env.DEBUG && function (root) { console.timeEnd('JIT TOTAL') console.log('\n') return root }, ].filter(Boolean), } } module.exports.postcss = true