UNPKG

@grafana/runtime

Version:
1 lines 1.7 kB
{"version":3,"file":"usePluginComponents.mjs","sources":["../../../../src/services/pluginExtensions/usePluginComponents.ts"],"sourcesContent":["import { type ComponentTypeWithExtensionMeta } from '@grafana/data';\n\nexport type UsePluginComponentsOptions = {\n extensionPointId: string;\n limitPerPlugin?: number;\n};\n\nexport type UsePluginComponentsResult<Props = {}> = {\n components: Array<ComponentTypeWithExtensionMeta<Props>>;\n isLoading: boolean;\n};\n\nexport type UsePluginComponents<Props extends object = {}> = (\n options: UsePluginComponentsOptions\n) => UsePluginComponentsResult<Props>;\n\nlet singleton: UsePluginComponents | undefined;\n\nexport function setPluginComponentsHook(hook: UsePluginComponents): void {\n // We allow overriding the hook in tests\n if (singleton && process.env.NODE_ENV !== 'test') {\n throw new Error('setPluginComponentsHook() function should only be called once, when Grafana is starting.');\n }\n singleton = hook;\n}\n\nexport function usePluginComponents<Props extends object = {}>(\n options: UsePluginComponentsOptions\n): UsePluginComponentsResult<Props> {\n if (!singleton) {\n throw new Error('setPluginComponentsHook(options) can only be used after the Grafana instance has started.');\n }\n return singleton(options) as UsePluginComponentsResult<Props>;\n}\n"],"names":[],"mappings":";AAgBA,IAAI,SAAA;AAEG,SAAS,wBAAwB,IAAA,EAAiC;AAEvE,EAAA,IAAI,SAAA,IAAa,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,MAAA,EAAQ;AAChD,IAAA,MAAM,IAAI,MAAM,0FAA0F,CAAA;AAAA,EAC5G;AACA,EAAA,SAAA,GAAY,IAAA;AACd;AAEO,SAAS,oBACd,OAAA,EACkC;AAClC,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,MAAM,2FAA2F,CAAA;AAAA,EAC7G;AACA,EAAA,OAAO,UAAU,OAAO,CAAA;AAC1B;;;;"}