@maskedeng-tom/ssrsx
Version:
server side renderer with tsx
45 lines (44 loc) • 1.57 kB
TypeScript
import Koa from 'koa';
import express from 'express';
import { VirtualElement } from 'ssrsxjsx/jsx-runtime';
import { DumbServer } from './dumbServer';
interface SsrsxOptions<USER_CONTEXT = unknown> {
baseUrl?: string;
development?: boolean;
clientRoot?: string;
staticRoot?: string;
jsRoot?: string;
requireJsRoot?: string;
requireJsPaths?: {
[key: string]: string;
};
clientScriptBaseUrl?: string;
ignoreExtensions?: string[];
cacheControlMaxAge?: number;
context?: ((server: Required<Pick<HttpServer, 'koa'>>) => USER_CONTEXT | Promise<USER_CONTEXT>) | ((server: Required<Pick<HttpServer, 'express'>>) => USER_CONTEXT | Promise<USER_CONTEXT>) | ((server: Required<Pick<HttpServer, 'dumb'>>) => USER_CONTEXT | Promise<USER_CONTEXT>);
app?: VirtualElement;
sourceMap?: boolean;
hotReload?: number | boolean;
hotReloadWait?: number;
hotReloadWaitMax?: number;
hotReloadWaitInclement?: number;
}
interface KoaServer {
ctx: Koa.Context;
next: Koa.Next;
}
interface ExpressServer {
req: express.Request;
res: express.Response;
next: express.NextFunction;
}
interface HttpServer {
koa?: KoaServer;
express?: ExpressServer;
dumb?: DumbServer;
}
declare const isKoaServer: (server: HttpServer) => boolean;
declare const isExpressServer: (server: HttpServer) => boolean;
declare const isDumbServer: (server: HttpServer) => boolean;
export { SsrsxOptions, KoaServer, ExpressServer, DumbServer, HttpServer };
export { isKoaServer, isExpressServer, isDumbServer };