@esmx/core
Version:
A high-performance microfrontend framework supporting Vue, React, Preact, Solid, and Svelte with SSR and Module Federation capabilities.
85 lines (84 loc) • 2.36 kB
TypeScript
import type { COMMAND, Esmx } from './core';
import { RenderContext, type RenderContextOptions } from './render-context';
import { type Middleware } from './utils/middleware';
/**
* 应用程序实例接口。
*
* App 是 Esmx 框架的应用抽象,提供了统一的接口来管理应用的生命周期、
* 静态资源和服务端渲染。
*
* @example
* ```ts
* // entry.node.ts
* export default {
* // 开发环境配置
* async devApp(esmx) {
* return import('@esmx/rspack').then((m) =>
* m.createRspackHtmlApp(esmx, {
* config(rc) {
* // 自定义 Rspack 配置
* }
* })
* );
* }
* }
* ```
*/
export interface App {
/**
* 静态资源处理中间件。
*
* 开发环境:
* - 处理源码的静态资源请求
* - 支持实时编译和热更新
* - 使用 no-cache 缓存策略
*
* 生产环境:
* - 处理构建后的静态资源
* - 支持不可变文件的长期缓存(.final.xxx)
* - 优化的资源加载策略
*
* @example
* ```ts
* server.use(esmx.middleware);
* ```
*/
middleware: Middleware;
/**
* 服务端渲染函数。
*
* 根据运行环境提供不同实现:
* - 生产环境(start):加载构建后的服务端入口文件(entry.server)执行渲染
* - 开发环境(dev):加载源码中的服务端入口文件执行渲染
*
* @param options - 渲染选项
* @returns 返回渲染上下文,包含渲染结果
*
* @example
* ```ts
* const rc = await esmx.render({
* params: { url: '/page' }
* });
* res.end(rc.html);
* ```
*/
render: (options?: RenderContextOptions) => Promise<RenderContext>;
/**
* 生产环境构建函数。
* 用于资源打包和优化。
*
* @returns 构建成功返回 true,失败返回 false
*/
build?: () => Promise<boolean>;
/**
* 资源清理函数。
* 用于关闭服务器、断开连接等。
*
* @returns 清理成功返回 true,失败返回 false
*/
destroy?: () => Promise<boolean>;
}
/**
* 创建生产环境的应用程序实例,开发环境不可用。
*/
export declare function createApp(esmx: Esmx, command: COMMAND): Promise<App>;