Extremely Popular
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889// Copyright 2018-2021 the oak authors. All rights reserved. MIT license.
import type { Application, State } from "./application.ts";import type { Status } from "./deps.ts";
/** A HTTP status that is an error (4XX and 5XX). */export type ErrorStatus = | Status.BadRequest | Status.Unauthorized | Status.PaymentRequired | Status.Forbidden | Status.NotFound | Status.MethodNotAllowed | Status.NotAcceptable | Status.ProxyAuthRequired | Status.RequestTimeout | Status.Conflict | Status.Gone | Status.LengthRequired | Status.PreconditionFailed | Status.RequestEntityTooLarge | Status.RequestURITooLong | Status.UnsupportedMediaType | Status.RequestedRangeNotSatisfiable | Status.ExpectationFailed | Status.Teapot | Status.MisdirectedRequest | Status.UnprocessableEntity | Status.Locked | Status.FailedDependency | Status.UpgradeRequired | Status.PreconditionRequired | Status.TooManyRequests | Status.RequestHeaderFieldsTooLarge | Status.UnavailableForLegalReasons | Status.InternalServerError | Status.NotImplemented | Status.BadGateway | Status.ServiceUnavailable | Status.GatewayTimeout | Status.HTTPVersionNotSupported | Status.VariantAlsoNegotiates | Status.InsufficientStorage | Status.LoopDetected | Status.NotExtended | Status.NetworkAuthenticationRequired;
/** A HTTP status that is a redirect (3XX). */export type RedirectStatus = | Status.MultipleChoices // 300 | Status.MovedPermanently // 301 | Status.Found // 302 | Status.SeeOther // 303 | Status.UseProxy // 305 - DEPRECATED | Status.TemporaryRedirect // 307 | Status.PermanentRedirect; // 308
export type HTTPMethods = | "HEAD" | "OPTIONS" | "GET" | "PUT" | "PATCH" | "POST" | "DELETE";
export interface Server<T> extends AsyncIterable<T> { close(): void; [Symbol.asyncIterator](): AsyncIterableIterator<T>;}
export interface ServerConstructor<T> { // deno-lint-ignore no-explicit-any new <AS extends State = Record<string, any>>( app: Application<AS>, options: Deno.ListenOptions | Deno.ListenTlsOptions, ): Server<T>; prototype: Server<T>;}
export interface FetchEvent extends Event { request: Request; respondWith(response: Response | Promise<Response>): Promise<Response>;}
export interface FetchEventListenerObject { handleEvent(evt: FetchEvent): void | Promise<void>;}