UNPKG

@difizen/mana-core

Version:

46 lines 2.06 kB
import type { MaybePromise } from '@difizen/mana-common'; import { Syringe } from '@difizen/mana-syringe'; import type { ConfigurationNode } from './configuration-protocol'; import type { ConfigurationStorage } from './configuration-storage'; export declare const ConfigurationProvider: Syringe.DefinedToken; export interface ConfigurationProvider { canHandle: (storage: ConfigurationStorage) => false | number; has: <T>(node: ConfigurationNode<T>) => MaybePromise<boolean>; get: <T>(node: ConfigurationNode<T>) => MaybePromise<T>; set: <T>(node: ConfigurationNode<T>, value: T) => MaybePromise<void>; remove: <T>(node: ConfigurationNode<T>) => MaybePromise<void>; /** * 开启缓存,默认false * 对本地同步调用不用开启 * 对远端异步调用建议开启,防止请求过多 */ enableCache?: boolean; /** * 提前批量获取配置作为缓存, enableCache打开后会在应用初始化调用 * @param nodes * @returns */ prefetch?: (nodes: ConfigurationNode<any>[]) => MaybePromise<any[]>; } export declare class DefaultConfigurationProvider implements ConfigurationProvider { protected configStore: Map<string, any>; /** * 默认用内存的provider * @returns */ canHandle(storage: ConfigurationStorage): false | number; has: <T>(node: ConfigurationNode<T>) => boolean; get: <T>(node: ConfigurationNode<T>) => any; set: <T>(node: ConfigurationNode<T>, value: T) => void; remove: <T>(node: ConfigurationNode<T>) => void; } export declare class LocalStorageConfigurationProvider implements ConfigurationProvider { protected configStore: Storage; canHandle(storage: ConfigurationStorage): false | number; has: <T>(node: ConfigurationNode<T>) => boolean; get: <T>(node: ConfigurationNode<T>) => T; set: <T>(node: ConfigurationNode<T>, value: T) => void; remove: <T>(node: ConfigurationNode<T>) => void; protected prefix(key: string): string; } //# sourceMappingURL=configuration-provider.d.ts.map