UNPKG

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.

56 lines (43 loc) • 1.77 kB
import { PiniaPlugin, PiniaPluginContext, Store } from 'pinia'; import { EppsConstructorProps } from '../plugins/epps'; import { ExtendedStateOptions } from '../plugins/extendedState'; import { CollectionState, CollectionStoreMethods, DefineEppsStore, ExtendedState } from './store'; export interface AnyObject { [key: number | string | symbol]: any; } export interface SearchCollectionCriteria { [key: number | string | symbol]: boolean | number | string; } export type { AugmentOptionApiStore, AugmentStore, CollectionState, CollectionStoreMethods, DefineExtendedStore, DefineExtendedStoreOptionApi, EppsStore, ExtendState, ExtendedStore, PersistedState, PersistedStore } from "./store"; declare module 'epps' { export function createPlugin(dbName: string, cryptIv?: string, cryptKey?: string): PiniaPlugin; export function createPluginMock(dbName: string, cryptIv?: string, cryptKey?: string): PiniaPlugin; export function defineEppsStore<TStore, TState>(id: string, storeDefinition: () => AnyObject): DefineEppsStore<TStore, TState> export function defineStoreId(prefix: string, id: string): string export class Epps { constructor({ dbName, dbKeyPath, cryptIv, cryptKey }: EppsConstructorProps) plugin(context: PiniaPluginContext): void } export function extendedState( parentsStores: Store[], options?: ExtendedStateOptions ): ExtendedState; export function getParentStorePropertyValue( propertyName: string, parentStore: AnyObject | string | number | undefined, parentsStores?: Store[] ): any; export function useCollectionStore<T>(id: string): Store & CollectionState<T> & CollectionStoreMethods; }