undici
Version:
An HTTP/1.1 client, written from scratch for Node.js
110 lines (98 loc) • 3.05 kB
TypeScript
import MockAgent from './mock-agent'
declare class SnapshotRecorder {
constructor (options?: SnapshotRecorder.Options)
record (requestOpts: any, response: any): Promise<void>
findSnapshot (requestOpts: any): SnapshotRecorder.Snapshot | undefined
loadSnapshots (filePath?: string): Promise<void>
saveSnapshots (filePath?: string): Promise<void>
clear (): void
getSnapshots (): SnapshotRecorder.Snapshot[]
size (): number
resetCallCounts (): void
deleteSnapshot (requestOpts: any): boolean
getSnapshotInfo (requestOpts: any): SnapshotRecorder.SnapshotInfo | null
replaceSnapshots (snapshotData: SnapshotRecorder.SnapshotData[]): void
destroy (): void
}
declare namespace SnapshotRecorder {
type SnapshotRecorderMode = 'record' | 'playback' | 'update'
export interface Options {
snapshotPath?: string
mode?: SnapshotRecorderMode
maxSnapshots?: number
autoFlush?: boolean
flushInterval?: number
matchHeaders?: string[]
ignoreHeaders?: string[]
excludeHeaders?: string[]
matchBody?: boolean
matchQuery?: boolean
caseSensitive?: boolean
shouldRecord?: (requestOpts: any) => boolean
shouldPlayback?: (requestOpts: any) => boolean
excludeUrls?: (string | RegExp)[]
}
export interface Snapshot {
request: {
method: string
url: string
headers: Record<string, string>
body?: string
}
responses: {
statusCode: number
headers: Record<string, string>
body: string
trailers: Record<string, string>
}[]
callCount: number
timestamp: string
}
export interface SnapshotInfo {
hash: string
request: {
method: string
url: string
headers: Record<string, string>
body?: string
}
responseCount: number
callCount: number
timestamp: string
}
export interface SnapshotData {
hash: string
snapshot: Snapshot
}
}
declare class SnapshotAgent extends MockAgent {
constructor (options?: SnapshotAgent.Options)
saveSnapshots (filePath?: string): Promise<void>
loadSnapshots (filePath?: string): Promise<void>
getRecorder (): SnapshotRecorder
getMode (): SnapshotRecorder.SnapshotRecorderMode
clearSnapshots (): void
resetCallCounts (): void
deleteSnapshot (requestOpts: any): boolean
getSnapshotInfo (requestOpts: any): SnapshotRecorder.SnapshotInfo | null
replaceSnapshots (snapshotData: SnapshotRecorder.SnapshotData[]): void
}
declare namespace SnapshotAgent {
export interface Options extends MockAgent.Options {
mode?: SnapshotRecorder.SnapshotRecorderMode
snapshotPath?: string
maxSnapshots?: number
autoFlush?: boolean
flushInterval?: number
matchHeaders?: string[]
ignoreHeaders?: string[]
excludeHeaders?: string[]
matchBody?: boolean
matchQuery?: boolean
caseSensitive?: boolean
shouldRecord?: (requestOpts: any) => boolean
shouldPlayback?: (requestOpts: any) => boolean
excludeUrls?: (string | RegExp)[]
}
}
export { SnapshotAgent, SnapshotRecorder }