config.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* global process */
  2. /**
  3. * This module is used to define the look and feels for charts rendered via the
  4. * backend chart rendering service Chartcuterie.
  5. *
  6. * Be careful what you import into this file, as it will end up being bundled
  7. * into the configuration file loaded by the service.
  8. */
  9. // eslint-disable-next-line import/no-named-default
  10. import {default as worldMap} from 'sentry/data/world.json';
  11. import {discoverCharts} from './discover';
  12. import {ChartcuterieConfig, ChartType, RenderConfig, RenderDescriptor} from './types';
  13. /**
  14. * All registered style descriptors
  15. */
  16. const renderConfig: RenderConfig<ChartType> = new Map();
  17. /**
  18. * Chartcuterie configuration object
  19. */
  20. const config: ChartcuterieConfig = {
  21. version: process.env.COMMIT_SHA!,
  22. init: echarts => {
  23. echarts.registerMap('sentryWorld', worldMap);
  24. },
  25. renderConfig,
  26. };
  27. /**
  28. * Register a style descriptor
  29. */
  30. const register = (renderDescriptor: RenderDescriptor<ChartType>) =>
  31. renderConfig.set(renderDescriptor.key, renderDescriptor);
  32. discoverCharts.forEach(register);
  33. export default config;