{"version":3,"file":"getPluginSettings.cjs","sources":["../../../../src/services/pluginSettings/getPluginSettings.ts"],"sourcesContent":["import { type PluginMeta } from '@grafana/data';\n\nimport { getFeatureFlagClient } from '../../internal/openFeature';\nimport { FlagKeys } from '../../internal/openFeature/openfeature.gen';\nimport { getCachedPromiseWithArgs } from '../../utils/getCachedPromise';\nimport { getBackendSrv } from '../backendSrv';\nimport { getPluginMetaFromCache } from '../pluginMeta/plugins';\n\nimport { logPluginSettingsDebug, logPluginSettingsError } from './logging';\nimport { getSettingsMapper } from './mappers/mappers';\nimport { type Settings as v0alpha1Settings } from './types';\nimport { getApiVersion, getCacheKey, getLegacyCacheKey, getNamespace, isAuthError } from './utils';\n\nexport function getLegacySettings(pluginId: string, showErrorAlert?: boolean): Promise<PluginMeta> {\n  const options = { showErrorAlert, validatePath: true };\n  logPluginSettingsDebug('PluginSettings: getting legacy plugin settings', { pluginId });\n\n  return getBackendSrv()\n    .get(`/api/plugins/${pluginId}/settings`, undefined, undefined, options)\n    .catch((err) => {\n      // User does not have access to plugin\n      if (isAuthError(err)) {\n        err.isHandled = true;\n        return Promise.reject(err);\n      }\n\n      logPluginSettingsError('PluginSettings: getting legacy plugin settings failed', err, { pluginId });\n      return Promise.reject(new Error('Unknown Plugin', { cause: err }));\n    });\n}\n\nexport function getAppPluginSettings(pluginId: string, showErrorAlert?: boolean): Promise<v0alpha1Settings> {\n  const options = { showErrorAlert, validatePath: true };\n  logPluginSettingsDebug('PluginSettings: getting plugin settings', { pluginId });\n\n  return getBackendSrv()\n    .get<v0alpha1Settings>(\n      `/apis/${pluginId}/${getApiVersion()}/namespaces/${getNamespace()}/app/instance`,\n      undefined,\n      undefined,\n      options\n    )\n    .catch((err) => {\n      // User does not have access to plugin\n      if (isAuthError(err)) {\n        err.isHandled = true;\n        return Promise.reject(err);\n      }\n\n      logPluginSettingsError('PluginSettings: getting plugin settings failed', err, { pluginId });\n      return Promise.reject(new Error('Unknown Plugin', { cause: err }));\n    });\n}\n\n/**\n * Get the settings for a plugin, returning a cached promise when available.\n * @param pluginId - The id of the plugin.\n * @param showErrorAlert - Whether to show a UI error alert if the request fails.\n * @returns The plugin's `PluginMeta`.\n */\nexport async function getPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n  if (!getFeatureFlagClient().getBooleanValue(FlagKeys.PluginsUseMTPluginSettings, false)) {\n    return getCachedLegacySettings(pluginId, showErrorAlert);\n  }\n\n  const meta = await getPluginMetaFromCache(pluginId);\n  if (!meta) {\n    logPluginSettingsDebug('PluginSettings: falling back to getting legacy plugin settings', { pluginId });\n    return getCachedLegacySettings(pluginId, showErrorAlert);\n  }\n\n  if (meta.spec.pluginJson.type !== 'app') {\n    const mapper = getSettingsMapper();\n    return mapper(meta.spec);\n  }\n\n  const settings = await getCachedAppSettings(pluginId, showErrorAlert);\n  const mapper = getSettingsMapper();\n  return mapper(meta.spec, settings);\n}\n\nconst getCachedLegacySettings = getCachedPromiseWithArgs(getLegacySettings, {\n  cacheKeyFn: getLegacyCacheKey,\n});\n\nconst getCachedAppSettings = getCachedPromiseWithArgs(getAppPluginSettings, {\n  cacheKeyFn: getCacheKey,\n});\n"],"names":["logPluginSettingsDebug","getBackendSrv","isAuthError","logPluginSettingsError","getApiVersion","getNamespace","getFeatureFlagClient","FlagKeys","getPluginMetaFromCache","mapper","getSettingsMapper","getCachedPromiseWithArgs","getLegacyCacheKey","getCacheKey"],"mappings":"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"}