-
-
Notifications
You must be signed in to change notification settings - Fork 132
/
less-compile-cache.js
37 lines (31 loc) · 1.19 KB
/
less-compile-cache.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const path = require('path');
const LessCache = require('less-cache');
// {LessCache} wrapper used by {ThemeManager} to read stylesheets.
module.exports = class LessCompileCache {
constructor({resourcePath, importPaths, lessSourcesByRelativeFilePath, importedFilePathsByRelativeImportPath}) {
const cacheDir = path.join(process.env.ATOM_HOME, 'compile-cache', 'less');
this.lessSearchPaths = [path.join(resourcePath, 'static', 'variables'), path.join(resourcePath, 'static')];
if (importPaths != null) {
importPaths = importPaths.concat(this.lessSearchPaths);
} else {
importPaths = this.lessSearchPaths;
}
this.cache = new LessCache({
importPaths,
resourcePath,
lessSourcesByRelativeFilePath,
importedFilePathsByRelativeImportPath,
cacheDir,
fallbackDir: path.join(resourcePath, 'less-compile-cache')
});
}
setImportPaths(importPaths = []) {
this.cache.setImportPaths(importPaths.concat(this.lessSearchPaths));
}
read(stylesheetPath) {
return this.cache.readFileSync(stylesheetPath);
}
cssForFile(stylesheetPath, lessContent, digest) {
return this.cache.cssForFile(stylesheetPath, lessContent, digest);
}
};