UNPKG

bit-bin

Version:

<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b

83 lines (57 loc) 2.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = searchFilesIgnoreExt; function _ramda() { const data = _interopRequireDefault(require("ramda")); _ramda = function () { return data; }; return data; } function _fsNoExt() { const data = _interopRequireDefault(require("./fs-no-ext")); _fsNoExt = function () { return data; }; return data; } function _logger() { const data = _interopRequireDefault(require("../../logger/logger")); _logger = function () { return data; }; return data; } const LOWER_PRIORITY_EXTENSIONS = ['d.ts']; const HIGHER_PRIORITY_EXTENSIONS = ['js']; function searchFilesIgnoreExt(files, fileName, returnProp) { const _byFileNoExt = file => (0, _fsNoExt().default)(file.relative) === (0, _fsNoExt().default)(fileName); const _byFileWithExt = file => file.relative === fileName; if (files && !_ramda().default.isEmpty(files)) { const foundFile = getFile(); return foundFile && returnProp && foundFile[returnProp] ? foundFile[returnProp] : foundFile; } return null; function getFile() { const foundFileWithExt = _ramda().default.find(_byFileWithExt, files); if (foundFileWithExt) return foundFileWithExt; const foundFilesWithExt = _ramda().default.filter(_byFileNoExt, files); if (!foundFilesWithExt.length) return null; if (foundFilesWithExt.length === 1) return foundFilesWithExt[0]; _logger().default.debug(`search-file-ignore-ext, found multiple files matching the criteria for ${fileName}: ${foundFilesWithExt.map(f => f.relative).join(', ')}`); const prioritizedFile = getMatchingFileByPriority(foundFilesWithExt); _logger().default.debug(`search-file-ignore-ext, ended up using ${prioritizedFile.relative} for ${fileName}`); return prioritizedFile; } function getMatchingFileByPriority(foundFilesWithExt) { // prefer files with extensions that are listed in HIGHER_PRIORITY_EXTENSIONS. const withHigherPriorities = foundFilesWithExt.filter(file => HIGHER_PRIORITY_EXTENSIONS.some(extension => file.relative.endsWith(extension))); if (withHigherPriorities.length) return withHigherPriorities[0]; // prefer files with extensions that are not listed in LOWER_PRIORITY_EXTENSIONS. const withoutLowerPriorities = foundFilesWithExt.filter(file => !LOWER_PRIORITY_EXTENSIONS.some(extension => file.relative.endsWith(extension))); if (withoutLowerPriorities.length) return withoutLowerPriorities[0]; return foundFilesWithExt[0]; } }