@maskedeng-tom/ssrsx
Version:
server side renderer with tsx
35 lines (34 loc) • 1.6 kB
TypeScript
import Koa from 'koa';
import express from 'express';
import { SsrsxOptions, HttpServer } from './types';
interface SsrsxOptionsKoa<USER_CONTEXT = unknown> extends SsrsxOptions<USER_CONTEXT> {
context?: (server: Required<Pick<HttpServer, 'koa'>>) => USER_CONTEXT | Promise<USER_CONTEXT>;
}
declare const ssrsxKoa: <T = unknown>(ssrsxOption?: SsrsxOptionsKoa<T>) => Promise<{
middleware: (ctx: Koa.Context, next: Koa.Next) => Promise<any>;
hotReload: () => void;
}>;
interface SsrsxOptionsExpress<USER_CONTEXT = unknown> extends SsrsxOptions<USER_CONTEXT> {
context?: (server: Required<Pick<HttpServer, 'express'>>) => USER_CONTEXT | Promise<USER_CONTEXT>;
}
declare const ssrsxExpress: <T = unknown>(ssrsxOption?: SsrsxOptionsExpress<T>) => Promise<{
middleware: (req: express.Request, res: express.Response, next: express.NextFunction) => void;
hotReload: () => void;
}>;
interface SsrsxOptionsDumb<USER_CONTEXT = unknown> extends SsrsxOptions<USER_CONTEXT> {
context?: (server: Required<Pick<HttpServer, 'dumb'>>) => USER_CONTEXT | Promise<USER_CONTEXT>;
}
declare const ssrsxDumb: <T = unknown>(ssrsxOption?: SsrsxOptionsDumb<T>) => Promise<{
dumb: {
request: (requestUrl: string) => void;
response: () => Promise<unknown>;
req: () => {
url: string;
};
res: (res: import("./server/sendData").SendData) => void;
};
request: (url: string) => Promise<unknown>;
hotReload: () => void;
}>;
export { ssrsxKoa, ssrsxExpress, ssrsxDumb };
export type { SsrsxOptionsKoa, SsrsxOptionsExpress, SsrsxOptionsDumb };