12345678910111213141516171819202122232425 |
- import type {MonitorBucketEnvMapping} from 'sentry/views/monitors/components/overviewTimeline/types';
- import {CHECKIN_STATUS_PRECEDENT} from 'sentry/views/monitors/utils/constants';
- /**
- * Given two env mappings e.g. {prod: {ok: 1, missed: 0, etc..}}
- * combines job status counts
- */
- export function mergeEnvMappings(
- envMappingA: MonitorBucketEnvMapping,
- envMappingB: MonitorBucketEnvMapping
- ) {
- const combinedEnvs = new Set([
- ...Object.keys(envMappingA),
- ...Object.keys(envMappingB),
- ]);
- return [...combinedEnvs].reduce((mergedEnvs, env) => {
- const mergedStatusCounts = {};
- for (const status of CHECKIN_STATUS_PRECEDENT) {
- mergedStatusCounts[status] =
- (envMappingA[env]?.[status] ?? 0) + (envMappingB[env]?.[status] ?? 0);
- }
- mergedEnvs[env] = mergedStatusCounts;
- return mergedEnvs;
- }, {});
- }
|