workery
Version:
Modern web framework for building APIs on Cloudflare Workers.
54 lines (53 loc) • 2.06 kB
TypeScript
/// <reference types="@cloudflare/workers-types" />
import { ResponseConfig } from "@asteasolutions/zod-to-openapi";
import type { ContactObject, LicenseObject, OpenAPIObject, SecurityRequirementObject, SecuritySchemeObject, ServerObject, TagObject } from "openapi3-ts/oas31";
import { Middleware } from "./middleware";
import { Router } from "./routing";
import type { ArgsOf, ExceptionHandler, ResponseClass } from "./types";
export declare class App<E = unknown> extends Router<E> {
rootPath: string;
title: string;
description: string;
version: string;
tagsInfo: TagObject[];
servers: ServerObject[];
contact?: ContactObject;
license?: LicenseObject;
termsOfService?: string;
securitySchemes: Record<string, SecuritySchemeObject>;
security: SecurityRequirementObject[];
openapiUrl: string | null;
swaggerUrl: string | null;
redocUrl: string | null;
middleware: Middleware<E>[];
exceptionHandler: ExceptionHandler<E>;
private _rootPathRegex;
private _openapi?;
constructor(init: {
rootPath?: string;
title?: string;
description?: string;
version?: string;
tagsInfo?: TagObject[];
servers?: ServerObject[];
contact?: ContactObject;
license?: LicenseObject;
termsOfService?: string;
securitySchemes?: Record<string, SecuritySchemeObject>;
security?: SecurityRequirementObject[];
openapiUrl?: string | null;
swaggerUrl?: string | null;
redocUrl?: string | null;
middleware?: Middleware<E>[];
exceptionHandler?: ExceptionHandler<E>;
tags?: string[];
deprecated?: boolean;
includeInSchema?: boolean;
responses?: Record<number, ResponseConfig>;
defaultResponseClass?: ResponseClass;
});
include(pathPrefix: string, router: Router<E>): void;
openapi(): OpenAPIObject;
handle(baseArgs: ArgsOf<{}, E>): Promise<Response>;
fetch: (req: Request, env: E, ctx: ExecutionContext) => Promise<Response>;
}