mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Skip hidden folders when looking for third party components (#48182)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/48182 Maintainers from SVG reached out because of an edge case they inencountered when generating the ComponentProvider. In their setup, they had a `.git` folder in the repo and the algorithm was spending a lot of time crawling the git folder. In general, we should avoid crawling hidden folders. This change fix that. ## Changelog: [General][Fixed] - Skip hidden folders when looking for third party components. Reviewed By: javache Differential Revision: D66959345 fbshipit-source-id: 992a79f3cff22cd6a459e0272c8140bc329888da
This commit is contained in:
@@ -763,6 +763,16 @@ function findFilesWithExtension(filePath, extension) {
|
||||
const dir = fs.readdirSync(filePath);
|
||||
dir.forEach(file => {
|
||||
const absolutePath = path.join(filePath, file);
|
||||
// Exclude files provided by react-native
|
||||
if (absolutePath.includes(`${path.sep}react-native${path.sep}`)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Skip hidden folders, that starts with `.`
|
||||
if (absolutePath.includes(`${path.sep}.`)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (
|
||||
fs.existsSync(absolutePath) &&
|
||||
fs.statSync(absolutePath).isDirectory()
|
||||
@@ -778,11 +788,6 @@ function findFilesWithExtension(filePath, extension) {
|
||||
// Given a filepath, read the file and look for a string that starts with 'Class<RCTComponentViewProtocol> '
|
||||
// and ends with 'Cls(void)'. Return the string between the two.
|
||||
function findRCTComponentViewProtocolClass(filepath) {
|
||||
// Exclude files provided by react-native
|
||||
if (filepath.includes(`${path.sep}react-native${path.sep}`)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const fileContent = fs.readFileSync(filepath, 'utf8');
|
||||
const regex = /Class<RCTComponentViewProtocol> (.*)Cls\(/;
|
||||
const match = fileContent.match(regex);
|
||||
|
||||
Reference in New Issue
Block a user