single-spa-layout
Version:
Layout engine for single-spa applications
129 lines (128 loc) • 3.04 kB
TypeScript
/**
* @typedef {InputRoutesConfigObject | HTMLElement | import('parse5').DefaultTreeDocument} RoutesConfig
*
* @typedef {{
* mode?: string;
* base?: string;
* containerEl?: ContainerEl;
* disableWarnings?: boolean;
* routes: Array<Route>;
* }} InputRoutesConfigObject
*
* @typedef {{
* mode: string;
* base: string;
* containerEl: ContainerEl;
* routes: Array<ResolvedRouteChild>;
* }} ResolvedRoutesConfig
*
* @typedef {UrlRoute | Application | Node} RouteChild
*
* @typedef {ResolvedUrlRoute | Application | Node} ResolvedRouteChild
*
* @typedef {string | HTMLElement | import('parse5').Element} ContainerEl
*
* @typedef {{
* type: string;
* path: string;
* routes: Array<Route>;
* default?: boolean;
* activeWhen: import('single-spa').ActivityFn;
* }} ResolvedUrlRoute
*
* @typedef {{
* type: string;
* path: string;
* routes: Array<Route>;
* }} UrlRoute
*
* @typedef {{
* type: string;
* name: string;
* props?: object;
* loader?: string | import('single-spa').ParcelConfig;
* }} Application
*
* @typedef {{
* loaders: {
* [key]: any;
* };
* props: {
* [key]: any;
* }
* }} HTMLLayoutData
*
* @param {RoutesConfig} routesConfig
* @param {HTMLLayoutData=} htmlLayoutData
* @returns {ResolvedRoutesConfig}
*/
export function constructRoutes(routesConfig: RoutesConfig, htmlLayoutData?: HTMLLayoutData | undefined): ResolvedRoutesConfig;
export type RoutesConfig = HTMLElement | import("parse5").DefaultTreeDocument | {
mode?: string;
base?: string;
containerEl?: ContainerEl;
disableWarnings?: boolean;
routes: Array<any>;
};
export type InputRoutesConfigObject = {
mode?: string;
base?: string;
containerEl?: ContainerEl;
disableWarnings?: boolean;
routes: Array<any>;
};
export type ResolvedRoutesConfig = {
mode: string;
base: string;
containerEl: ContainerEl;
routes: Array<ResolvedRouteChild>;
};
export type RouteChild = Node | {
type: string;
name: string;
props?: object;
loader?: string | import('single-spa').ParcelConfig;
} | {
type: string;
path: string;
routes: Array<any>;
};
export type ResolvedRouteChild = Node | {
type: string;
path: string;
routes: Array<any>;
default?: boolean;
activeWhen: import('single-spa').ActivityFn;
} | {
type: string;
name: string;
props?: object;
loader?: string | import('single-spa').ParcelConfig;
};
export type ContainerEl = string | object | HTMLElement | import("parse5").DefaultTreeElement;
export type ResolvedUrlRoute = {
type: string;
path: string;
routes: Array<any>;
default?: boolean;
activeWhen: import('single-spa').ActivityFn;
};
export type UrlRoute = {
type: string;
path: string;
routes: Array<any>;
};
export type Application = {
type: string;
name: string;
props?: object;
loader?: string | import('single-spa').ParcelConfig;
};
export type HTMLLayoutData = {
loaders: {
[key]: any;
};
props: {
[key]: any;
};
};