MCPcopy
hub / github.com/postcss/autoprefixer / save

Method save

lib/value.js:10–59  ·  view source on GitHub ↗

* Clone decl for each prefixed values

(prefixes, decl)

Source from the content-addressed store, hash-verified

8 * Clone decl for each prefixed values
9 */
10 static save(prefixes, decl) {
11 let prop = decl.prop
12 let result = []
13
14 for (let prefix in decl._autoprefixerValues) {
15 let value = decl._autoprefixerValues[prefix]
16
17 if (value === decl.value) {
18 continue
19 }
20
21 let item
22 let propPrefix = vendor.prefix(prop)
23
24 if (propPrefix === '-pie-') {
25 continue
26 }
27
28 if (propPrefix === prefix) {
29 item = decl.value = value
30 result.push(item)
31 continue
32 }
33
34 let prefixed = prefixes.prefixed(prop, prefix)
35 let rule = decl.parent
36
37 if (!rule.every(i => i.prop !== prefixed)) {
38 result.push(item)
39 continue
40 }
41
42 let trimmed = value.replace(/\s+/, ' ')
43 let already = rule.some(
44 i => i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed
45 )
46
47 if (already) {
48 result.push(item)
49 continue
50 }
51
52 let cloned = this.clone(decl, { value })
53 item = decl.parent.insertBefore(decl, cloned)
54
55 result.push(item)
56 }
57
58 return result
59 }
60
61 /**
62 * Save values with next prefixed token

Callers 3

addMethod · 0.80
prefixedMethod · 0.80
value.test.jsFile · 0.80

Calls 4

prefixMethod · 0.80
prefixedMethod · 0.45
replaceMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected