import {ApiRequest, ApiResponse} from "@gongt/ts-stl-library/request/protocol"; import {ErrorResponse} from "@gongt/ts-stl-library/request/request-error"; import {Context, Middleware, Request, Response} from "koa"; import {Middleware as ComposeMiddleware} from "koa-compose"; export function responseJson(response: Response, data: Res) { response.body = { status: 0, message: '', ...data as object, }; response.type = 'json'; } export interface TypedRequest extends Request { ctx: TypedContext; response: TypedResponse; body: Req; } export interface TypedResponse extends Response { ctx: TypedContext; request: TypedRequest; body: Res; } export interface TypedContext extends Context { request: TypedRequest; response: TypedResponse; session: Ses; cookie: Cok; } export type AnyTypedContext = TypedContext; export type TypedMiddleware = ComposeMiddleware>; export function tsHint(middleware: TypedMiddleware): Middleware { return middleware; }