mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
117 lines
5.1 KiB
Diff
117 lines
5.1 KiB
Diff
diff --git a/node_modules/redux-persist/es/createPersistoid.js b/node_modules/redux-persist/es/createPersistoid.js
|
|
index 8b43b9a..184faab 100644
|
|
--- a/node_modules/redux-persist/es/createPersistoid.js
|
|
+++ b/node_modules/redux-persist/es/createPersistoid.js
|
|
@@ -6,6 +6,7 @@ export default function createPersistoid(config) {
|
|
var whitelist = config.whitelist || null;
|
|
var transforms = config.transforms || [];
|
|
var throttle = config.throttle || 0;
|
|
+ var debounce = config.debounce || 0;
|
|
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
|
|
var storage = config.storage;
|
|
var serialize;
|
|
@@ -28,30 +29,37 @@ export default function createPersistoid(config) {
|
|
var timeIterator = null;
|
|
var writePromise = null;
|
|
|
|
- var update = function update(state) {
|
|
- // add any changed keys to the queue
|
|
- Object.keys(state).forEach(function (key) {
|
|
- if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop
|
|
+ // Timer for debounced `update()`
|
|
+ let timer = 0;
|
|
|
|
- if (lastState[key] === state[key]) return; // value unchanged? noop
|
|
+ function update(state) {
|
|
+ // Debounce the update
|
|
+ clearTimeout(timer);
|
|
+ timer = setTimeout(() => {
|
|
+ // add any changed keys to the queue
|
|
+ Object.keys(state).forEach(function (key) {
|
|
+ if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop
|
|
|
|
- if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop
|
|
+ if (lastState[key] === state[key]) return; // value unchanged? noop
|
|
|
|
- keysToProcess.push(key); // add key to queue
|
|
- }); //if any key is missing in the new state which was present in the lastState,
|
|
- //add it for processing too
|
|
+ if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop
|
|
|
|
- Object.keys(lastState).forEach(function (key) {
|
|
- if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {
|
|
- keysToProcess.push(key);
|
|
- }
|
|
- }); // start the time iterator if not running (read: throttle)
|
|
+ keysToProcess.push(key); // add key to queue
|
|
+ }); //if any key is missing in the new state which was present in the lastState,
|
|
+ //add it for processing too
|
|
|
|
- if (timeIterator === null) {
|
|
- timeIterator = setInterval(processNextKey, throttle);
|
|
- }
|
|
+ Object.keys(lastState).forEach(function (key) {
|
|
+ if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {
|
|
+ keysToProcess.push(key);
|
|
+ }
|
|
+ }); // start the time iterator if not running (read: throttle)
|
|
+
|
|
+ if (timeIterator === null) {
|
|
+ timeIterator = setInterval(processNextKey, throttle);
|
|
+ }
|
|
|
|
- lastState = state;
|
|
+ lastState = state;
|
|
+ }, debounce)
|
|
};
|
|
|
|
function processNextKey() {
|
|
diff --git a/node_modules/redux-persist/es/types.js.flow b/node_modules/redux-persist/es/types.js.flow
|
|
index c50d3cd..39d8be2 100644
|
|
--- a/node_modules/redux-persist/es/types.js.flow
|
|
+++ b/node_modules/redux-persist/es/types.js.flow
|
|
@@ -19,6 +19,7 @@ export type PersistConfig = {
|
|
whitelist?: Array<string>,
|
|
transforms?: Array<Transform>,
|
|
throttle?: number,
|
|
+ debounce?: number,
|
|
migrate?: (PersistedState, number) => Promise<PersistedState>,
|
|
stateReconciler?: false | Function,
|
|
getStoredState?: PersistConfig => Promise<PersistedState>, // used for migrations
|
|
diff --git a/node_modules/redux-persist/lib/types.js.flow b/node_modules/redux-persist/lib/types.js.flow
|
|
index c50d3cd..39d8be2 100644
|
|
--- a/node_modules/redux-persist/lib/types.js.flow
|
|
+++ b/node_modules/redux-persist/lib/types.js.flow
|
|
@@ -19,6 +19,7 @@ export type PersistConfig = {
|
|
whitelist?: Array<string>,
|
|
transforms?: Array<Transform>,
|
|
throttle?: number,
|
|
+ debounce?: number,
|
|
migrate?: (PersistedState, number) => Promise<PersistedState>,
|
|
stateReconciler?: false | Function,
|
|
getStoredState?: PersistConfig => Promise<PersistedState>, // used for migrations
|
|
diff --git a/node_modules/redux-persist/src/types.js b/node_modules/redux-persist/src/types.js
|
|
index c50d3cd..39d8be2 100644
|
|
--- a/node_modules/redux-persist/src/types.js
|
|
+++ b/node_modules/redux-persist/src/types.js
|
|
@@ -19,6 +19,7 @@ export type PersistConfig = {
|
|
whitelist?: Array<string>,
|
|
transforms?: Array<Transform>,
|
|
throttle?: number,
|
|
+ debounce?: number,
|
|
migrate?: (PersistedState, number) => Promise<PersistedState>,
|
|
stateReconciler?: false | Function,
|
|
getStoredState?: PersistConfig => Promise<PersistedState>, // used for migrations
|
|
diff --git a/node_modules/redux-persist/types/types.d.ts b/node_modules/redux-persist/types/types.d.ts
|
|
index b3733bc..2a1696c 100644
|
|
--- a/node_modules/redux-persist/types/types.d.ts
|
|
+++ b/node_modules/redux-persist/types/types.d.ts
|
|
@@ -35,6 +35,7 @@ declare module "redux-persist/es/types" {
|
|
whitelist?: Array<string>;
|
|
transforms?: Array<Transform<HSS, ESS, S, RS>>;
|
|
throttle?: number;
|
|
+ debounce?: number;
|
|
migrate?: PersistMigrate;
|
|
stateReconciler?: false | StateReconciler<S>;
|
|
/**
|