Sha256: b3d63116fa18da8635dd3fef4a27ad2ce8e9c11a09f0a2adeae7204debe9eecb
Contents?: true
Size: 1.69 KB
Versions: 23
Compression:
Stored size: 1.69 KB
Contents
'use strict'; const debug = require('debug')('stylelint:file-cache'); const fileEntryCache = require('file-entry-cache'); const getCacheFile = require('./getCacheFile'); const path = require('path'); const DEFAULT_CACHE_LOCATION = './.stylelintcache'; const DEFAULT_HASH = ''; /** * @param {string} [cacheLocation] * @param {string} [hashOfConfig] * @constructor */ class FileCache { constructor(cacheLocation = DEFAULT_CACHE_LOCATION, hashOfConfig = DEFAULT_HASH) { const cacheFile = path.resolve(getCacheFile(cacheLocation, process.cwd())); debug(`Cache file is created at ${cacheFile}`); this._fileCache = fileEntryCache.create(cacheFile); this._hashOfConfig = hashOfConfig; } /** * @param {string} absoluteFilepath * @return {boolean} */ hasFileChanged(absoluteFilepath) { // Get file descriptor compares current metadata against cached // one and stores the result to "changed" prop.w const descriptor = this._fileCache.getFileDescriptor(absoluteFilepath); const meta = descriptor.meta || {}; const changed = descriptor.changed || meta.hashOfConfig !== this._hashOfConfig; if (!changed) { debug(`Skip linting ${absoluteFilepath}. File hasn't changed.`); } // Mutate file descriptor object and store config hash to each file. // Running lint with different config should invalidate the cache. if (meta.hashOfConfig !== this._hashOfConfig) { meta.hashOfConfig = this._hashOfConfig; } return changed; } reconcile() { this._fileCache.reconcile(); } destroy() { this._fileCache.destroy(); } /** * @param {string} absoluteFilepath */ removeEntry(absoluteFilepath) { this._fileCache.removeEntry(absoluteFilepath); } } module.exports = FileCache;
Version data entries
23 entries across 23 versions & 1 rubygems