API инстанса
Все методы ниже доступны на объекте, возвращаемом useNetworkDashboard(), на this.$networkDashboard в Options API, или на инстансе, возвращаемом createNetworkDashboard().
Реактивное состояние
| Свойство | Тип | Описание |
|---|---|---|
logs | Ref<UnifiedLogEntry[]> | Все сохранённые записи лога |
totalRequests | Ref<number> | Общее число записей |
totalErrors | Ref<number> | Записи, где error.occurred === true или http.status >= 400 |
averageDuration | Ref<number> | Средняя длительность в миллисекундах |
totalDataSent | Ref<number> | Сумма request.bodySize по всем записям |
totalDataReceived | Ref<number> | Сумма response.bodySize по всем записям |
mockGroups | Ref<readonly MockRulesGroup[]> | Все группы моков с их правилами |
breakpointRules | Ref<BreakpointRule[]> | Все настроенные правила точек останова |
activeBreakpoints | Ref<ActiveBreakpoint[]> | Запросы, в данный момент приостановленные на точке останова |
Методы управления
typescript
enable() // Начать захват
disable() // Остановить захват (существующие логи сохраняются)
isEnabled() // Возвращает boolean
clear() // Удалить все сохранённые логи (вызывает коллбэк onFlush)Методы запроса
typescript
// Фильтр по типу транспорта
getLogsByType('http' | 'websocket' | 'sse'): UnifiedLogEntry[]
// Фильтр по строке URL или regex
getLogsByUrl('/api/users'): UnifiedLogEntry[]
getLogsByUrl(/^https:\/\/api\./): UnifiedLogEntry[]
// Фильтр по диапазону HTTP-статуса
getLogsByStatus([400, 599]): UnifiedLogEntry[] // все 4xx и 5xx
// Фильтр по HTTP-методу
getLogsByMethod('POST'): UnifiedLogEntry[]
// Только неудачные записи
getErrorLogs(): UnifiedLogEntry[]
// Составной запрос с несколькими фильтрами одновременно
queryLogs({
type: 'http',
method: 'GET',
url: /\/api\//,
minDuration: 500,
hasError: false,
}): UnifiedLogEntry[]Экспорт
typescript
export() // строка JSON (по умолчанию)
export('json') // строка JSON
export('csv') // строка CSV со строкой заголовкаСтатистика
typescript
getStats(): NetworkStats // Полный объект статистики (см. раздел Statistics)
getStatsSummary(): string // Многострочный человекочитаемый текстПодписка
typescript
const unsubscribe = subscribe((entry: UnifiedLogEntry) => {
// вызывается синхронно после сохранения каждой записи лога
})
unsubscribe() // прекратить получение событийМетоды моков
typescript
// Устаревший плоский API (проксируется в группу по умолчанию)
addMock(rule): MockRule
removeMock(id: string): void
getMocks(): MockRule[]
// Управление группами
addMockGroup(name: string): string // возвращает groupId
renameMockGroup(groupId: string, name: string): void
toggleMockGroup(groupId: string, enabled: boolean): void
removeMockGroup(groupId: string): void
// Правила внутри группы
addMockToGroup(groupId: string, rule: Partial<MockRule>): MockRule
updateMockInGroup(groupId: string, ruleId: string, patch: Partial<MockRule>): void
removeMockFromGroup(groupId: string, ruleId: string): void
// Массовая замена (используется импортом)
replaceMockGroups(groups: MockRulesGroup[]): voidМетоды троттлинга
typescript
setThrottle(preset: 'none' | 'fast3g' | 'slow3g' | 'offline'): void
getThrottleDelay(): number // текущая задержка в миллисекундахМетоды точек останова
typescript
// Управление правилами
addBreakpointRule(rule: Omit<BreakpointRule, 'id'>): BreakpointRule
removeBreakpointRule(id: string): void
updateBreakpointRule(id: string, patch: Partial<BreakpointRule>): void
getBreakpointRules(): BreakpointRule[]
// Управление приостановленными запросами
releaseBreakpoint(id: string, edits: BreakpointEdits): void
cancelBreakpoint(id: string): void // выбрасывает AbortError у вызывающей стороны
getActiveBreakpoints(): ActiveBreakpoint[]
// Подписка на изменения набора приостановленных
onActiveBreakpointsChange(cb: (list: ActiveBreakpoint[]) => void): () => voidТипы:
typescript
interface BreakpointRule {
id: string
urlPattern: string | RegExp
method?: string // например 'POST'; опустите для совпадения с любым методом
name?: string
enabled: boolean
}
interface ActiveBreakpoint {
id: string
url: string
method: string
requestHeaders: Record<string, string>
requestBody: unknown
timestamp: number
}
interface BreakpointEdits {
url: string
method: string
headers: Record<string, string>
body: string | null
}