UNPKG

@athenna/http

Version:

The Athenna Http server. Built on top of fastify.

263 lines (262 loc) 5.81 kB
/** * @athenna/http * * (c) João Lenon <lenon@athenna.io> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ import type { FastifyRequest } from 'fastify'; import { Macroable } from '@athenna/common'; export declare class Request extends Macroable { /** * The fastify request object. */ private request; constructor(request: FastifyRequest); /** * Get the request id. * * @example * ```ts * console.log(request.id) // '12345' * ``` */ get id(): string; /** * Get the request ip. * * @example * ```ts * console.log(request.ip) // '192.168.0.1' * ``` */ get ip(): string; /** * Get the request hostname. * * @example * ```ts * console.log(request.hostname) // 'localhost' * ``` */ get hostname(): string; /** * Get the server port. * * @example * ```ts * console.log(request.port) // 3000 * ``` */ get port(): number; /** * Get the http version. * * @example * ```ts * console.log(request.version) // 1 * ``` */ get version(): string; /** * Get the request protocol. * * @example * ```ts * console.log(request.protocol) // 'http' * ``` */ get protocol(): 'http' | 'https'; /** * Get the request method. * * @example * ```ts * console.log(request.method) // 'GET' * ``` */ get method(): string; /** * Get the route name defined in your route file. * * @example * ```ts * console.log(request.routeName) // 'users' * ``` */ get routeName(): string; /** * Get the base url from request. * * @example * ```ts * console.log(request.baseUrl) // '/users/1' * ``` */ get baseUrl(): string; /** * Get the base url with host and port info from request. * * @example * ```ts * console.log(request.baseHostUrl) // 'http://localhost:3030/users/1' * ``` */ get baseHostUrl(): string; /** * Get the route url from request. * * @example * ```ts * console.log(request.routeUrl) // '/users/:id' * ``` */ get routeUrl(): string; /** * Get the route url with host and port info from request. * * @example * ```ts * console.log(request.routeHostUrl) // 'http://localhost:3030/users/:id' * ``` */ get routeHostUrl(): string; /** * Get the original url from request. * * @example * ```ts * console.log(request.originalUrl) // '/users/1?query=true' * ``` */ get originalUrl(): string; /** * Get the original url with host and port info from request. * * @example * ```ts * console.log(request.originalHostUrl) // 'http://localhost:3000/users/1?query=true' * ``` */ get originalHostUrl(): string; /** * Get all body from request. * * @example * ```ts * const { name, email } = request.body * ``` */ get body(): any | any[]; /** * Get all params from request. * * @example * ```ts * const { id } = request.params * ``` */ get params(): any; /** * Get all queries from request. * * @example * ```ts * const { page, limit } = request.queries * ``` */ get queries(): any; /** * Get all headers from request. * * @example * ```ts * const { accept } = request.headers * ``` */ get headers(): any; /** * Get a value from the request params or return * the default value. * * @example * ```ts * const id = request.param('id', '1') * ``` */ param(param: string, defaultValue?: any): any; /** * Get a value from the request query param or return * the default value. * * @example * ```ts * const page = request.query('page', '1') * ``` */ query(query: string, defaultValue?: any): any; /** * Get a value from the request header or return * the default value. * * @example * ```ts * const accept = request.header('accept', 'application/json') * ``` */ header(header: string, defaultValue?: any): any; /** * Get a value from the request body or return * the default value. * * @example * ```ts * const name = request.input('name', 'lenon') * ``` */ input(key: string, defaultValue?: any): any; /** * Get a value from the request body or return * the default value. * * @example * ```ts * const name = request.payload('name', 'lenon') * ``` */ payload(key: string, defaultValue?: any): any; /** * Get only the selected values from the request body. * * @example * ```ts * const body = request.only(['name', 'email']) * ``` */ only(keys: string[]): any; /** * Get all the values from the request body except the * selected ones. * * @example * ```ts * const body = request.except(['name']) * ``` */ except(keys: string[]): any; /** * Get the original fastify request. */ getFastifyRequest(): FastifyRequest; /** * Add the hostname and port to the url. */ private getHostUrlFor; /** * Get the address info of the server. This method will return the * port used to listen the server, the family (IPv4, IPv6) and the * server address (127.0.0.1). */ private getAddressInfo; }