flipper-plugin-lib
Version:
Library containing common Flipper plugin installation utilities
55 lines • 2.73 kB
JavaScript
;
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPluginDirNameFromPackageName = exports.getPluginVersionInstallationDir = exports.getPluginInstallationDir = exports.getPluginSourceFolders = exports.pluginCacheDir = exports.pluginInstallationDir = exports.legacyPluginInstallationDir = void 0;
const path_1 = __importDefault(require("path"));
const os_1 = require("os");
const fs_extra_1 = __importDefault(require("fs-extra"));
const p_filter_1 = __importDefault(require("p-filter"));
const flipperDataDir = path_1.default.join((0, os_1.homedir)(), '.flipper');
exports.legacyPluginInstallationDir = path_1.default.join(flipperDataDir, 'thirdparty');
exports.pluginInstallationDir = path_1.default.join(flipperDataDir, 'installed-plugins');
exports.pluginCacheDir = path_1.default.join(flipperDataDir, 'plugins');
async function getPluginSourceFolders() {
const pluginFolders = [];
const flipperConfigPath = path_1.default.join((0, os_1.homedir)(), '.flipper', 'config.json');
if (await fs_extra_1.default.pathExists(flipperConfigPath)) {
let config = { pluginPaths: [] };
try {
config = await fs_extra_1.default.readJson(flipperConfigPath);
}
catch (e) {
console.error('Failed to read local flipper config: ', e);
}
if (config.pluginPaths) {
pluginFolders.push(...config.pluginPaths);
}
}
pluginFolders.push(path_1.default.resolve(__dirname, '..', '..', 'plugins', 'public'));
pluginFolders.push(path_1.default.resolve(__dirname, '..', '..', 'plugins', 'fb'));
return (0, p_filter_1.default)(pluginFolders, (p) => fs_extra_1.default.pathExists(p));
}
exports.getPluginSourceFolders = getPluginSourceFolders;
function getPluginInstallationDir(name) {
return path_1.default.join(exports.pluginInstallationDir, getPluginDirNameFromPackageName(name));
}
exports.getPluginInstallationDir = getPluginInstallationDir;
function getPluginVersionInstallationDir(name, version) {
return path_1.default.join(getPluginInstallationDir(name), version);
}
exports.getPluginVersionInstallationDir = getPluginVersionInstallationDir;
function getPluginDirNameFromPackageName(name) {
return name.replace('/', '__');
}
exports.getPluginDirNameFromPackageName = getPluginDirNameFromPackageName;
//# sourceMappingURL=pluginPaths.js.map