Add support for other chrome profiles in reactdevtools.js (#802)

* Update reactdevtools.js

* Update reactdevtools.js
This commit is contained in:
Criz Games 2021-07-08 00:46:06 +02:00 committed by GitHub
parent 959bdc3a4f
commit 06a843e61e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 1 deletions

View File

@ -6,11 +6,38 @@ export const REACT_DEVTOOLS_ID = "fmkadmapgofadopljbjfkapdkoienihi";
const findExtension = function() {
let extensionPath = "";
// Get path to user data folder
if (process.platform === "win32") extensionPath = path.resolve(process.env.LOCALAPPDATA, "Google/Chrome/User Data");
else if (process.platform === "linux") extensionPath = path.resolve(process.env.HOME, ".config/google-chrome");
else if (process.platform === "darwin") extensionPath = path.resolve(process.env.HOME, "Library/Application Support/Google/Chrome");
else extensionPath = path.resolve(process.env.HOME, ".config/chromium");
extensionPath += `/Default/Extensions/${REACT_DEVTOOLS_ID}`;
// If default profile doesn't exist
if (!fs.existsSync(extensionPath + "/Default")) {
const profiles = fs.readdirSync(extensionPath).filter((fileName) => {
// Check if file is a profile folder
return fileName.startsWith("Profile") && !fileName.endsWith("store");
});
// Check for a profile with react dev tools installed
let foundExtension = false;
for (const p of profiles) {
const exPath = `${extensionPath}/${p}/Extensions/${REACT_DEVTOOLS_ID}`;
if (fs.existsSync(exPath)) {
extensionPath = exPath;
foundExtension = true;
break;
}
}
// Return empty if no installation found
if (!foundExtension) {
return "";
}
}
else {
extensionPath += `/Default/Extensions/${REACT_DEVTOOLS_ID}`;
}
// Get latest version
if (fs.existsSync(extensionPath)) {
const versions = fs.readdirSync(extensionPath);
extensionPath = path.resolve(extensionPath, versions[versions.length - 1]);