Skip to main content

# CMicroAppHost<AppObjects, AppEvents>

Micro-frontend host application class (singleton). Manages hosting and coordination of multiple micro-frontend guest applications. Provides shared services like navigation, theming, analytics, and state management.

## Example​

    const host = new CMicroAppHost({
      version: '1.0.0',
      history: browserHistory,
      onInit: ({ history, theme }) => {
        console.log('Host initialized');
      },
      scriptingObjects: {
        customService: new CustomService()
      }
    });

## Type Parameters​

### AppObjects​

`AppObjects` extends `ScriptingObjects` = `Partial`<`ScriptingObjectTypes`>

Type of custom scripting objects

### AppEvents​

`AppEvents` extends `EventListeners` = `Events`

Type of custom event listeners

## Implements​

- `IMicroAppHost`<`AppObjects`, `AppEvents`>

## Methods​

### addScriptingObject()​

    addScriptingObject<SO>(so: SO, params?: AddScriptingObjectParams): void;

add scripting object for child microapp to use

#### Type Parameters​

##### SO​

`SO` extends `IScriptingObject`

#### Parameters​

##### so​

`SO`

The scripting object to be added.

##### params?​

`AddScriptingObjectParams`

Optional parameters for adding the scripting object.

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.addScriptingObject

### closeWaitMessage()​

    closeWaitMessage(): void;

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.closeWaitMessage

### dispatchEvent()​

    dispatchEvent<EventId, Params, Options>(params: DispatchEventParam<EventId, Params, Options>): Promise<void | any[]>;

dispatch event to child microapp

#### Type Parameters​

##### EventId​

`EventId` extends `string`

##### Params​

`Params` extends `any`

##### Options​

`Options` extends `EventOptions`

#### Parameters​

##### params​

`DispatchEventParam`<`EventId`, `Params`, `Options`>

event parameters

#### Returns​

`Promise`<`void` | `any`[]>

A promise that resolves with the combined results of dispatched events.

#### Implementation of​

    IMicroAppHost.dispatchEvent

### getAuthToken()​

    getAuthToken(): string;

#### Returns​

`string`

#### Implementation of​

    IMicroAppHost.getAuthToken

### getBreakpoint()​

    getBreakpoint(): keyof BreakPoints;

#### Returns​

keyof `BreakPoints`

#### Implementation of​

    IMicroAppHost.getBreakpoint

### getGuest()​

    getGuest<T>(id: string): T | null;

#### Type Parameters​

##### T​

`T`

#### Parameters​

##### id​

`string`

#### Returns​

`T` | `null`

#### Implementation of​

    IMicroAppHost.getGuest

### getGuests()​

    getGuests(): Record<string, unknown>;

#### Returns​

`Record`<`string`, `unknown`>

#### Implementation of​

    IMicroAppHost.getGuests

### getItem()​

    getItem(key: string): string | null;

#### Parameters​

##### key​

`string`

#### Returns​

`string` | `null`

#### Implementation of​

    IMicroAppHost.getItem

### getLogger()​

    getLogger(): MicroFrontEndLogger;

#### Returns​

`MicroFrontEndLogger`

### getObject()​

    getObject<T>(name: string): Promise<T>;

#### Type Parameters​

##### T​

`T`

#### Parameters​

##### name​

`string`

#### Returns​

`Promise`<`T`>

#### Implementation of​

    IMicroAppHost.getObject

### getProps()​

    getProps(): HostOptions;

#### Returns​

`HostOptions`

### getViewportSize()​

    getViewportSize(): {
      height: number;
      width: number;
    };

#### Returns​

    {
      height: number;
      width: number;
    }

##### height​

    height: number;

##### width​

    width: number;

#### Implementation of​

    IMicroAppHost.getViewportSize

### logout()​

    logout(): void;

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.logout

### navigate()​

    navigate(url: To, state?: any): void;

#### Parameters​

##### url​

`To`

##### state?​

`any`

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.navigate

### onBreakpointChangeEvent()​

    onBreakpointChangeEvent(eventHandler: BreakpointChangeEventHandler): string;

#### Parameters​

##### eventHandler​

`BreakpointChangeEventHandler`

#### Returns​

`string`

#### Implementation of​

    IMicroAppHost.onBreakpointChangeEvent

### onResizeEvent()​

    onResizeEvent(eventHandler: ResizeEventHandler): string;

#### Parameters​

##### eventHandler​

`ResizeEventHandler`

#### Returns​

`string`

#### Implementation of​

    IMicroAppHost.onResizeEvent

### openErrorBanner()​

    openErrorBanner(message: string): void;

#### Parameters​

##### message​

`string`

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.openErrorBanner

### openWaitMessage()​

    openWaitMessage(): void;

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.openWaitMessage

### publish()​

    publish<Type>(message: string | symbol, data?: Type): boolean;

#### Type Parameters​

##### Type​

`Type`

#### Parameters​

##### message​

`string` | `symbol`

##### data?​

`Type`

#### Returns​

`boolean`

#### Implementation of​

    IMicroAppHost.publish

### removeScriptingObject()​

    removeScriptingObject(objectId: Extract<keyof AppObjects, string>): void;

removes scripting object from child microapp use

#### Parameters​

##### objectId​

`Extract`<keyof `AppObjects`, `string`>

unique id of the scripting object

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.removeScriptingObject

### renewAuthToken()​

    renewAuthToken(): string;

#### Returns​

`string`

#### Implementation of​

    IMicroAppHost.renewAuthToken

### renewSessionTimer()​

    renewSessionTimer(): Promise<void>;

#### Returns​

`Promise`<`void`>

#### Implementation of​

    IMicroAppHost.renewSessionTimer

### sendBAEvent()​

    sendBAEvent(data: BAEvent): void;

#### Parameters​

##### data​

`BAEvent`

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.sendBAEvent

### setItem()​

    setItem(key: string, value: string): void;

#### Parameters​

##### key​

`string`

##### value​

`string`

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.setItem

### setSystemVersion()​

    setSystemVersion(version: string): void;

#### Parameters​

##### version​

`string` = `'latest'`

#### Returns​

`void`

### subscribe()​

    subscribe<T>(message: string | symbol, func: SubscriptionListener<T>): string;

#### Type Parameters​

##### T​

`T`

#### Parameters​

##### message​

`string` | `symbol`

##### func​

`SubscriptionListener`<`T`>

#### Returns​

`string`

#### Implementation of​

    IMicroAppHost.subscribe

### unsubscribe()​

    unsubscribe(token: string): void;

#### Parameters​

##### token​

`string`

#### Returns​

`void`

#### Implementation of​

    IMicroAppHost.unsubscribe

### getInstance()​

    static getInstance<AppObjects, AppEvents>(params?: ConstructorParams): CMicroAppHost<AppObjects, AppEvents>;

#### Type Parameters​

##### AppObjects​

`AppObjects` extends `ScriptingObjects` = `Partial`<`ScriptingObjectTypes`>

##### AppEvents​

`AppEvents` extends `EventListeners` = `Events`

#### Parameters​

##### params?​

`ConstructorParams`

#### Returns​

`CMicroAppHost`<`AppObjects`, `AppEvents`>

### isInitialized()​

    static isInitialized(): boolean;

#### Returns​

`boolean`

## Properties​

### activeGuests​

    activeGuests: Record<string, unknown>;

### scriptingObjects​

    scriptingObjects: Record<string, any>;