UNPKG

flipper-common

Version:

Server & UI shared Flipper utilities

88 lines 3.27 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 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.isPluginJson = exports.getPluginDetails = void 0; function getPluginDetails(packageJson) { const specVersion = packageJson.$schema && packageJson.$schema === 'https://fbflipper.com/schemas/plugin-package/v2.json' ? 2 : 1; switch (specVersion) { case 1: return getPluginDetailsV1(packageJson); case 2: return getPluginDetailsV2(packageJson); default: throw new Error(`Unknown plugin format version: ${specVersion}`); } } exports.getPluginDetails = getPluginDetails; // Plugins packaged using V1 are distributed as sources and compiled in run-time. function getPluginDetailsV1(packageJson) { return { specVersion: 1, name: packageJson.name, version: packageJson.version, main: 'dist/bundle.js', source: packageJson.main, id: packageJson.name, gatekeeper: packageJson.gatekeeper, icon: packageJson.icon, title: packageJson.title || packageJson.name, description: packageJson.description, category: packageJson.category, bugs: packageJson.bugs, flipperSDKVersion: packageJson?.peerDependencies?.['flipper-plugin'], pluginType: packageJson?.pluginType, supportedDevices: packageJson?.supportedDevices, supportedApps: packageJson?.supportedApps, engines: packageJson.engines, deprecated: packageJson.deprecated, }; } // Plugins packaged using V2 are pre-bundled, so compilation in run-time is not required for them. function getPluginDetailsV2(packageJson) { return { specVersion: 2, name: packageJson.name, version: packageJson.version, main: packageJson.main, serverAddOn: packageJson.serverAddOn, source: packageJson.flipperBundlerEntry, serverAddOnSource: packageJson.flipperBundlerEntryServerAddOn, id: packageJson.id || packageJson.name, gatekeeper: packageJson.gatekeeper, icon: packageJson.icon, title: packageJson.title || packageJson.id || getTitleFromName(packageJson.name), description: packageJson.description, category: packageJson.category, bugs: packageJson.bugs, flipperSDKVersion: packageJson?.peerDependencies?.['flipper-plugin'], pluginType: packageJson?.pluginType, supportedDevices: packageJson?.supportedDevices, supportedApps: packageJson?.supportedApps, engines: packageJson.engines, publishedDocs: packageJson.publishedDocs, deprecated: packageJson.deprecated, }; } function getTitleFromName(name) { const prefix = 'flipper-plugin-'; if (name.startsWith(prefix)) { return name.substr(prefix.length); } return name; } function isPluginJson(packageJson) { return packageJson?.keywords?.includes('flipper-plugin'); } exports.isPluginJson = isPluginJson; //# sourceMappingURL=PluginDetails.js.map