tailwindcss/jit/index.js
2021-04-02 14:34:50 -04:00

62 lines
1.8 KiB
JavaScript

const postcss = require('postcss')
const evaluateTailwindFunctions = require('../lib/lib/evaluateTailwindFunctions').default
const substituteScreenAtRules = require('../lib/lib/substituteScreenAtRules').default
const rewriteTailwindImports = require('./lib/rewriteTailwindImports')
const setupContext = require('./lib/setupContext')
const removeLayerAtRules = require('./lib/removeLayerAtRules')
const expandTailwindAtRules = require('./lib/expandTailwindAtRules')
const expandApplyAtRules = require('./lib/expandApplyAtRules')
const collapseAdjacentRules = require('./lib/collapseAdjacentRules')
const { env } = require('./lib/sharedState')
module.exports = (configOrPath = {}) => {
return [
env.DEBUG &&
function (root) {
console.log('\n')
console.time('JIT TOTAL')
return root
},
function (root, result) {
function registerDependency(fileName, type = 'dependency') {
result.messages.push({
type,
plugin: 'tailwindcss-jit',
parent: result.opts.from,
file: fileName,
})
}
rewriteTailwindImports(root)
let context = setupContext(configOrPath)(result, root)
if (!env.TAILWIND_DISABLE_TOUCH) {
if (context.configPath !== null) {
registerDependency(context.configPath)
}
}
return postcss([
removeLayerAtRules(context),
expandTailwindAtRules(context, registerDependency),
expandApplyAtRules(context),
evaluateTailwindFunctions(context.tailwindConfig),
substituteScreenAtRules(context.tailwindConfig),
collapseAdjacentRules(context),
]).process(root, { from: undefined })
},
env.DEBUG &&
function (root) {
console.timeEnd('JIT TOTAL')
console.log('\n')
return root
},
].filter(Boolean)
}
module.exports.postcss = true