request-to-json
Version:
Returns a JSON representation of request (supports koa/express requests props)
80 lines (79 loc) • 2.75 kB
TypeScript
/// <reference types="node" />
import { Context as KoaContext, Request as KoaRequest } from 'koa';
import { Request as ExpressRequest } from 'express';
import { IncomingMessage } from 'http';
export interface IncomingMessageJSON {
aborted: boolean;
httpVersion: string;
complete: boolean;
headers: IncomingMessage['headers'];
trailers: IncomingMessage['trailers'];
query?: ExpressRequest['query'];
statusCode?: number;
statusMessage?: string;
method?: string;
url?: string;
originalUrl?: string;
}
export interface ExpressRequestJSON {
protocol: ExpressRequest['protocol'];
secure: ExpressRequest['secure'];
ip: ExpressRequest['ip'];
ips: ExpressRequest['ips'];
subdomains: ExpressRequest['subdomains'];
path: ExpressRequest['path'];
hostname: ExpressRequest['hostname'];
host: ExpressRequest['host'];
fresh: ExpressRequest['fresh'];
stale: ExpressRequest['stale'];
xhr: ExpressRequest['xhr'];
body: ExpressRequest['body'];
cookies: ExpressRequest['cookies'];
params: ExpressRequest['params'];
query: ExpressRequest['query'];
route: ExpressRequest['route'];
signedCookies: ExpressRequest['signedCookies'];
originalUrl: ExpressRequest['originalUrl'];
baseUrl: ExpressRequest['baseUrl'];
method: ExpressRequest['method'];
url: ExpressRequest['url'];
}
export interface KoaRequestJSON {
headers: KoaRequest['headers'];
method: KoaRequest['method'];
url: KoaRequest['url'];
originalUrl: KoaRequest['originalUrl'];
origin: KoaRequest['origin'];
href: KoaRequest['href'];
path: KoaRequest['path'];
query: KoaRequest['query'];
host: KoaRequest['host'];
hostname: KoaRequest['hostname'];
fresh: KoaRequest['fresh'];
stale: KoaRequest['stale'];
protocol: KoaRequest['protocol'];
secure: KoaRequest['secure'];
ip: KoaRequest['ip'];
ips: KoaRequest['ips'];
subdomains: KoaRequest['subdomains'];
}
export interface KoaContextJSON {
headers: KoaContext['headers'];
method: KoaContext['method'];
url: KoaContext['url'];
originalUrl: KoaContext['originalUrl'];
origin: KoaContext['origin'];
href: KoaContext['href'];
path: KoaContext['path'];
query: KoaContext['query'];
host: KoaContext['host'];
hostname: KoaContext['hostname'];
fresh: KoaContext['fresh'];
stale: KoaContext['stale'];
protocol: KoaContext['protocol'];
secure: KoaContext['secure'];
ip: KoaContext['ip'];
ips: KoaContext['ips'];
subdomains: KoaContext['subdomains'];
}
export default function requestToJSON(req: IncomingMessage | ExpressRequest | KoaRequest | KoaContext): IncomingMessageJSON | ExpressRequestJSON | KoaRequestJSON;