UNPKG

@difizen/mana-core

Version:

53 lines 2.85 kB
import type { MaybePromise } from '@difizen/mana-common'; import { DisposableCollection } from '@difizen/mana-common'; import type { Contribution } from '@difizen/mana-syringe'; import { Syringe } from '@difizen/mana-syringe'; import { ApplicationContribution } from '../application/index'; import type { ConfigurationNode } from './configuration-protocol'; import type { ConfigurationStorage } from './configuration-storage'; import { SchemaValidator } from './validation'; export declare const ConfigurationContribution: Syringe.DefinedToken; export interface ConfigurationContribution { registerConfiguration?: () => MaybePromise<ConfigurationNode<any>>; registerConfigurations?: () => MaybePromise<ConfigurationNode<any>[]>; deregisterConfigurations?: () => MaybePromise<ConfigurationNode<any>[]>; } export declare class ConfigurationRegistry implements ApplicationContribution { protected readonly schemaValidator: SchemaValidator; protected providers: Contribution.Provider<ConfigurationContribution>; protected toDispose: DisposableCollection; protected defaultStorage: ConfigurationStorage; protected configurationNodes: ConfigurationNode<unknown>[]; protected scopes: Map<string, ConfigurationStorage>; constructor(schemaValidator: SchemaValidator, providers: Contribution.Provider<ConfigurationContribution>); onStart(): Promise<void>; protected setupConfiguration(): Promise<void>; getStorage(configuration: ConfigurationNode<any>): ConfigurationStorage; hasConfiguration(configuration: ConfigurationNode<any>): boolean; findConfiguration<T>(id: string): ConfigurationNode<T> | undefined; /** * Register a configuration to the registry. */ registerConfiguration(configuration: ConfigurationNode<any>): void; /** * Register multiple configurations to the registry. */ registerConfigurations(configurations: ConfigurationNode<any>[]): void; /** * Deregister multiple configurations from the registry. */ deregisterConfigurations(configurations: ConfigurationNode<any>[]): void; deregisterConfiguration(configuration: ConfigurationNode<any>): void; getConfigurationsByScope(storage: ConfigurationStorage): ConfigurationNode<unknown>[] | undefined; getConfigurationsByStorage(storage: ConfigurationStorage): ConfigurationNode<unknown>[] | undefined; getStorages(): ConfigurationStorage[]; /** * 添加scope,已包含错误处理 */ addStorage(scope: ConfigurationStorage): void; getConfigurationByNamespace(namespace: string[], isFullMatch?: boolean): ConfigurationNode<unknown>[]; getNamespace(node: ConfigurationNode<any>): string[]; getRootNamespaces(): string[]; getChildNamespaces(namespace: string[]): string[][]; } //# sourceMappingURL=configuration-registry.d.ts.map