UNPKG

@grace-js/grace

Version:

An opinionated API framework

40 lines 1.76 kB
import { APIError } from "./errors/error.js"; import { AnyResponseSchema, PossibleResponses } from "./routes/response.js"; import { AnyRoute } from "./routes/route.js"; import { Router } from "./routers/router.js"; import { GracePlugin } from "./plugins/plugin.js"; import { Adapter } from "./runtime/adapter.js"; export type BeforeRequest = (request: Request) => Promise<{ headers?: Record<string, string>; } | PossibleResponses<AnyResponseSchema> | void>; export type AfterRequest = (request: Request, response: PossibleResponses<AnyResponseSchema>) => Promise<void>; export type ErrorRequest = (request: Request, error: APIError) => Promise<PossibleResponses<AnyResponseSchema> | void>; export declare class Grace { routes: AnyRoute[]; before: BeforeRequest[]; after: AfterRequest[]; error: ErrorRequest[]; private readonly router; readonly adapter: Adapter; readonly verbose: boolean; constructor(router: Router, adapter: Adapter, verbose?: boolean); registerPlugin(plugin: GracePlugin): Grace; registerBefore(before: BeforeRequest): Grace; registerAfter(after: AfterRequest): Grace; registerError(error: ErrorRequest): Grace; registerRoute(route: AnyRoute): Grace; registerRoutes(path: string): Grace; exportOpenAPI(path: string): Grace; fetch(request: Request): Promise<Response>; listen(port: number): void; close(): void; handleInternally(request: Request): Promise<PossibleResponses<AnyResponseSchema>>; private handleError; registerRoutesAsync(path: string): Promise<void>; } export declare function createGrace({ router, adapter, verbose }?: { router?: Router; adapter?: Adapter; verbose?: boolean; }): Grace; //# sourceMappingURL=grace.d.ts.map