52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
|
|
// NOTICE: This file is generated by Rollup. To modify it,
|
||
|
|
// please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
const node_path = require('node:path');
|
||
|
|
const node_fs = require('node:fs');
|
||
|
|
const hash = require('./hash.cjs');
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the cacheFile to be used by stylelint, based on whether the provided parameter is
|
||
|
|
* a directory or looks like a directory (ends in `path.sep`), in which case the file
|
||
|
|
* name will be `cacheFile/.cache_hashOfCWD`.
|
||
|
|
*
|
||
|
|
* If cacheFile points to a file or looks like a file, then it will just use that file.
|
||
|
|
*
|
||
|
|
* @param {string} cacheFile - The name of file to be used to store the cache
|
||
|
|
* @param {string} cwd - Current working directory. Used for tests
|
||
|
|
* @returns {string} Resolved path to the cache file
|
||
|
|
*/
|
||
|
|
function getCacheFile(cacheFile, cwd) {
|
||
|
|
/*
|
||
|
|
* Make sure path separators are normalized for environment/os.
|
||
|
|
* Also, keep trailing path separator if present.
|
||
|
|
*/
|
||
|
|
cacheFile = node_path.normalize(cacheFile);
|
||
|
|
|
||
|
|
const resolvedCacheFile = node_path.resolve(cwd, cacheFile);
|
||
|
|
// If the last character passed is a path separator, we assume is a directory.
|
||
|
|
const looksLikeADirectory = cacheFile[cacheFile.length - 1] === node_path.sep;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the default cache file name when provided parameter is a directory.
|
||
|
|
* @returns {string} - Resolved path to the cacheFile
|
||
|
|
*/
|
||
|
|
function getCacheFileForDirectory() {
|
||
|
|
return node_path.join(resolvedCacheFile, `.stylelintcache_${hash(cwd)}`);
|
||
|
|
}
|
||
|
|
|
||
|
|
if (
|
||
|
|
looksLikeADirectory ||
|
||
|
|
node_fs.lstatSync(resolvedCacheFile, { throwIfNoEntry: false })?.isDirectory()
|
||
|
|
) {
|
||
|
|
// Return path to provided directory with generated file name.
|
||
|
|
return getCacheFileForDirectory();
|
||
|
|
}
|
||
|
|
|
||
|
|
// Return normalized path to cache file.
|
||
|
|
return resolvedCacheFile;
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = getCacheFile;
|