39 lines
879 B
TypeScript
39 lines
879 B
TypeScript
import type { Serve, WebSocketHandler } from "bun";
|
|
|
|
export type PrasiHttpHandler = (
|
|
req: Request,
|
|
opt?: {
|
|
rewrite?: (arg: {
|
|
body: Bun.BodyInit;
|
|
headers: Headers | any;
|
|
}) => Bun.BodyInit;
|
|
}
|
|
) => Promise<Response>;
|
|
|
|
export type PrasiWsHandler = WebSocketHandler<{ url: URL }>;
|
|
|
|
export interface PrasiServer {
|
|
ws?: PrasiWsHandler;
|
|
http: (arg: {
|
|
url: { raw: URL; pathname: string };
|
|
req: Request;
|
|
server: Server;
|
|
mode: "dev" | "prod";
|
|
handle: PrasiHttpHandler;
|
|
serveStatic?: any;
|
|
serveAPI?: any;
|
|
index: { head: string[]; body: string[]; render: () => string };
|
|
prasi: { page_id?: string; params?: Record<string, any> };
|
|
}) => Promise<Response>;
|
|
init?: (arg: { port?: number }) => Promise<void>;
|
|
}
|
|
|
|
export type ServerCtx = {
|
|
server: Serve;
|
|
url: {
|
|
pathname: string;
|
|
raw: URL;
|
|
};
|
|
req: Request;
|
|
};
|