Changes
This commit is contained in:
@@ -10,6 +10,7 @@ interface ApiLog {
|
|||||||
method: string;
|
method: string;
|
||||||
url: string;
|
url: string;
|
||||||
requestBody?: unknown;
|
requestBody?: unknown;
|
||||||
|
requestHeaders?: Record<string, string>;
|
||||||
status?: number;
|
status?: number;
|
||||||
statusText?: string;
|
statusText?: string;
|
||||||
responseBody?: unknown;
|
responseBody?: unknown;
|
||||||
@@ -67,12 +68,31 @@ window.fetch = async function (input, init) {
|
|||||||
requestBody = init?.body;
|
requestBody = init?.body;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extract request headers
|
||||||
|
const requestHeaders: Record<string, string> = {};
|
||||||
|
if (init?.headers) {
|
||||||
|
if (init.headers instanceof Headers) {
|
||||||
|
init.headers.forEach((value, key) => {
|
||||||
|
requestHeaders[key] = value;
|
||||||
|
});
|
||||||
|
} else if (Array.isArray(init.headers)) {
|
||||||
|
init.headers.forEach(([key, value]) => {
|
||||||
|
requestHeaders[key] = value;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Object.entries(init.headers).forEach(([key, value]) => {
|
||||||
|
if (value) requestHeaders[key] = value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
addApiLog({
|
addApiLog({
|
||||||
id,
|
id,
|
||||||
timestamp: new Date(),
|
timestamp: new Date(),
|
||||||
method,
|
method,
|
||||||
url,
|
url,
|
||||||
requestBody,
|
requestBody,
|
||||||
|
requestHeaders,
|
||||||
});
|
});
|
||||||
|
|
||||||
const start = performance.now();
|
const start = performance.now();
|
||||||
@@ -266,6 +286,18 @@ export default function ApiDevTools() {
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{/* Request Headers (collapsible) */}
|
||||||
|
{selectedLog.requestHeaders && Object.keys(selectedLog.requestHeaders).length > 0 && (
|
||||||
|
<details className="group" open>
|
||||||
|
<summary className="text-slate-500 cursor-pointer hover:text-slate-400">
|
||||||
|
Request Headers ({Object.keys(selectedLog.requestHeaders).length})
|
||||||
|
</summary>
|
||||||
|
<pre className="bg-slate-800 p-2 rounded text-[10px] overflow-auto text-yellow-400 mt-1">
|
||||||
|
{JSON.stringify(selectedLog.requestHeaders, null, 2)}
|
||||||
|
</pre>
|
||||||
|
</details>
|
||||||
|
)}
|
||||||
|
|
||||||
{selectedLog.requestBody && (
|
{selectedLog.requestBody && (
|
||||||
<div>
|
<div>
|
||||||
<div className="text-slate-500 mb-1">Request Body</div>
|
<div className="text-slate-500 mb-1">Request Body</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user