@sanpjs/core
Version:
@sanpjs/core
40 lines (39 loc) • 1.21 kB
TypeScript
/// <reference types="node" />
/**
* @file create render context, used for ssr and csr
* @author gkiwi
*/
import * as http from 'http';
import type { Request as ExpressRequest, Response as ExpressResponse } from 'express';
import type { Request as KoaRequest, Response as KoaResponse } from 'koa';
import { Context } from '@sanpjs/core/types';
declare type Request = ExpressRequest | KoaRequest | http.IncomingMessage;
declare type Response = ExpressResponse | KoaResponse | http.ServerResponse;
interface Router {
redirect(path: string): void;
}
export interface SanpRequest extends http.IncomingMessage {
path?: string;
method?: string;
}
export interface SanpResponse extends http.ServerResponse {
}
export interface RenderContext {
[key: string]: unknown;
isServer: boolean;
isClient: boolean;
isProd: boolean;
isDev: boolean;
router: Router;
redirect: (url: string) => void;
query: Record<string, unknown>;
request: SanpRequest;
response: SanpResponse;
sanp: Context;
body?: Record<string, unknown>;
}
declare const _default: ({ request, response }: {
request: Request;
response: Response;
}) => RenderContext;
export default _default;