@suin/print-http
v0.1.0
Published
Pretty-print HTTP requests and responses with syntax highlighting support
Downloads
5
Maintainers
Readme
@suin/print-http
Pretty-print HTTP requests and responses with syntax highlighting support.
Features
- 🎨 Syntax highlighting for HTTP headers and JSON bodies
- 🔍 Automatic JSON body formatting
- 📝 Support for both Request and Response objects
- 🎯 Type-safe with TypeScript
- 🪶 Zero dependencies (except for optional syntax highlighting)
Installation
npm install @suin/print-httpyarn add @suin/print-httppnpm add @suin/print-httpbun add @suin/print-httpUsage
Print HTTP Request
import { printHttp } from '@suin/print-http';
const request = new Request('https://api.example.com/users', {
method: 'POST',
headers: {
'content-type': 'application/json',
'authorization': 'Bearer token123'
},
body: JSON.stringify({
name: 'John Doe',
email: '[email protected]'
})
});
const output = await printHttp(request);
console.log(output);Output:
POST /users HTTP/1.1
authorization: Bearer token123
content-type: application/json
host: api.example.com
{
"name": "John Doe",
"email": "[email protected]"
}Print HTTP Response
import { printHttp } from '@suin/print-http';
const response = new Response(
JSON.stringify({ message: 'Success' }),
{
status: 200,
headers: {
'content-type': 'application/json'
}
}
);
const output = await printHttp(response);
console.log(output);Output:
HTTP/1.1 200 OK
content-type: application/json
{
"message": "Success"
}API
printHttp(object, options?): Promise<string>
Formats an HTTP request or response object into a string representation.
Parameters
object:Request | Response- The HTTP request or response object to formatoptions?:Object(optional)color?:boolean- Enable/disable syntax highlighting (default:true)highlighter?:Highlighter- Custom syntax highlighter implementation
Returns
Promise<string>- The formatted HTTP message
Highlighter Interface
interface Highlighter {
highlight(lang: string, value: string): Promise<string>;
}Requirements
- Node.js >= 22.0.0
License
MIT License - see the LICENSE file for details.
