@amplitude/analytics-core
Version:
46 lines • 1.67 kB
TypeScript
import { ILogger } from '.';
export interface NetworkRequestEvent {
type: string;
method: string;
url: string;
timestamp: number;
status?: number;
duration?: number;
requestBodySize?: number;
requestHeaders?: Record<string, string>;
responseBodySize?: number;
responseHeaders?: Record<string, string>;
error?: {
name: string;
message: string;
};
startTime?: number;
endTime?: number;
}
type FormDataEntryValueBrowser = string | Blob | null;
export interface FormDataBrowser {
entries(): IterableIterator<[string, FormDataEntryValueBrowser]>;
}
export type FetchRequestBody = string | Blob | ArrayBuffer | FormDataBrowser | URLSearchParams | null | undefined;
export declare function getRequestBodyLength(body: FetchRequestBody | null | undefined): number | undefined;
export type NetworkEventCallbackFn = (event: NetworkRequestEvent) => void;
export declare class NetworkEventCallback {
readonly callback: (event: NetworkRequestEvent) => void;
readonly id: string;
constructor(callback: (event: NetworkRequestEvent) => void, id?: string);
}
export declare class NetworkObserver {
private originalFetch?;
private eventCallbacks;
private isObserving;
private globalScope?;
constructor(logger?: ILogger);
static isSupported(): boolean;
subscribe(eventCallback: NetworkEventCallback): void;
unsubscribe(eventCallback: NetworkEventCallback): void;
protected triggerEventCallbacks(event: NetworkRequestEvent): void;
private observeFetch;
}
export declare const networkObserver: NetworkObserver;
export {};
//# sourceMappingURL=network-observer.d.ts.map