import { getJSON, post } from 'sonar-ui-common/helpers/request';
import { isDefined } from 'sonar-ui-common/helpers/types';
import throwGlobalError from '../app/utils/throwGlobalError';
-import { AvailablePlugin, InstalledPlugin, PendingPluginResult, Update } from '../types/plugins';
+import {
+ AvailablePlugin,
+ InstalledPlugin,
+ PendingPluginResult,
+ PluginType,
+ Update
+} from '../types/plugins';
export function getAvailablePlugins(): Promise<{
plugins: AvailablePlugin[];
return { ...update, previousUpdates };
}
-export function getInstalledPlugins(): Promise<InstalledPlugin[]> {
- return getJSON('/api/plugins/installed', { f: 'category' }).then(
- ({ plugins }) => plugins,
- throwGlobalError
- );
+function getInstalledPluginApi(type = PluginType.External) {
+ return getJSON('/api/plugins/installed', { f: 'category', type });
+}
+
+function getUpdatesPluginApi() {
+ return getJSON('/api/plugins/updates');
+}
+
+export function getInstalledPlugins(
+ type: PluginType = PluginType.External
+): Promise<InstalledPlugin[]> {
+ return getInstalledPluginApi(type).then(({ plugins }) => plugins, throwGlobalError);
}
export function getInstalledPluginsWithUpdates(): Promise<InstalledPlugin[]> {
- return Promise.all([
- getJSON('/api/plugins/installed', { f: 'category' }),
- getJSON('/api/plugins/updates')
- ])
+ return Promise.all([getInstalledPluginApi(), getUpdatesPluginApi()])
.then(([installed, updates]) =>
installed.plugins.map((plugin: InstalledPlugin) => {
const updatePlugin: InstalledPlugin = updates.plugins.find(
}
export function getPluginUpdates(): Promise<InstalledPlugin[]> {
- return Promise.all([getJSON('/api/plugins/updates'), getJSON('/api/plugins/installed')])
+ return Promise.all([getUpdatesPluginApi(), getInstalledPluginApi()])
.then(([updates, installed]) =>
updates.plugins.map((updatePlugin: InstalledPlugin) => {
const updates = getLastUpdates(updatePlugin.updates).map(update =>
import DocMarkdownBlock from '../../../components/docs/DocMarkdownBlock';
import { ParsedContent, separateFrontMatter } from '../../../helpers/markdown';
import { isSonarCloud } from '../../../helpers/system';
+import { PluginType } from '../../../types/plugins';
import { getUrlsList } from '../navTreeUtils';
import getPages from '../pages';
import '../styles.css';
}
getLanguagePluginsDocumentation = (tree: DocNavigationItem[]) => {
- return getInstalledPlugins()
+ return getInstalledPlugins(PluginType.Bundled)
.then(plugins =>
Promise.all(
plugins.map(plugin => {