UNPKG

@piggly/fastify-chassis

Version:

An ESM/CommonJS toolkit to help you to do common operations in your back-end applications with Fastify and NodeJS.

130 lines (129 loc) 4.26 kB
import type { FastifyRequest, FastifyReply } from 'fastify'; import { IncomingHttpHeaders } from 'http'; import { TOrUndefined, DomainError, Result } from '@piggly/ddd-toolkit'; /** * Return a response with error. * * @param {FastifyReply} reply * @param {Result<never, DomainError>} result * @param {{ debug: boolean }} env * @returns {FastifyReply} * @since 5.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const replyError: (reply: FastifyReply<any>, result: Result<never, DomainError>, env?: { debug: boolean; }) => FastifyReply<any>; /** * Get request body. * * @param {FastifyRequest} request * @returns {string} * @since 5.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getBody: <T = any>(request: FastifyRequest) => T; /** * Get a request param. * * @param {FastifyRequest} request * @param {string} key * @returns {string} * @since 5.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getParam: <T = string>(request: FastifyRequest, key: string) => T; /** * Get all queries from request. * * @param {FastifyRequest} request * @returns {string} * @since 5.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getQueries: <T = any>(request: FastifyRequest) => T; /** * Get a query parameter from request. * * @param {FastifyRequest} request * @param {string} key * @param {TOrUndefined<T>} defaultValue * @returns {string} * @since 5.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getQuery: <T = string>(request: FastifyRequest, key: string, defaultValue?: T) => TOrUndefined<T>; /** * Try to get origin from request headers. * * @param {FastifyRequest} request * @param {Array<string>} [headers] Headers to check in order. By default: 'x-forwarded-host', 'host' * @returns {string} * @since 1.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getOrigin: (request: FastifyRequest, headers?: Array<string>) => string; /** * Try to get IP from request headers. * * @param {FastifyRequest} request * @param {Array<string>} [headers] Headers to check in order. By default: 'cf-connecting-ip', 'x-real-ip', 'x-forwarded-for' * @returns {string} * @since 1.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getIp: (request: FastifyRequest, headers?: Array<string>) => string; /** * Get bearer token from headers. * * @param {IncomingHttpHeaders} headers * @returns {string} * @since 1.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getBearerToken: (headers: IncomingHttpHeaders) => TOrUndefined<string>; /** * Get basic token from headers. * * @param {IncomingHttpHeaders} headers * @returns {string} * @since 4.0.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getBasicToken: (headers: IncomingHttpHeaders) => TOrUndefined<{ password: string; username: string; }>; /** * Get a header from request. If not found, return a default value or an empty string. * * @param {FastifyRequest} request * @param {string} header * @param {string} [default_value] * @returns {string} * @since 5.4.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getHeaderValue: (request: FastifyRequest, header: string, default_value?: string) => string; /** * Get all values for a header from request. If not found, return a default value or an empty array. * * @param {FastifyRequest} request * @param {string} header * @param {Array<string>} [default_value] * @returns {Array<string>} * @since 5.4.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const getHeaderValues: (request: FastifyRequest, header: string, default_value?: Array<string>) => Array<string>; /** * Evaluate if the request headers match the expected headers. * Will return an array with the headers that do not match the expected headers. * * @param {FastifyRequest} request * @param {Record<string, string>} expected_headers * @returns {Array<string>} * @since 5.4.0 * @author Caique Araujo <caique@piggly.com.br> */ export declare const evaluateHeaders: (request: FastifyRequest, expected_headers: Record<string, string>) => Array<string>;