epps
Version:
Enhances Pinia stores with advanced features such as persistence, encryption, and store extension. Simplifies state management and ensures data security for Vue.js and Nuxt applications.
26 lines (25 loc) • 1.02 kB
TypeScript
import Crypt from "../services/Crypt";
import Persister from "../services/Persister";
import Store from "./Store";
import type { Store as PiniaStore, StateTree } from "pinia";
export default class StorePersister extends Store {
protected _crypt?: Crypt;
protected _persister?: Persister;
private _statePropertiesNotToPersist;
constructor(store: PiniaStore, persister: Persister, watchedStore: string[], crypt?: Crypt);
augmentStore(): void;
cryptState(state: StateTree, decrypt?: boolean): StateTree;
getPersistedState(): Promise<StateTree | undefined>;
getStatePropertyToNotPersist(): string[];
hasPersistProperty(): boolean;
persist(): Promise<void>;
populateState(state: StateTree, persistedState?: StateTree): StateTree;
propertyShouldBePersisted(property: string): boolean;
private remember;
shouldBePersisted(): boolean;
private stateIsEmpty;
private stopWatch;
private storeSubscription;
toBeCrypted(): boolean;
toBeWatched(): boolean;
}