29 lines
832 B
TypeScript
29 lines
832 B
TypeScript
import type { DeepPartial, Preference } from '@vben-core/typings';
|
||
|
||
import { PreferenceCache } from './cache';
|
||
import { overridesPreference } from './preference';
|
||
|
||
interface SetupPreferenceOptions {
|
||
/**
|
||
* @zh_CN 应用名,由于 @vben/preference 是公用的,后续可能有多个app,为了防止多个app缓存冲突,可在这里配置应用名
|
||
* 应用名将被用于持久化的前缀
|
||
*/
|
||
cachePrefix?: string;
|
||
/**
|
||
* @zh_CN app自行覆盖偏好设置
|
||
*/
|
||
overrides?: DeepPartial<Preference>;
|
||
}
|
||
|
||
async function setupPreference(options: SetupPreferenceOptions = {}) {
|
||
const { cachePrefix = 'vben-admin-pro', overrides = {} } = options;
|
||
|
||
const cache = new PreferenceCache(cachePrefix);
|
||
|
||
overridesPreference(overrides, cache);
|
||
}
|
||
|
||
export { setupPreference };
|
||
|
||
export type { SetupPreferenceOptions };
|