Skip to content

Commit a876c47

Browse files
committed
Refactoring to use reduce()
1 parent cd5d6f0 commit a876c47

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

index.js

+23-16
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,37 @@ export default (selector, conditions, stylesheet) => {
2626
}
2727
}
2828

29-
let generatedStyles = ''
30-
let count = 0
29+
return Array.from(document.querySelectorAll(selector))
3130

32-
document.querySelectorAll(selector).forEach(tag => {
31+
.reduce((styles, tag, count) => {
3332

34-
const identifier = (selector
35-
+ Object.keys(conditions)
36-
+ Object.values(conditions)).replace(/\W/g, '')
33+
const identifier = (
34+
selector
35+
+ Object.keys(conditions)
36+
+ Object.values(conditions)
37+
).replace(/\W/g, '')
3738

38-
if (Object.entries(conditions)
39-
.every(test => features[test[0]](tag, test[1]))) {
39+
if (
40+
Object.entries(conditions).every(test =>
41+
features[test[0]](tag, test[1])
42+
)
43+
) {
4044

41-
tag.setAttribute(`data-${identifier}`, count)
42-
generatedStyles += stylesheet.replace(/:self|\$this/g, `[data-${identifier}="${count}"]`)
43-
count++
45+
tag.setAttribute(`data-${identifier}`, count)
46+
styles += stylesheet.replace(
47+
/:self|\$this/g,
48+
`[data-${identifier}="${count}"]`
49+
)
50+
count++
4451

45-
} else {
52+
} else {
4653

47-
tag.setAttribute(`data-${identifier}`, '')
54+
tag.setAttribute(`data-${identifier}`, '')
4855

49-
}
56+
}
5057

51-
})
58+
return styles
5259

53-
return generatedStyles
60+
}, '')
5461

5562
}

0 commit comments

Comments
 (0)