Separate route definitions and where they're served from

This commit is contained in:
2025-03-07 10:28:17 -06:00
parent d6fccc3172
commit ad2b85bc2b
4 changed files with 138 additions and 53 deletions

40
deno/types.ts Normal file
View File

@@ -0,0 +1,40 @@
// types.ts
// FIXME: split this up into types used by app developers and types internal
// to the framework.
import { HttpCode, httpCodes } from "./http-codes.ts";
import { ContentType, contentTypes } from "./content-types";
export type Method = "get" | "post" | "put" | "patch" | "delete";
export type DenoRequest = globalThis.Request;
export type UserRequest = {};
export type Request = {
pattern: string;
path: string;
method: Method;
parameters: object;
denoRequest: globalThis.Request;
};
export type ProcessedRoute = { pattern: URLPattern; method: Method; handler: Handler };
export type Response = {
code: HttpCode;
contentType: ContentType;
result: string;
};
export type Handler = (req: Request) => Promise<Response>;
export type Route = {
path: string;
methods: Method[];
handler: Handler;
interruptable?: boolean
};