ngrx-store-localstorage
Version:
State and local storage syncing for @ngrx/store
46 lines (44 loc) • 1.86 kB
TypeScript
declare const dateReviver: (_key: string, value: any) => any;
declare const rehydrateApplicationState: ({ keys, storage, storageKeySerializer, restoreDates, }: {
keys: Keys;
storage: Storage;
storageKeySerializer: (key: string) => string;
restoreDates: boolean;
}) => any;
declare const syncStateUpdate: ({ state, keys, storage, storageKeySerializer, removeOnUndefined, syncCondition, }: {
state: any;
keys: Keys;
storage: Storage;
storageKeySerializer: (key: string) => string;
removeOnUndefined: boolean;
syncCondition?: (state: any) => any;
}) => void;
declare const defaultMergeReducer: (state: any, rehydratedState: any, action: any) => any;
declare const localStorageSync: (config: LocalStorageConfig) => (reducer: any) => (state: any, action: any) => any;
interface LocalStorageConfig {
keys: Keys;
rehydrate?: boolean;
storage?: Storage;
removeOnUndefined?: boolean;
restoreDates?: boolean;
storageKeySerializer?: (key: string) => string;
syncCondition?: (state: any) => any;
checkStorageAvailability?: boolean;
mergeReducer?: (state: any, rehydratedState: any, action: any) => any;
}
interface KeyConfiguration {
[key: string]: string[] | number[] | KeyConfiguration[] | Options | ((key: string, value: any) => any);
}
interface Options {
serialize?: (state: any) => any;
deserialize?: (state: any) => any;
reviver?: (key: string, value: any) => any;
replacer?: ((key: string, value: any) => any) | string[];
encrypt?: (message: string) => string;
decrypt?: (message: string) => string;
filter?: string[];
space?: string | number;
}
type Keys = (KeyConfiguration | Options | string)[];
export { dateReviver, defaultMergeReducer, localStorageSync, rehydrateApplicationState, syncStateUpdate };
export type { Keys, LocalStorageConfig };