UNPKG

fast-controllers

Version:

class based controllers, and implied folder route mapping for Fastify

63 lines (62 loc) 3.65 kB
import type { FastifyInstance, FastifyRequest, FastifyReply, FastifySchema, RouteOptions, HTTPMethods } from 'fastify'; export type MethodSpecific = { [key in Lowercase<HTTPMethods>]?: unknown; }; export type MethodSpecificString = { [key in Lowercase<HTTPMethods>]?: string; }; export type FastControllerSchema = Omit<FastifySchema, 'operationId' | 'summary' | 'description'> & { operationId?: string | MethodSpecificString; summary?: string | MethodSpecificString; description?: string | MethodSpecificString; }; declare module 'fastify' { interface FastifySchema { socket?: { in?: {}; out?: {}; }; body?: unknown | MethodSpecific; querystring?: unknown | MethodSpecific; params?: unknown | MethodSpecific; headers?: unknown | MethodSpecific; response?: unknown | MethodSpecific; } } export declare const METHODS: Array<Lowercase<HTTPMethods>>; export default class FastController implements Omit<RouteOptions, 'schema'> { url: string; schema?: FastControllerSchema; websocket: boolean; method: Array<Uppercase<HTTPMethods>> | Uppercase<HTTPMethods>; handler: (requestOrConn: FastifyRequest, replyOrRequest: FastifyReply | FastifyRequest) => void | Promise<unknown> | string | object; static scope: string; private _instance; params?: { [key in Lowercase<HTTPMethods>]?: Array<string> | string; } | Array<string> | string; constructor(i: FastifyInstance, route: string); protected init(): void; set instance(i: FastifyInstance); get instance(): FastifyInstance; get methods(): Array<Uppercase<HTTPMethods>>; preValidation: (request: FastifyRequest, reply: FastifyReply, done: (err?: Error) => void) => void | Promise<unknown>; onPreValidation?(request: FastifyRequest, reply: FastifyReply, done: (err?: Error) => void): void | Promise<unknown>; delete?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; get?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; head?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; patch?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; post?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; put?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; options?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; search?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; trace?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; propfind?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; proppatch?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; mkcol?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; copy?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; move?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; lock?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; unlock?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; handle?(request: FastifyRequest, reply: FastifyReply): void | Promise<unknown> | string | object; }