cacheLoader.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = cacheLoader;
  6. var _package = require("../package.json");
  7. var _cache = _interopRequireDefault(require("./cache"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. function cacheLoader(linter, content, map) {
  10. const {
  11. loaderContext,
  12. options,
  13. CLIEngine
  14. } = linter;
  15. const callback = loaderContext.async();
  16. const cacheIdentifier = JSON.stringify({
  17. 'eslint-loader': _package.version,
  18. eslint: CLIEngine.version
  19. });
  20. (0, _cache.default)({
  21. cacheDirectory: options.cache,
  22. cacheIdentifier,
  23. cacheCompression: true,
  24. options,
  25. source: content,
  26. transform() {
  27. return linter.lint(content);
  28. }
  29. }).then(res => {
  30. try {
  31. linter.printOutput({ ...res,
  32. src: content
  33. });
  34. } catch (error) {
  35. return callback(error, content, map);
  36. }
  37. return callback(null, content, map);
  38. }).catch(err => {
  39. // istanbul ignore next
  40. return callback(err);
  41. });
  42. }