UNPKG

flipper-plugin-lib

Version:

Library containing common Flipper plugin installation utilities

72 lines 3.14 kB
"use strict"; /** * 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