Skip to content

Commit 4d83ef2

Browse files
committed
use Tailwind's context.sortClassList(classes)
1 parent 2f48911 commit 4d83ef2

File tree

1 file changed

+2
-26
lines changed

1 file changed

+2
-26
lines changed

src/index.js

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import prettierParserMeriyah from 'prettier/parser-meriyah'
77
import prettierParserFlow from 'prettier/parser-flow'
88
import prettierParserTypescript from 'prettier/parser-typescript'
99
import { createContext as createContextFallback } from 'tailwindcss/lib/lib/setupContextUtils'
10-
import { generateRules as generateRulesFallback } from 'tailwindcss/lib/lib/generateRules'
1110
import resolveConfigFallback from 'tailwindcss/resolveConfig'
1211
import * as recast from 'recast'
1312
import * as astTypes from 'ast-types'
@@ -59,25 +58,7 @@ function sortClasses(
5958
suffix = `${whitespace.pop() ?? ''}${classes.pop() ?? ''}`
6059
}
6160

62-
let classNamesWithOrder = []
63-
for (let className of classes) {
64-
let order =
65-
env
66-
.generateRules(new Set([className]), env.context)
67-
.sort(([a], [z]) => bigSign(z - a))[0]?.[0] ?? null
68-
classNamesWithOrder.push([className, order])
69-
}
70-
71-
classes = classNamesWithOrder
72-
.sort(([, a], [, z]) => {
73-
if (a === z) return 0
74-
// if (a === null) return options.unknownClassPosition === 'start' ? -1 : 1
75-
// if (z === null) return options.unknownClassPosition === 'start' ? 1 : -1
76-
if (a === null) return -1
77-
if (z === null) return 1
78-
return bigSign(a - z)
79-
})
80-
.map(([className]) => className)
61+
classes = env.context.sortClassList(classes)
8162

8263
for (let i = 0; i < classes.length; i++) {
8364
result += `${classes[i]}${whitespace[i] ?? ''}`
@@ -95,7 +76,6 @@ function createParser(original, transform) {
9576
let tailwindConfig = {}
9677
let resolveConfig = resolveConfigFallback
9778
let createContext = createContextFallback
98-
let generateRules = generateRulesFallback
9979

10080
let prettierConfigPath = prettier.resolveConfigFile.sync(options.filepath)
10181
let baseDir = prettierConfigPath
@@ -123,10 +103,6 @@ function createParser(original, transform) {
123103
baseDir,
124104
'tailwindcss/lib/lib/setupContextUtils'
125105
).createContext
126-
generateRules = requireFrom(
127-
baseDir,
128-
'tailwindcss/lib/lib/generateRules'
129-
).generateRules
130106
} catch {}
131107

132108
// suppress "empty content" warning
@@ -143,7 +119,7 @@ function createParser(original, transform) {
143119
contextMap.set(tailwindConfigPath, { context, hash })
144120
}
145121

146-
transform(ast, { env: { context, generateRules } })
122+
transform(ast, { env: { context } })
147123
return ast
148124
},
149125
}

0 commit comments

Comments
 (0)