@logtail/next
Version:
Better Stack Telemetry Next.js client
45 lines (41 loc) • 1.55 kB
text/typescript
import { LogEvent } from '../logger';
import type Provider from './base';
import GenericConfig from './generic';
export default class VercelConfig extends GenericConfig implements Provider {
shouldSendEdgeReport = true;
region = process.env.VERCEL_REGION || undefined;
environment = process.env.VERCEL_ENV || process.env.NODE_ENV || '';
wrapWebVitalsObject(metrics: any[]): any {
return metrics.map(m => ({
webVital: m,
dt: new Date().getTime(),
vercel: {
environment: this.environment,
source: 'web-vital',
deploymentId: process.env.VERCEL_DEPLOYMENT_ID,
deploymentUrl: process.env.NEXT_PUBLIC_VERCEL_URL,
project: process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL,
git: {
commit: process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA,
repo: process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG,
ref: process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_REF,
},
},
}))
}
injectPlatformMetadata(logEvent: LogEvent, source: string) {
logEvent.vercel = {
environment: this.environment,
region: this.region,
source: source,
deploymentId: process.env.VERCEL_DEPLOYMENT_ID,
deploymentUrl: process.env.NEXT_PUBLIC_VERCEL_URL,
project: process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL,
git: {
commit: process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA,
repo: process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG,
ref: process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_REF,
},
};
}
}