ngrx-store-persist
Version:
ngrx-store-persist depends on @ngrx/store and angular 2+
33 lines • 4.67 kB
JavaScript
import * as localForage from 'localforage';
import { middlewareStorage } from "./middleware-storage";
import { config } from "./options";
import { storageSync } from "./storage-sync";
export const getAllDataFromLocalForage = (options) => {
config.keys = options.keys;
config.storage = middlewareStorage;
localForage.config({
driver: options.driver || localForage.LOCALSTORAGE,
name: 'NGRX Storage',
version: 1.0,
size: 4980736,
storeName: 'keyvaluepairs',
description: 'NGRX storage persist'
});
return localForage.keys()
.then(keys => {
return Promise.all(keys.map((key) => localForage.getItem(key).then(data => [key, data])));
})
.then(dataWithKeys => {
const dataStorage = dataWithKeys.reduce((previousValue, [key, data]) => {
previousValue[key] = data;
return previousValue;
}, {});
middlewareStorage.dataStorage = dataStorage;
return dataStorage;
});
};
export function storageSyncMetaReducer(reducer) {
return storageSync(reducer);
}
export default localForage;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBZ0IsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsT0FBc0IsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixNQUFNLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakIsTUFBTSxFQUFRLE9BQU8sQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLFlBQVk7UUFDeEQsSUFBSSxFQUFVLGNBQWM7UUFDNUIsT0FBTyxFQUFPLEdBQUc7UUFDakIsSUFBSSxFQUFVLE9BQU87UUFDckIsU0FBUyxFQUFLLGVBQWU7UUFDN0IsV0FBVyxFQUFHLHNCQUFzQjtLQUNyQyxDQUFDLENBQUM7SUFFSCxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUU7U0FDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1gsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixJQUFJLENBQUMsR0FBRyxDQUNOLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQzVELENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUNuQixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBa0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQzFFLGFBQWEsQ0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDbEMsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1AsaUJBQWlCLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUM1QyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxzQkFBc0IsQ0FDbEMsT0FBWTtJQUVkLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRCxlQUFlLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGxvY2FsRm9yYWdlIGZyb20gJ2xvY2FsZm9yYWdlJztcclxuaW1wb3J0IHttaWRkbGV3YXJlU3RvcmFnZX0gZnJvbSBcIi4vbWlkZGxld2FyZS1zdG9yYWdlXCI7XHJcbmltcG9ydCB7Y29uZmlnLCBTdG9yYWdlQ29uZmlnfSBmcm9tIFwiLi9vcHRpb25zXCI7XHJcbmltcG9ydCB7c3RvcmFnZVN5bmN9IGZyb20gXCIuL3N0b3JhZ2Utc3luY1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEFsbERhdGFGcm9tTG9jYWxGb3JhZ2UgPSAob3B0aW9uczogU3RvcmFnZUNvbmZpZykgPT4ge1xyXG4gIGNvbmZpZy5rZXlzID0gb3B0aW9ucy5rZXlzO1xyXG4gIGNvbmZpZy5zdG9yYWdlID0gbWlkZGxld2FyZVN0b3JhZ2U7XHJcbiAgbG9jYWxGb3JhZ2UuY29uZmlnKHtcclxuICAgIGRyaXZlciAgICAgIDogb3B0aW9ucy5kcml2ZXIgfHwgbG9jYWxGb3JhZ2UuTE9DQUxTVE9SQUdFLFxyXG4gICAgbmFtZSAgICAgICAgOiAnTkdSWCBTdG9yYWdlJyxcclxuICAgIHZlcnNpb24gICAgIDogMS4wLFxyXG4gICAgc2l6ZSAgICAgICAgOiA0OTgwNzM2LFxyXG4gICAgc3RvcmVOYW1lICAgOiAna2V5dmFsdWVwYWlycycsXHJcbiAgICBkZXNjcmlwdGlvbiA6ICdOR1JYIHN0b3JhZ2UgcGVyc2lzdCdcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGxvY2FsRm9yYWdlLmtleXMoKVxyXG4gICAgLnRoZW4oa2V5cyA9PiB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChcclxuICAgICAgICBrZXlzLm1hcChcclxuICAgICAgICAgIChrZXkpID0+IGxvY2FsRm9yYWdlLmdldEl0ZW0oa2V5KS50aGVuKGRhdGEgPT4gW2tleSwgZGF0YV0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSlcclxuICAgIC50aGVuKGRhdGFXaXRoS2V5cyA9PiB7XHJcbiAgICAgIGNvbnN0IGRhdGFTdG9yYWdlID0gZGF0YVdpdGhLZXlzLnJlZHVjZSgocHJldmlvdXNWYWx1ZTogYW55LCBba2V5LCBkYXRhXSkgPT4ge1xyXG4gICAgICAgIHByZXZpb3VzVmFsdWVbPHN0cmluZz5rZXldID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcclxuICAgICAgfSwge30pO1xyXG4gICAgICBtaWRkbGV3YXJlU3RvcmFnZS5kYXRhU3RvcmFnZSA9IGRhdGFTdG9yYWdlO1xyXG4gICAgICByZXR1cm4gZGF0YVN0b3JhZ2U7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdG9yYWdlU3luY01ldGFSZWR1Y2VyKFxyXG4gICAgcmVkdWNlcjogYW55XHJcbik6IGFueSB7XHJcbiAgcmV0dXJuIHN0b3JhZ2VTeW5jKHJlZHVjZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBsb2NhbEZvcmFnZTtcclxuIl19