UNPKG

1.01 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = findFileCaseInsensitive;
5exports.clearCache = clearCache;
6
7var _fs = _interopRequireDefault(require("fs"));
8
9var _path = _interopRequireDefault(require("path"));
10
11var _memoize = _interopRequireDefault(require("lodash/memoize"));
12
13function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15const readdirSync = (0, _memoize.default)(_fs.default.readdirSync);
16/**
17 * Find a file in a directory, case-insensitive
18 *
19 * @param {string} filepath
20 * @return {string|undefined} File path with correct case
21 */
22
23function findFileCaseInsensitive(filepath) {
24 const dir = _path.default.dirname(filepath);
25
26 const fileNameLower = _path.default.basename(filepath).toLowerCase();
27
28 const files = readdirSync(dir);
29 const found = files.find(file => file.toLowerCase() === fileNameLower);
30 return found && _path.default.join(dir, found);
31}
32/**
33 * Clear cache.
34 */
35
36
37function clearCache() {
38 readdirSync.cache.clear();
39}
\No newline at end of file