docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
Create a framework-level router wrapper that discovers micro frontends asynchronously and mounts them alongside the existing application routes.
appData contains { token: "abc" }, the discovery step retrieves micro-app definitions from https://example.local/apps?token=abc and returns two entries: a dashboard app active at /dashboard and an admin app active at /admin, each including a title string. @test/. @testpathname, appEnter, and appLeave as navigation occurs and reflects those values in the rendered output. @testexport interface MicroAppDefinition {
name: string;
title: string;
activePath: string;
url: string | string[];
}
export interface FrameworkLayoutProps {
pathname: string;
routeInfo: Record<string, unknown>;
appEnter: Partial<MicroAppDefinition>;
appLeave: Partial<MicroAppDefinition>;
updateApps(apps: MicroAppDefinition[]): void;
children?: React.ReactNode;
}
export interface FrameworkIcestarkConfig {
getApps(appData?: Record<string, any>): Promise<MicroAppDefinition[]> | MicroAppDefinition[];
layout?: React.ComponentType<FrameworkLayoutProps>;
appRouter?: {
ErrorComponent?: React.ComponentType<any>;
LoadingComponent?: React.ComponentType<any>;
NotFoundComponent?: React.ComponentType<any>;
shouldAssetsRemove?: (assetUrl: string) => boolean;
};
}
export const icestark: FrameworkIcestarkConfig;Provides router wrapping and micro-frontend orchestration for Ice.js framework apps.