Skip to content

Commit f46f466

Browse files
author
Supriya S
committed
add token caching
1 parent f97a25b commit f46f466

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/requireCssModule.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ type FiletypesConfigurationType = {
2828
[key: string]: FiletypeOptionsType
2929
};
3030

31+
//Cache all tokens generated for each file
32+
var fileTokensCache = {};
33+
3134
const getFiletypeOptions = (cssSourceFilePath: string, filetypes: FiletypesConfigurationType): ?FiletypeOptionsType => {
3235
const extension = cssSourceFilePath.substr(cssSourceFilePath.lastIndexOf('.'));
3336
const filetype = filetypes ? filetypes[extension] : null;
@@ -94,6 +97,9 @@ type OptionsType = {|
9497
|};
9598

9699
export default (cssSourceFilePath: string, options: OptionsType): StyleModuleMapType => {
100+
if(fileTokensCache[cssSourceFilePath]) {
101+
return fileTokensCache[cssSourceFilePath];
102+
}
97103
// eslint-disable-next-line prefer-const
98104
let runner;
99105

@@ -132,6 +138,6 @@ export default (cssSourceFilePath: string, options: OptionsType): StyleModuleMap
132138
];
133139

134140
runner = postcss(plugins);
135-
136-
return getTokens(runner, cssSourceFilePath, filetypeOptions);
141+
fileTokensCache[cssSourceFilePath] = getTokens(runner, cssSourceFilePath, filetypeOptions);
142+
return fileTokensCache[cssSourceFilePath];
137143
};

0 commit comments

Comments
 (0)