@neuralegion/cypress-har-generator
Version:
The Cypress plugin for generating HTTP Archive (HAR) files is a tool that allows developers and QA engineers to capture detailed information about network requests made during the execution of Cypress tests.
50 lines (49 loc) • 3.36 kB
TypeScript
import { Logger } from '../utils/Logger';
import { NetworkRequest } from './NetworkRequest';
import type { NetworkObserverOptions } from './NetworkObserverOptions';
import type { Observer } from './Observer';
import type { RequestFilter } from './filters';
import type { Network } from './Network';
import type Protocol from 'devtools-protocol';
export declare class NetworkObserver implements Observer<NetworkRequest> {
private readonly options;
private readonly network;
private readonly logger;
private readonly requestFilter?;
private readonly _entries;
private readonly _extraInfoBuilders;
private destination?;
get empty(): boolean;
constructor(options: NetworkObserverOptions, network: Network, logger: Logger, requestFilter?: RequestFilter | undefined);
subscribe(callback: (chromeEntry: NetworkRequest) => unknown): Promise<void>;
unsubscribe(): Promise<void>;
signedExchangeReceived(params: Protocol.Network.SignedExchangeReceivedEvent): void;
requestWillBeSent({ type, loaderId, initiator, redirectResponse, documentURL, frameId, timestamp, requestId, request, wallTime }: Protocol.Network.RequestWillBeSentEvent): void;
dataReceived({ requestId, dataLength, encodedDataLength, timestamp }: Protocol.Network.DataReceivedEvent): void;
responseReceived({ requestId, response, timestamp, type }: Omit<Protocol.Network.ResponseReceivedEvent, 'hasExtraInfo'>): void;
resourceChangedPriority({ requestId, newPriority }: Protocol.Network.ResourceChangedPriorityEvent): void;
loadingFinished({ requestId, timestamp, encodedDataLength }: Protocol.Network.LoadingFinishedEvent): Promise<void>;
loadingFailed({ requestId, errorText, canceled, type, timestamp }: Protocol.Network.LoadingFailedEvent): void;
webSocketCreated({ initiator, requestId, url }: Protocol.Network.WebSocketCreatedEvent): void;
eventSourceMessageReceived({ requestId, timestamp, eventName, eventId, data }: Protocol.Network.EventSourceMessageReceivedEvent): void;
webSocketWillSendHandshakeRequest({ request, requestId, timestamp, wallTime }: Protocol.Network.WebSocketWillSendHandshakeRequestEvent): void;
webSocketHandshakeResponseReceived({ timestamp, response, requestId }: Protocol.Network.WebSocketHandshakeResponseReceivedEvent): void;
webSocketFrameSent({ requestId, timestamp, response }: Protocol.Network.WebSocketFrameSentEvent): void;
webSocketFrameReceived({ requestId, timestamp, response }: Protocol.Network.WebSocketFrameReceivedEvent): void;
webSocketFrameError({ errorMessage, requestId, timestamp }: Protocol.Network.WebSocketFrameErrorEvent): void;
webSocketClosed({ requestId, timestamp }: Protocol.Network.WebSocketClosedEvent): void;
requestWillBeSentExtraInfo({ requestId, headers }: Protocol.Network.RequestWillBeSentExtraInfoEvent): void;
responseReceivedExtraInfo({ requestId, headers, headersText }: Protocol.Network.ResponseReceivedExtraInfoEvent): void;
private getExtraInfoBuilder;
private _appendRedirect;
private finishRequest;
private loadContent;
private startRequest;
private updateNetworkRequestWithRequest;
private getRequestPostData;
private createRequest;
private updateNetworkRequestWithResponse;
private headersMapToHeadersArray;
private shouldExcludeRequest;
private handleEvent;
}