0.0.4 • Published 3 months ago

@skodacustomerjourney/feature-apps-loader-dom v0.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
3 months ago

Skoda feature apps loader

Feature App is a microfrontend that encapsulates a composable and reusable UI. This package allows and simplifies integration of feature applications developed by Skoda.

Installation

npm install @skodacustomerjourney/feature-apps-loader-dom

Usage

Example of integration of Forms feature application.

Prepare container for feature application somewhere in your html. Here the loader will mount feature app.

<div id="feature-app-container"></div>

Use SkodaFeatureAppLoader mount feature app in container.

import { SkodaFeatureAppLoader } from '@skodacustomerjourney/feature-apps-loader-dom';

const localeServiceConfig = { countryCode: 'cz', bid: '260', language: 'cs', currency: 'czk' };
const formsFeatureAppConfig = { formCode: 'cypress_tests_0', isTemp: false };
const skodaFeatureAppLoader = new SkodaFeatureAppLoader('Skoda:feature-apps-integrator', localeServiceConfig);

skodaFeatureAppLoader.loadFeatureApp(
    'feature-app-container',
    'Skoda:forms',
    'https://skoda-forms-api-dev.azurewebsites.net',
    'forms-feature-app.umd.js',
    formsFeatureAppConfig
);

Feature Services provide shared state and shared functionality to consumers, e.g. Feature Apps. "locale-service" is required and consumed by majority of Skoda feature apps.

  • containerId - loader will find container (element) with this id and mount feature application inside.
  • featureAppId - The Feature App ID is required to identify the Feature App instance. Multiple Feature App Loaders with the same featureAppId will render the same Feature app instance.
  • src - URL of client module bundle. Can be absolute or relative. If relative, loader will download the resource from baseUrl.
  • baseUrl - feature apps refers to its own resources that are available on this url.
  • config - feature app configuration object. Each feature app has unique configuration. Above is minimal example of configuration of Forms feature application.

Loading multiple feature apps

To load multiple (different or same) feature apps prepare multiple containers in your html and call loadFeatureApp for each feature app you want to load.