/
vshmidt
/
llama.cpp
Обзор
Документация
Войти
/
vshmidt
/
llama.cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tools/server/webui/src/lib/utils/request-helpers.ts
111 строк
3 KB
Aleksander Grygier
webui: MCP Diagnostics improvements (#21803)
13 апр 2026, 08:58
Не верифицирован
13 апр 2026, 08:58
227ed28
Код
Авторство
О чём код?
/** * HTTP request inspection utilities for diagnostic logging. * These helpers extract metadata from fetch-style request arguments * without exposing sensitive payload data. */ export interface RequestBodySummary { kind: string; size?: number; } export function getRequestUrl(input: RequestInfo | URL): string { if (typeof input === 'string') { return input; } if (input instanceof URL) { return input.href; } return input.url; } export function getRequestMethod( input: RequestInfo | URL, init?: RequestInit, baseInit?: RequestInit ): string { if (init?.method) { return init.method; } if (typeof Request !== 'undefined' && input instanceof Request) { return input.method; } return baseInit?.method ?? 'GET'; } export function getRequestBody( input: RequestInfo | URL, init?: RequestInit ): BodyInit | null | undefined { if (init?.body !== undefined) { return init.body; } if (typeof Request !== 'undefined' && input instanceof Request) { return input.body; } return undefined; } export function summarizeRequestBody(body: BodyInit | null | undefined): RequestBodySummary { if (body == null) { return { kind: 'empty' }; } if (typeof body === 'string') { return { kind: 'string', size: body.length }; } if (body instanceof Blob) { return { kind: 'blob', size: body.size }; } if (body instanceof URLSearchParams) { return { kind: 'urlsearchparams', size: body.toString().length }; } if (body instanceof FormData) { return { kind: 'formdata' }; } if (body instanceof ArrayBuffer) { return { kind: 'arraybuffer', size: body.byteLength }; } if (ArrayBuffer.isView(body)) { return { kind: body.constructor.name, size: body.byteLength }; } return { kind: typeof body }; } export function formatDiagnosticErrorMessage(error: unknown): string { const message = error instanceof Error ? error.message : String(error); return message.includes('Failed to fetch') ? `${message} (check CORS?)` : message; } export function extractJsonRpcMethods(body: BodyInit | null | undefined): string[] | undefined { if (typeof body !== 'string') { return undefined; } try { const parsed = JSON.parse(body); const messages = Array.isArray(parsed) ? parsed : [parsed]; const methods = messages .map((message: Record<string, unknown>) => typeof message?.method === 'string' ? (message.method as string) : undefined ) .filter((method: string | undefined): method is string => Boolean(method)); return methods.length > 0 ? methods : undefined; } catch { return undefined; } }