mirror of
https://github.com/rxliuli/apps.apple.com.git
synced 2025-11-10 01:10:34 +00:00
init commit
This commit is contained in:
27
shared/metrics-8/src/impression-snapshot-provider.ts
Normal file
27
shared/metrics-8/src/impression-snapshot-provider.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
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');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user