@lvetechs/micro-app 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,52 @@
1
+ import { Component, ReactNode, ReactElement } from 'react';
2
+
3
+ /**
4
+ * 错误边界 Props
5
+ */
6
+ export interface ErrorBoundaryProps {
7
+ /** 子应用名称 */
8
+ appName?: string;
9
+ /** 子组件 */
10
+ children: ReactElement;
11
+ /** 错误回调 */
12
+ onError?: (error: Error, appName?: string) => void;
13
+ /** 自定义错误 UI */
14
+ fallback?: ReactNode;
15
+ /** 重新加载回调 */
16
+ onRetry?: (appName?: string) => void;
17
+ }
18
+ /**
19
+ * 错误边界状态
20
+ */
21
+ interface ErrorBoundaryState {
22
+ hasError: boolean;
23
+ error: Error | null;
24
+ }
25
+ /**
26
+ * 错误边界组件
27
+ *
28
+ * 使用示例:
29
+ * ```tsx
30
+ * import { ErrorBoundary } from '@lvetechs/micro-app'
31
+ *
32
+ * function App() {
33
+ * return (
34
+ * <ErrorBoundary
35
+ * appName="子应用名称"
36
+ * onError={(error) => console.error(error)}
37
+ * fallback={<div>自定义错误 UI</div>}
38
+ * >
39
+ * <ChildComponent />
40
+ * </ErrorBoundary>
41
+ * )
42
+ * }
43
+ * ```
44
+ */
45
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
46
+ constructor(props: ErrorBoundaryProps);
47
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
48
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
49
+ handleRetry: () => void;
50
+ render(): string | number | true | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode>;
51
+ }
52
+ export default ErrorBoundary;
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+ import { SubAppConfig, MicroAppStatus } from '../types';
3
+
4
+ /**
5
+ * MicroApp 组件 Props
6
+ */
7
+ export interface MicroAppProps {
8
+ /** 子应用配置数组 */
9
+ apps: SubAppConfig[];
10
+ /** 当前激活的应用名称(只渲染一个应用) */
11
+ activeApp?: string;
12
+ /** 错误回调 */
13
+ onError?: (error: Error, appName?: string) => void;
14
+ /** 状态变化回调 */
15
+ onStatusChange?: (name: string, status: MicroAppStatus) => void;
16
+ /** 加载完成回调 */
17
+ onLoad?: (appName: string) => void;
18
+ /** 自定义加载中 UI */
19
+ loading?: ReactNode;
20
+ /** 自定义错误 UI (对所有子应用生效) */
21
+ errorFallback?: ReactNode;
22
+ /** 子组件(渲染在主应用中) */
23
+ children?: ReactNode;
24
+ }
25
+ export declare function MicroApp(props: MicroAppProps): import("react/jsx-runtime").JSX.Element;
26
+ export default MicroApp;
@@ -0,0 +1,21 @@
1
+ import { ReactNode, ErrorInfo } from 'react';
2
+
3
+ /** 对外暴露的 Props */
4
+ export interface MicroAppErrorBoundaryProps {
5
+ /** 子应用名称,用于日志和状态上报 */
6
+ appName: string;
7
+ /** 子应用组件 */
8
+ children: ReactNode;
9
+ /** 错误回调(可选) */
10
+ onError?: (error: Error, errorInfo: ErrorInfo) => void;
11
+ }
12
+ /**
13
+ * 函数组件包裹 Class ErrorBoundary
14
+ *
15
+ * 核心机制:
16
+ * - 用 useState 维护一个 resetKey
17
+ * - 将 resetKey 作为 ErrorBoundaryInner 的 key
18
+ * - 点击"重试"时 resetKey + 1 → key 变化 → React 18 完整卸载旧组件树、挂载新组件树
19
+ * - 这是 React 18 中重置 Error Boundary 最干净的方式
20
+ */
21
+ export default function MicroAppErrorBoundary({ appName, children, onError, }: MicroAppErrorBoundaryProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { SubAppConfig } from '../types';
2
+
3
+ interface MicroAppLoaderProps {
4
+ apps: SubAppConfig[];
5
+ }
6
+ export default function MicroAppLoader({ apps }: MicroAppLoaderProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ============================================
3
+ * 微应用监控组件 (MicroAppMonitor.tsx)
4
+ * ============================================
5
+ *
6
+ * 这个组件负责监控子应用的"健康状态",类似于医院的监护仪:
7
+ * 1. 启动应用(相当于"开机")
8
+ * 2. 监控运行状态(相当于"心跳监测")
9
+ * 3. 处理错误(相当于"报警")
10
+ * 4. 支持重启(相当于"重新启动")
11
+ * ```
12
+ */
13
+ /**
14
+ * 组件的属性类型定义
15
+ *
16
+ * TypeScript 接口(interface)用于定义对象的"形状"
17
+ * 这样在使用组件时,编辑器会提供智能提示和类型检查
18
+ */
19
+ interface MicroAppMonitorProps {
20
+ /** 应用名称,用于标识和日志 */
21
+ appName: string;
22
+ /** 应用路径,用于路由匹配 */
23
+ appPath: string;
24
+ /** 子组件,即要监控的子应用 */
25
+ children: React.ReactNode;
26
+ /** 状态变化时的回调函数(可选) */
27
+ onStatusChange?: (status: MicroAppStatus) => void;
28
+ }
29
+ /**
30
+ * 微应用监控组件
31
+ *
32
+ * @param appName - 应用名称
33
+ * @param appPath - 应用路径
34
+ * @param children - 子应用组件
35
+ * @param onStatusChange - 状态变化回调
36
+ */
37
+ export default function MicroAppMonitor({ appName, appPath, children, onStatusChange, }: MicroAppMonitorProps): import("react/jsx-runtime").JSX.Element;
38
+ export {};
@@ -0,0 +1,6 @@
1
+ interface MicroAppStatusPanelProps {
2
+ appName: string;
3
+ showDetails?: boolean;
4
+ }
5
+ export default function MicroAppStatusPanel({ appName, showDetails, }: MicroAppStatusPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,24 @@
1
+ import { default as React } from 'react';
2
+
3
+ export declare function useThrowError(): (error: Error | string) => void;
4
+ export interface RemoteAppLoaderProps {
5
+ /** 远程应用 URL */
6
+ url: string;
7
+ /** 容器 ID(用于挂载) */
8
+ containerId: string;
9
+ /** 加载模式:iframe 或 dynamic(动态加载资源) */
10
+ mode?: 'iframe' | 'dynamic';
11
+ /** iframe 样式 */
12
+ iframeStyle?: React.CSSProperties;
13
+ /** 加载失败回调 */
14
+ onError?: (error: Error) => void;
15
+ /** 加载成功回调 */
16
+ onLoad?: () => void;
17
+ }
18
+ /**
19
+ * 远程应用加载器组件
20
+ *
21
+ * @param mode - 'iframe': 使用 iframe 加载(适合完整页面)
22
+ * - 'dynamic': 动态加载 JS/CSS 资源(适合 UMD 模块)
23
+ */
24
+ export default function RemoteAppLoader({ url, containerId, mode, iframeStyle, onError, onLoad, }: RemoteAppLoaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { MicroAppService, MicroAppOptions } from '../types';
2
+
3
+ /**
4
+ * 创建微前端服务(函数式实例化)
5
+ * @param options 配置选项
6
+ * @returns 微前端服务实例
7
+ */
8
+ export declare function createMicroApp(options: MicroAppOptions): MicroAppService;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ============================================
3
+ * @lvetechs/micro-app 入口文件
4
+ * ============================================
5
+ *
6
+ * 轻量级微前端框架
7
+ * 支持函数式实例化和组件式实例化两种模式
8
+ */
9
+ export type { MicroAppStatus, LoadMode, SubAppConfig, MicroAppInfo, MicroAppInstance, MicroAppOptions, MicroAppService, } from './types';
10
+ export { createMicroApp } from './core/MicroAppManager';
11
+ export { MicroApp } from './components/MicroApp';
12
+ export type { MicroAppProps } from './components/MicroApp';
13
+ export { ErrorBoundary } from './components/ErrorBoundary';
14
+ export type { ErrorBoundaryProps } from './components/ErrorBoundary';
15
+ export declare const version = "1.0.0";