You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
12 KiB

{"ast":null,"code":"import { KEY_PREFIX, REHYDRATE } from './constants'; // @TODO remove once flow < 0.63 support is no longer required.\n\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","map":{"version":3,"names":["KEY_PREFIX","REHYDRATE","createPersistoid","config","blacklist","whitelist","transforms","throttle","storageKey","concat","keyPrefix","undefined","key","storage","serialize","x","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","update","state","Object","keys","forEach","passWhitelistBlacklist","indexOf","push","setInterval","processNextKey","length","clearInterval","shift","endState","reduce","subState","transformer","in","err","console","error","writeStagedState","setItem","catch","onWriteFail","process","env","NODE_ENV","flush","Promise","resolve","data","JSON","stringify"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/redux-persist/es/createPersistoid.js"],"sourcesContent":["import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}"],"mappings":"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"},"metadata":{},"sourceType":"module"}