liusuyi
2023-04-24 4737f1e038743ced243c9e52423404d9034d6107
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
38
39
40
41
42
43
44
45
46
47
48
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
 
var _os = _interopRequireDefault(require("os"));
 
var _cacache = _interopRequireDefault(require("cacache"));
 
var _findCacheDir = _interopRequireDefault(require("find-cache-dir"));
 
var _serializeJavascript = _interopRequireDefault(require("serialize-javascript"));
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
class Webpack4Cache {
  constructor(compiler, compilation, options) {
    this.options = options;
    this.cacheDir = options.cache === true ? Webpack4Cache.getCacheDirectory() : options.cache;
  }
 
  static getCacheDirectory() {
    return (0, _findCacheDir.default)({
      name: 'terser-webpack-plugin'
    }) || _os.default.tmpdir();
  }
 
  isEnabled() {
    return !!this.cacheDir;
  }
 
  get(task) {
    // eslint-disable-next-line no-param-reassign
    task.cacheIdent = task.cacheIdent || (0, _serializeJavascript.default)(task.cacheKeys);
    return _cacache.default.get(this.cacheDir, task.cacheIdent).then(({
      data
    }) => JSON.parse(data));
  }
 
  store(task, data) {
    return _cacache.default.put(this.cacheDir, task.cacheIdent, JSON.stringify(data));
  }
 
}
 
exports.default = Webpack4Cache;