Skip to content

Commit 25c8000

Browse files
committed
simplify/cleanup existing plugin utils
We can get rid of this because we drastically simplified the new addVariant API.
1 parent 4cb8137 commit 25c8000

File tree

1 file changed

+1
-135
lines changed

1 file changed

+1
-135
lines changed

src/util/pluginUtils.js

Lines changed: 1 addition & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import selectorParser from 'postcss-selector-parser'
22
import escapeCommas from './escapeCommas'
33
import { withAlphaValue } from './withAlphaVariable'
4-
import isKeyframeRule from './isKeyframeRule'
54
import {
65
normalize,
76
length,
@@ -19,34 +18,10 @@ import {
1918
} from './dataTypes'
2019
import negateValue from './negateValue'
2120

22-
export function applyStateToMarker(selector, marker, state, join) {
23-
let markerIdx = selector.search(new RegExp(`${marker}[:[]`))
24-
25-
if (markerIdx === -1) {
26-
return join(marker + state, selector)
27-
}
28-
29-
let markerSelector = selector.slice(markerIdx, selector.indexOf(' ', markerIdx))
30-
31-
return join(
32-
marker + state + markerSelector.slice(markerIdx + marker.length),
33-
selector.replace(markerSelector, '')
34-
)
35-
}
36-
3721
export function updateAllClasses(selectors, updateClass) {
3822
let parser = selectorParser((selectors) => {
3923
selectors.walkClasses((sel) => {
40-
let updatedClass = updateClass(sel.value, {
41-
withAttr(className, attr) {
42-
sel.parent.insertAfter(sel, selectorParser.attribute({ attribute: attr.slice(1, -1) }))
43-
return className
44-
},
45-
withPseudo(className, pseudo) {
46-
sel.parent.insertAfter(sel, selectorParser.pseudo({ value: pseudo }))
47-
return className
48-
},
49-
})
24+
let updatedClass = updateClass(sel.value)
5025
sel.value = updatedClass
5126
if (sel.raws && sel.raws.value) {
5227
sel.raws.value = escapeCommas(sel.raws.value)
@@ -59,115 +34,6 @@ export function updateAllClasses(selectors, updateClass) {
5934
return result
6035
}
6136

62-
export function updateLastClasses(selectors, updateClass) {
63-
let parser = selectorParser((selectors) => {
64-
selectors.each((sel) => {
65-
let lastClass = sel.filter(({ type }) => type === 'class').pop()
66-
67-
if (lastClass === undefined) {
68-
return
69-
}
70-
71-
let updatedClass = updateClass(lastClass.value, {
72-
withPseudo(className, pseudo) {
73-
lastClass.parent.insertAfter(lastClass, selectorParser.pseudo({ value: `${pseudo}` }))
74-
return className
75-
},
76-
})
77-
lastClass.value = updatedClass
78-
if (lastClass.raws && lastClass.raws.value) {
79-
lastClass.raws.value = escapeCommas(lastClass.raws.value)
80-
}
81-
})
82-
})
83-
let result = parser.processSync(selectors)
84-
85-
return result
86-
}
87-
88-
function splitByNotEscapedCommas(str) {
89-
let chunks = []
90-
let currentChunk = ''
91-
for (let i = 0; i < str.length; i++) {
92-
if (str[i] === ',' && str[i - 1] !== '\\') {
93-
chunks.push(currentChunk)
94-
currentChunk = ''
95-
} else {
96-
currentChunk += str[i]
97-
}
98-
}
99-
chunks.push(currentChunk)
100-
return chunks
101-
}
102-
103-
export function transformAllSelectors(transformSelector, { wrap, withRule } = {}) {
104-
return ({ container }) => {
105-
container.walkRules((rule) => {
106-
if (isKeyframeRule(rule)) {
107-
return rule
108-
}
109-
let transformed = splitByNotEscapedCommas(rule.selector).map(transformSelector).join(',')
110-
rule.selector = transformed
111-
if (withRule) {
112-
withRule(rule)
113-
}
114-
return rule
115-
})
116-
117-
if (wrap) {
118-
let wrapper = wrap()
119-
let nodes = container.nodes
120-
container.removeAll()
121-
wrapper.append(nodes)
122-
container.append(wrapper)
123-
}
124-
}
125-
}
126-
127-
export function transformAllClasses(transformClass, { wrap, withRule } = {}) {
128-
return ({ container }) => {
129-
container.walkRules((rule) => {
130-
let selector = rule.selector
131-
let variantSelector = updateAllClasses(selector, transformClass)
132-
rule.selector = variantSelector
133-
if (withRule) {
134-
withRule(rule)
135-
}
136-
return rule
137-
})
138-
139-
if (wrap) {
140-
let wrapper = wrap()
141-
let nodes = container.nodes
142-
container.removeAll()
143-
wrapper.append(nodes)
144-
container.append(wrapper)
145-
}
146-
}
147-
}
148-
149-
export function transformLastClasses(transformClass, { wrap, withRule } = {}) {
150-
return ({ container }) => {
151-
container.walkRules((rule) => {
152-
let selector = rule.selector
153-
let variantSelector = updateLastClasses(selector, transformClass)
154-
rule.selector = variantSelector
155-
if (withRule) {
156-
withRule(rule)
157-
}
158-
return rule
159-
})
160-
161-
if (wrap) {
162-
let wrapper = wrap()
163-
let nodes = container.nodes
164-
container.removeAll()
165-
wrapper.append(nodes)
166-
container.append(wrapper)
167-
}
168-
}
169-
}
170-
17137
function resolveArbitraryValue(modifier, validate) {
17238
if (!isArbitraryValue(modifier)) {
17339
return undefined

0 commit comments

Comments
 (0)