Files
apps.apple.com/shared/metrics-8/src/impression-snapshot-provider.ts
2025-11-04 05:03:50 +08:00

28 lines
884 B
TypeScript

import type {
MetricsFieldsBuilder,
MetricsFieldsContext,
MetricsFieldsProvider,
} from '@jet/engine';
import { IMPRESSION_CONTEXT_NAME } from './impressions/constants';
import type { Impressions } from './impressions';
export class ImpressionSnapshotFieldProvider implements MetricsFieldsProvider {
constructor(private readonly appContext: Map<string, unknown>) {
this.appContext = appContext;
}
addMetricsFields(
builder: MetricsFieldsBuilder,
_metricsContext: MetricsFieldsContext,
) {
const impressionInstance = this.appContext.get(
IMPRESSION_CONTEXT_NAME,
) as Impressions;
if (impressionInstance?.settings?.captureType === 'jet') {
let impressions = impressionInstance.captureSnapshotImpression();
builder.addValue(impressions, 'impressions');
}
}
}