0.1.0 âĒ Published 5 months ago
@suin/print-http v0.1.0
@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-http
yarn add @suin/print-http
pnpm add @suin/print-http
bun add @suin/print-http
Usage
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: 'john@example.com'
})
});
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": "john@example.com"
}
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.
0.1.0
5 months ago