mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-10-30 14:49:14 +00:00
26 lines
850 B
TypeScript
26 lines
850 B
TypeScript
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;
|
|
}, {});
|
|
}
|