Skip to content

Commit defff4a

Browse files
authored
Performance gains on no-custom-classname and no-contradicting-classname (#42)
* feat: move file parsing & group generation out of hot code path * feat: move group generation out of hot code path
1 parent ece7948 commit defff4a

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

lib/rules/no-contradicting-classname.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ module.exports = {
6161
// Helpers
6262
//----------------------------------------------------------------------
6363

64+
// Init assets before sorting
65+
const groups = groupUtil.getGroups(defaultGroups, mergedConfig);
66+
6467
/**
6568
* Parse the classnames and report found conflicts
6669
* @param {Array} classNames
@@ -69,7 +72,6 @@ module.exports = {
6972
const parseForContradictingClassNames = (classNames, node) => {
7073
classNames = attrUtil.sanitizeClassnames(classNames);
7174
// Init assets before sorting
72-
const groups = groupUtil.getGroups(defaultGroups, mergedConfig);
7375
const sorted = groupUtil.initGroupSlots(groups);
7476

7577
// Move each classname inside its dedicated group

lib/rules/no-custom-classname.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,17 @@ module.exports = {
7474
// Helpers
7575
//----------------------------------------------------------------------
7676

77+
// Init assets before sorting
78+
const groups = groupUtil.getGroups(defaultGroups, mergedConfig);
79+
const classnamesFromFiles = getClassnamesFromCSS(cssFiles);
80+
7781
/**
7882
* Parse the classnames and report found conflicts
7983
* @param {Array} classNames
8084
* @param {ASTNode} node
8185
*/
8286
const parseForCustomClassNames = (classNames, node) => {
8387
classNames = attrUtil.sanitizeClassnames(classNames);
84-
// Init assets before sorting
85-
const groups = groupUtil.getGroups(defaultGroups, mergedConfig);
86-
const classnamesFromFiles = getClassnamesFromCSS(cssFiles);
8788

8889
classNames.forEach((className) => {
8990
const idx = groupUtil.getGroupIndex(className, groups, mergedConfig.separator);

0 commit comments

Comments
 (0)