dataset.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import type {Location} from 'history';
  2. import {defined} from 'sentry/utils';
  3. import {DiscoverDatasets} from 'sentry/utils/discover/types';
  4. import {decodeScalar} from 'sentry/utils/queryString';
  5. export function defaultDataset(): DiscoverDatasets | undefined {
  6. return undefined;
  7. }
  8. export function getDatasetFromLocation(location: Location): DiscoverDatasets | undefined {
  9. const rawDataset = decodeScalar(location.query.dataset);
  10. return parseDataset(rawDataset);
  11. }
  12. export function parseDataset(rawDataset: string | undefined) {
  13. if (rawDataset === 'spansIndexed') {
  14. return DiscoverDatasets.SPANS_INDEXED;
  15. }
  16. if (rawDataset === 'spansRpc') {
  17. return DiscoverDatasets.SPANS_EAP_RPC;
  18. }
  19. if (rawDataset === 'spans') {
  20. return DiscoverDatasets.SPANS_EAP;
  21. }
  22. return undefined;
  23. }
  24. export function updateLocationWithDataset(
  25. location: Location,
  26. dataset: DiscoverDatasets | null | undefined
  27. ) {
  28. if (defined(dataset)) {
  29. location.query.dataset = dataset;
  30. } else if (dataset === null) {
  31. delete location.query.dataset;
  32. }
  33. }