Skip to content

Commit bda6c84

Browse files
committed
Use Map to cache generateAppendClassName.
1 parent 6b9c8a4 commit bda6c84

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

src/generateAppendClassName.js

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,26 @@
1-
import _ from 'lodash';
1+
import Map from 'es6-map';
2+
3+
let stylesIndex;
4+
5+
stylesIndex = new Map();
26

37
export default (styles, styleNames: Array<string>, errorWhenNotFound: boolean): string => {
4-
let appendClassName;
8+
let appendClassName,
9+
stylesIndexMap;
10+
11+
stylesIndexMap = stylesIndex.get(styles);
12+
13+
if (stylesIndexMap) {
14+
let styleNameIndex;
15+
16+
styleNameIndex = stylesIndexMap.get(styleNames);
17+
18+
if (styleNameIndex) {
19+
return styleNameIndex;
20+
}
21+
} else {
22+
stylesIndexMap = stylesIndex.set(styles, new Map());
23+
}
524

625
appendClassName = '';
726

@@ -16,5 +35,9 @@ export default (styles, styleNames: Array<string>, errorWhenNotFound: boolean):
1635
}
1736
}
1837

19-
return _.trim(appendClassName);
38+
appendClassName = appendClassName.trim();
39+
40+
stylesIndexMap.set(styleNames, appendClassName);
41+
42+
return appendClassName;
2043
};

0 commit comments

Comments
 (0)