5 changed files with 52 additions and 1 deletions
			
			
		@ -0,0 +1,38 @@
					 | 
				
			||||
/** | 
				
			||||
 * Pinia Persist Plugin | 
				
			||||
 * Pinia 持久化插件 | 
				
			||||
 * @link https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/
 | 
				
			||||
 * | 
				
			||||
 */ | 
				
			||||
import type { Pinia } from 'pinia' | 
				
			||||
import { createPersistedState } from 'pinia-plugin-persistedstate' | 
				
			||||
import type { PersistedStateFactoryOptions } from 'pinia-plugin-persistedstate' | 
				
			||||
import { getCommonStoragePrefix } from '@/utils/env' | 
				
			||||
 | 
				
			||||
export const PERSIST_KEY_PREFIX = getCommonStoragePrefix() | 
				
			||||
 | 
				
			||||
// TODO customSerializer
 | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Register Pinia Persist Plugin | 
				
			||||
 * 注册 Pinia 持久化插件 | 
				
			||||
 * | 
				
			||||
 * @param pinia Pinia instance Pinia 实例 | 
				
			||||
 */ | 
				
			||||
export function registerPiniaPersistPlugin(pinia: Pinia) { | 
				
			||||
  pinia.use(createPersistedState(createPersistedStateOptions(PERSIST_KEY_PREFIX))) | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Create Persisted State Options | 
				
			||||
 * 创建持久化状态选项 | 
				
			||||
 * | 
				
			||||
 * @param keyPrefix prefix for storage key 储存键前缀 | 
				
			||||
 * @returns persisted state factory options | 
				
			||||
 */ | 
				
			||||
export function createPersistedStateOptions(keyPrefix: string): PersistedStateFactoryOptions { | 
				
			||||
  return { | 
				
			||||
    storage: localStorage, | 
				
			||||
    key: id => `${keyPrefix}__${id}`, | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
		Reference in new issue