Description

A strongly-typed factory provider for providing language integration config.

Extends

Omit

Index

language/src/config/language-integration.provider.ts

Properties

Properties

urlLocalization
urlLocalization: UrlLocalizationConfig
Type: UrlLocalizationConfig
Optional

(Optional) The configuration for the UrlLocalizationService.

useFactory
useFactory: LanguageIntegrationConfigFactory
Type: LanguageIntegrationConfigFactory

The factory to use for creating the language integration configuration.

import { FactoryProvider, Provider } from '@angular/core';

import { UrlLocalizationConfig                          } from '../url-localization/config/url-localization-config';
import { provideUrlLocalization                         } from '../url-localization/config/url-localization.provider';
import { LanguageIntegrationConfig, LanguageIntegration } from './language-integration-config';

/** Represents a factory that receives dependencies and produces the language integration configuration for an app. */
export type LanguageIntegrationConfigFactory = (...deps: any[]) => LanguageIntegrationConfig;

/**
 * A strongly-typed factory provider for providing language integration config.
 *
 * @export
 * @interface LanguageIntegrationProvider
 * @extends {(Omit<FactoryProvider, 'provide' | 'multi'>)}
 */
export interface LanguageIntegrationProvider extends Omit<FactoryProvider, 'provide' | 'multi'>
{
    /**
     * The factory to use for creating the language integration configuration.
     *
     * @type {LanguageIntegrationConfigFactory}
     */
    useFactory      : LanguageIntegrationConfigFactory;
    /**
     * (Optional) The configuration for the `UrlLocalizationService`.
     *
     * @type {UrlLocalizationConfig}
     */
    urlLocalization?: UrlLocalizationConfig;
}

/**
 * Generates language integration tokens and services to be provided in a module.
 * Used by `LanguageIntegrationModule.forRoot()`.
 *
 * @export
 * @param {LanguageIntegrationProvider} { useFactory, deps, urlLocalization } The language integration provider configuration.
 * @returns {Provider[]} An array of providers for language integration.
 */
export function provideLanguageIntegration({ useFactory, deps, urlLocalization }: LanguageIntegrationProvider): Provider[]
{
    return [
        { provide: LanguageIntegration, useFactory, deps },
        ...provideUrlLocalization(urlLocalization)
    ];
}

results matching ""

    No results matching ""