@spartacus/core
Version:
Spartacus - the core framework
59 lines (58 loc) • 2.16 kB
TypeScript
import { BehaviorSubject, Observable } from 'rxjs';
import { Config } from '../config-tokens';
import * as i0 from "@angular/core";
/**
* Provides support for CONFIG_INITIALIZERS
*/
export declare class ConfigInitializerService {
protected config: Config;
protected initializerGuard: any;
protected rootConfig: Config;
constructor(config: Config, initializerGuard: any, rootConfig: Config);
protected ongoingScopes$: BehaviorSubject<string[]>;
/**
* Returns true if config is stable, i.e. all CONFIG_INITIALIZERS resolved correctly
*/
get isStable(): boolean;
/**
* Recommended way to get config for code that can run before app will finish
* initialization (APP_INITIALIZERS, selected service constructors)
*
* Used without parameters waits for the whole config to become stable
*
* Parameters allow to describe which part of the config should be stable using
* string describing config part, e.g.:
* 'siteContext', 'siteContext.language', etc.
*
* @param scopes String describing parts of the config we want to be sure are stable
*/
getStable(...scopes: string[]): Observable<Config>;
/**
* Removes provided scopes from currently ongoingScopes
*
* @param scopes
*/
protected finishScopes(scopes: string[]): void;
/**
* Return true if provided scopes are not part of ongoingScopes
*
* @param scopes
* @param ongoingScopes
*/
protected areReady(scopes: string[], ongoingScopes: string[]): boolean;
/**
* Check if two scopes overlap.
*
* Example of scopes that overlap:
* 'test' and 'test', 'test.a' and 'test', 'test' and 'test.a'
*
* Example of scopes that do not overlap:
* 'test' and 'testA', 'test.a' and 'test.b', 'test.nested' and 'test.nest'
*
* @param a ScopeA
* @param b ScopeB
*/
protected scopesOverlap(a: string, b: string): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigInitializerService, [null, { optional: true; }, null]>;
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigInitializerService>;
}