phecda-server
Version:
server framework that provide IOC/type-reuse/http&rpc-adaptor
49 lines (46 loc) • 1.67 kB
TypeScript
import { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'node:http';
import { B as BaseCtx, D as DefaultOptions } from './meta-EGS-4cNY.js';
interface HttpOptions extends DefaultOptions {
/**
* 专用路由的值,默认为/__PHECDA_SERVER__,处理phecda-client发出的合并请求
*/
parallelRoute?: string | false;
/**
* 专用路由的插件(work for merge request),
*/
parallelAddons?: string[];
/**
* 是否动态计算pipe/guards/filer
*/
dynamic?: boolean;
}
interface HttpCtx extends BaseCtx {
parallel?: true;
index?: number;
query: Record<string, any>;
params: Record<string, string>;
body: Record<string, any>;
headers: IncomingHttpHeaders;
category: 'http';
redirect: (url: string, status?: number) => void;
getCookie(key: string): string | undefined;
setCookie(key: string, value: string, opts?: CookieSerializeOptions): void;
delCookie(key: string): void;
setResHeaders: (headers: Record<string, string>) => void;
setResStatus: (status: number) => void;
getRequest: () => IncomingMessage;
getResponse: () => ServerResponse;
}
interface CookieSerializeOptions {
domain?: string | undefined;
encode?(value: string): string;
expires?: Date | undefined;
httpOnly?: boolean | undefined;
maxAge?: number | undefined;
path?: string | undefined;
priority?: 'low' | 'medium' | 'high' | undefined;
sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
secure?: boolean | undefined;
partitioned?: boolean;
}
export type { CookieSerializeOptions as C, HttpCtx as H, HttpOptions as a };