flipper-plugin-lib
Version:
Library containing common Flipper plugin installation utilities
72 lines • 3.14 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.getInstalledPluginDetails = exports.isPluginDir = exports.readPluginPackageJson = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const flipper_common_1 = require("flipper-common");
const pluginPaths_1 = require("./pluginPaths");
async function readPluginPackageJson(dir) {
const baseJson = await fs_extra_1.default.readJson(path_1.default.join(dir, 'package.json'));
if (await fs_extra_1.default.pathExists(path_1.default.join(dir, 'fb', 'package.json'))) {
const addedJson = await fs_extra_1.default.readJson(path_1.default.join(dir, 'fb', 'package.json'));
return Object.assign({}, baseJson, addedJson);
}
else {
return baseJson;
}
}
exports.readPluginPackageJson = readPluginPackageJson;
async function isPluginDir(dir) {
const packageJsonPath = path_1.default.join(dir, 'package.json');
const json = (await fs_extra_1.default.pathExists(packageJsonPath))
? await fs_extra_1.default.readJson(path_1.default.join(dir, 'package.json'), {
throws: false,
})
: undefined;
return (0, flipper_common_1.isPluginJson)(json);
}
exports.isPluginDir = isPluginDir;
async function getInstalledPluginDetails(dir, packageJson) {
packageJson = packageJson ?? (await readPluginPackageJson(dir));
const pluginDetails = (0, flipper_common_1.getPluginDetails)(packageJson);
const [hasOverviewDocs, hasSetupDocs] = await Promise.all([
pluginDetails.publishedDocs?.overview === undefined
? fs_extra_1.default.pathExists(path_1.default.join(dir, 'docs', 'overview.mdx'))
: Promise.resolve(pluginDetails.publishedDocs.overview),
pluginDetails.publishedDocs?.setup === undefined
? fs_extra_1.default.pathExists(path_1.default.join(dir, 'docs', 'setup.mdx'))
: Promise.resolve(pluginDetails.publishedDocs.setup),
]);
if (hasOverviewDocs || hasSetupDocs) {
pluginDetails.publishedDocs = {
overview: hasOverviewDocs,
setup: hasSetupDocs,
};
}
const entry = pluginDetails.specVersion === 1
? path_1.default.resolve(pluginPaths_1.pluginCacheDir, `${packageJson.name}@${packageJson.version || '0.0.0'}.js`)
: path_1.default.resolve(dir, packageJson.main);
const serverAddOnEntry = packageJson.serverAddOn
? path_1.default.resolve(dir, packageJson.serverAddOn)
: undefined;
return {
...pluginDetails,
isActivatable: true,
dir,
entry,
serverAddOnEntry,
};
}
exports.getInstalledPluginDetails = getInstalledPluginDetails;
//# sourceMappingURL=getPluginDetails.js.map