初始化项目
This commit is contained in:
22
src/store/plugins/index.ts
Normal file
22
src/store/plugins/index.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import type { PiniaPluginContext } from 'pinia';
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { SetupStoreId } from '@/enum';
|
||||
|
||||
/**
|
||||
* The plugin reset the state of the store which is written by setup syntax
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
export function resetSetupStore(context: PiniaPluginContext) {
|
||||
const setupSyntaxIds = Object.values(SetupStoreId) as string[];
|
||||
|
||||
if (setupSyntaxIds.includes(context.store.$id)) {
|
||||
const { $state } = context.store;
|
||||
|
||||
const defaultStore = cloneDeep($state);
|
||||
|
||||
context.store.$reset = () => {
|
||||
context.store.$patch(defaultStore);
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user