style: clean up code formatting and remove trailing whitespace

refactor: reorganize imports and fix type imports
This commit is contained in:
Evandro Fonseca Junior committed 2025-11-11 03:08:36 -03:00
1 parent d3704602fd
commit 47c04de6fe
232 files changed
+7140 -4798

No files matched your search

+42 -43
View File
@@ -34,7 +34,6 @@ interface PendingEvent extends TelemetryEvent {
export class MarketTelemetry {
private sessionId: string;
private userId?: number;
private eventQueue: PendingEvent[] = [];
private viewStartTimes: Map<number, number> = new Map();
private batchInterval: NodeJS.Timeout | null = null;
@@ -53,7 +52,7 @@ export class MarketTelemetry {
*/
private generateSessionId(): string {
if (typeof window === "undefined") return "";
// Tentar recuperar da sessionStorage
let sessionId = sessionStorage.getItem("telemetry_session_id");
if (sessionId) return sessionId;
@@ -207,7 +206,7 @@ export class MarketTelemetry {
trackCustomEvent(
eventType: TelemetryEventType | string,
adId?: number,
metadata?: Record<string, any>
metadata?: Record<string, any>,
): void {
this.queueEvent({
event_type: eventType as TelemetryEventType,
@@ -237,40 +236,40 @@ export class MarketTelemetry {
}
}
/**
* Envia eventos em batch para o servidor
*/
async flushQueue(): Promise<void> {
if (this.eventQueue.length === 0) return;
/**
* Envia eventos em batch para o servidor
*/
async flushQueue(): Promise<void> {
if (this.eventQueue.length === 0) return;
const eventsToSend = [...this.eventQueue];
this.eventQueue = [];
const eventsToSend = [...this.eventQueue];
this.eventQueue = [];
try {
const response = await fetch("/api/telemetry", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
events: eventsToSend.map(({ timestamp, ...event }) => ({
...event,
session_id: this.sessionId,
})),
}),
});
try {
const response = await fetch("/api/telemetry", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
events: eventsToSend.map(({ timestamp, ...event }) => ({
...event,
session_id: this.sessionId,
})),
}),
});
if (!response.ok) {
// Re-adicionar eventos à fila se falhar (mas não logar erro para não poluir console)
this.eventQueue.unshift(...eventsToSend);
// Silenciar erro para não gerar mensagens no console
}
} catch (error) {
// Re-adicionar eventos à fila se falhar (mas não logar erro)
this.eventQueue.unshift(...eventsToSend);
// Silenciar erro para não gerar mensagens no console
}
if (!response.ok) {
// Re-adicionar eventos à fila se falhar (mas não logar erro para não poluir console)
this.eventQueue.unshift(...eventsToSend);
// Silenciar erro para não gerar mensagens no console
}
} catch (_error) {
// Re-adicionar eventos à fila se falhar (mas não logar erro)
this.eventQueue.unshift(...eventsToSend);
// Silenciar erro para não gerar mensagens no console
}
}
/**
* Inicia intervalo de envio automático
@@ -306,24 +305,25 @@ export class MarketTelemetry {
if (this.eventQueue.length === 0) return;
try {
const eventsToSend = this.eventQueue.map(({ timestamp, ...event }) => event);
const eventsToSend = this.eventQueue.map(
({ timestamp, ...event }) => event,
);
// Usar sendBeacon para garantir envio
const eventsWithSession = eventsToSend.map((event) => ({
...event,
session_id: this.sessionId,
}));
// Usar Blob para evitar problemas de message channel
const blob = new Blob(
[JSON.stringify({ events: eventsWithSession })],
{ type: "application/json" }
);
const blob = new Blob([JSON.stringify({ events: eventsWithSession })], {
type: "application/json",
});
if (navigator.sendBeacon) {
navigator.sendBeacon("/api/telemetry", blob);
}
} catch (error) {
} catch (_error) {
// Silenciar erro para não gerar mensagens no console
}
});
@@ -358,4 +358,3 @@ export function getTelemetry(userId?: number): MarketTelemetry {
}
return telemetryInstance;
}