@sword-code-practice/sword-plugin-server
Version:
sword框架内置在运行server上的插件
41 lines (35 loc) • 1.05 kB
TypeScript
// 运行时的log类型, 分为info, success, error
type LogType = {
err: (v: string | Error) => void;
info: (v: string) => void;
success: (v: string) => void;
};
interface ContextData {
query?: unknown;
params?: unknown;
res?: unknown;
}
interface HttpContext<T extends ContextData = ContextData> {
readonly key: string; // context的key由api构造
readonly method: HttpInstructMethod[];
readonly proto: Record<string, unknown>;
readonly reqHeaders: Record<string, unknown>;
resHeaders: Record<string, unknown>;
query: T['query'];
params: T['params'];
return?: {
data: T['res']; // 返回对象
};
}
type HttpInstructMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE';
type Plugin = {
name: string;
// 提供几个钩子用来定义函数,作为框架runtime的shim
server?: {
start: (...args: any[]) => Promise<void> | void;
};
log?: LogType;
context?: (context: HttpContext) => HttpContext;
};
declare const useServer: () => Plugin;
export { useServer };