Nessuna descrizione

processTailwindFeatures.js 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import normalizeTailwindDirectives from './lib/normalizeTailwindDirectives'
  2. import expandTailwindAtRules from './lib/expandTailwindAtRules'
  3. import expandApplyAtRules from './lib/expandApplyAtRules'
  4. import evaluateTailwindFunctions from './lib/evaluateTailwindFunctions'
  5. import substituteScreenAtRules from './lib/substituteScreenAtRules'
  6. import resolveDefaultsAtRules from './lib/resolveDefaultsAtRules'
  7. import collapseAdjacentRules from './lib/collapseAdjacentRules'
  8. import collapseDuplicateDeclarations from './lib/collapseDuplicateDeclarations'
  9. import partitionApplyAtRules from './lib/partitionApplyAtRules'
  10. import detectNesting from './lib/detectNesting'
  11. import { createContext } from './lib/setupContextUtils'
  12. import { issueFlagNotices } from './featureFlags'
  13. export default function processTailwindFeatures(setupContext) {
  14. return function (root, result) {
  15. let { tailwindDirectives, applyDirectives } = normalizeTailwindDirectives(root)
  16. detectNesting()(root, result)
  17. // Partition apply rules that are found in the css
  18. // itself.
  19. partitionApplyAtRules()(root, result)
  20. let context = setupContext({
  21. tailwindDirectives,
  22. applyDirectives,
  23. registerDependency(dependency) {
  24. result.messages.push({
  25. plugin: 'tailwindcss',
  26. parent: result.opts.from,
  27. ...dependency,
  28. })
  29. },
  30. createContext(tailwindConfig, changedContent) {
  31. return createContext(tailwindConfig, changedContent, root)
  32. },
  33. })(root, result)
  34. if (context.tailwindConfig.separator === '-') {
  35. throw new Error(
  36. "The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead."
  37. )
  38. }
  39. issueFlagNotices(context.tailwindConfig)
  40. expandTailwindAtRules(context)(root, result)
  41. // Partition apply rules that are generated by
  42. // addComponents, addUtilities and so on.
  43. partitionApplyAtRules()(root, result)
  44. expandApplyAtRules(context)(root, result)
  45. evaluateTailwindFunctions(context)(root, result)
  46. substituteScreenAtRules(context)(root, result)
  47. resolveDefaultsAtRules(context)(root, result)
  48. collapseAdjacentRules(context)(root, result)
  49. collapseDuplicateDeclarations(context)(root, result)
  50. }
  51. }