fast-controllers
Version:
class based controllers, and implied folder route mapping for Fastify
63 lines (62 loc) • 3.65 kB
TypeScript
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;
}