This commit is contained in:
133
node_modules/react-redux/lib/utils/Subscription.js
generated
vendored
Normal file
133
node_modules/react-redux/lib/utils/Subscription.js
generated
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.createSubscription = createSubscription;
|
||||
|
||||
var _batch = require("./batch");
|
||||
|
||||
// encapsulates the subscription logic for connecting a component to the redux store, as
|
||||
// well as nesting subscriptions of descendant components, so that we can ensure the
|
||||
// ancestor components re-render before descendants
|
||||
function createListenerCollection() {
|
||||
var batch = (0, _batch.getBatch)();
|
||||
var first = null;
|
||||
var last = null;
|
||||
return {
|
||||
clear: function clear() {
|
||||
first = null;
|
||||
last = null;
|
||||
},
|
||||
notify: function notify() {
|
||||
batch(function () {
|
||||
var listener = first;
|
||||
|
||||
while (listener) {
|
||||
listener.callback();
|
||||
listener = listener.next;
|
||||
}
|
||||
});
|
||||
},
|
||||
get: function get() {
|
||||
var listeners = [];
|
||||
var listener = first;
|
||||
|
||||
while (listener) {
|
||||
listeners.push(listener);
|
||||
listener = listener.next;
|
||||
}
|
||||
|
||||
return listeners;
|
||||
},
|
||||
subscribe: function subscribe(callback) {
|
||||
var isSubscribed = true;
|
||||
var listener = last = {
|
||||
callback: callback,
|
||||
next: null,
|
||||
prev: last
|
||||
};
|
||||
|
||||
if (listener.prev) {
|
||||
listener.prev.next = listener;
|
||||
} else {
|
||||
first = listener;
|
||||
}
|
||||
|
||||
return function unsubscribe() {
|
||||
if (!isSubscribed || first === null) return;
|
||||
isSubscribed = false;
|
||||
|
||||
if (listener.next) {
|
||||
listener.next.prev = listener.prev;
|
||||
} else {
|
||||
last = listener.prev;
|
||||
}
|
||||
|
||||
if (listener.prev) {
|
||||
listener.prev.next = listener.next;
|
||||
} else {
|
||||
first = listener.next;
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var nullListeners = {
|
||||
notify: function notify() {},
|
||||
get: function get() {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
function createSubscription(store, parentSub) {
|
||||
var unsubscribe;
|
||||
var listeners = nullListeners;
|
||||
|
||||
function addNestedSub(listener) {
|
||||
trySubscribe();
|
||||
return listeners.subscribe(listener);
|
||||
}
|
||||
|
||||
function notifyNestedSubs() {
|
||||
listeners.notify();
|
||||
}
|
||||
|
||||
function handleChangeWrapper() {
|
||||
if (subscription.onStateChange) {
|
||||
subscription.onStateChange();
|
||||
}
|
||||
}
|
||||
|
||||
function isSubscribed() {
|
||||
return Boolean(unsubscribe);
|
||||
}
|
||||
|
||||
function trySubscribe() {
|
||||
if (!unsubscribe) {
|
||||
unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);
|
||||
listeners = createListenerCollection();
|
||||
}
|
||||
}
|
||||
|
||||
function tryUnsubscribe() {
|
||||
if (unsubscribe) {
|
||||
unsubscribe();
|
||||
unsubscribe = undefined;
|
||||
listeners.clear();
|
||||
listeners = nullListeners;
|
||||
}
|
||||
}
|
||||
|
||||
var subscription = {
|
||||
addNestedSub: addNestedSub,
|
||||
notifyNestedSubs: notifyNestedSubs,
|
||||
handleChangeWrapper: handleChangeWrapper,
|
||||
isSubscribed: isSubscribed,
|
||||
trySubscribe: trySubscribe,
|
||||
tryUnsubscribe: tryUnsubscribe,
|
||||
getListeners: function getListeners() {
|
||||
return listeners;
|
||||
}
|
||||
};
|
||||
return subscription;
|
||||
}
|
||||
24
node_modules/react-redux/lib/utils/batch.js
generated
vendored
Normal file
24
node_modules/react-redux/lib/utils/batch.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.setBatch = exports.getBatch = void 0;
|
||||
|
||||
// Default to a dummy "batch" implementation that just runs the callback
|
||||
function defaultNoopBatch(callback) {
|
||||
callback();
|
||||
}
|
||||
|
||||
var batch = defaultNoopBatch; // Allow injecting another batching function later
|
||||
|
||||
var setBatch = function setBatch(newBatch) {
|
||||
return batch = newBatch;
|
||||
}; // Supply a getter just to skip dealing with ESM bindings
|
||||
|
||||
|
||||
exports.setBatch = setBatch;
|
||||
|
||||
var getBatch = function getBatch() {
|
||||
return batch;
|
||||
};
|
||||
|
||||
exports.getBatch = getBatch;
|
||||
24
node_modules/react-redux/lib/utils/bindActionCreators.js
generated
vendored
Normal file
24
node_modules/react-redux/lib/utils/bindActionCreators.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = bindActionCreators;
|
||||
|
||||
function bindActionCreators(actionCreators, dispatch) {
|
||||
var boundActionCreators = {};
|
||||
|
||||
var _loop = function _loop(key) {
|
||||
var actionCreator = actionCreators[key];
|
||||
|
||||
if (typeof actionCreator === 'function') {
|
||||
boundActionCreators[key] = function () {
|
||||
return dispatch(actionCreator.apply(void 0, arguments));
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
for (var key in actionCreators) {
|
||||
_loop(key);
|
||||
}
|
||||
|
||||
return boundActionCreators;
|
||||
}
|
||||
21
node_modules/react-redux/lib/utils/isPlainObject.js
generated
vendored
Normal file
21
node_modules/react-redux/lib/utils/isPlainObject.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = isPlainObject;
|
||||
|
||||
/**
|
||||
* @param {any} obj The object to inspect.
|
||||
* @returns {boolean} True if the argument appears to be a plain object.
|
||||
*/
|
||||
function isPlainObject(obj) {
|
||||
if (typeof obj !== 'object' || obj === null) return false;
|
||||
var proto = Object.getPrototypeOf(obj);
|
||||
if (proto === null) return true;
|
||||
var baseProto = proto;
|
||||
|
||||
while (Object.getPrototypeOf(baseProto) !== null) {
|
||||
baseProto = Object.getPrototypeOf(baseProto);
|
||||
}
|
||||
|
||||
return proto === baseProto;
|
||||
}
|
||||
8
node_modules/react-redux/lib/utils/reactBatchedUpdates.js
generated
vendored
Normal file
8
node_modules/react-redux/lib/utils/reactBatchedUpdates.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.unstable_batchedUpdates = void 0;
|
||||
|
||||
var _reactDom = require("react-dom");
|
||||
|
||||
exports.unstable_batchedUpdates = _reactDom.unstable_batchedUpdates;
|
||||
7
node_modules/react-redux/lib/utils/reactBatchedUpdates.native.js
generated
vendored
Normal file
7
node_modules/react-redux/lib/utils/reactBatchedUpdates.native.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _reactNative = require("react-native");
|
||||
|
||||
exports.unstable_batchedUpdates = _reactNative.unstable_batchedUpdates;
|
||||
32
node_modules/react-redux/lib/utils/shallowEqual.js
generated
vendored
Normal file
32
node_modules/react-redux/lib/utils/shallowEqual.js
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = shallowEqual;
|
||||
|
||||
function is(x, y) {
|
||||
if (x === y) {
|
||||
return x !== 0 || y !== 0 || 1 / x === 1 / y;
|
||||
} else {
|
||||
return x !== x && y !== y;
|
||||
}
|
||||
}
|
||||
|
||||
function shallowEqual(objA, objB) {
|
||||
if (is(objA, objB)) return true;
|
||||
|
||||
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var keysA = Object.keys(objA);
|
||||
var keysB = Object.keys(objB);
|
||||
if (keysA.length !== keysB.length) return false;
|
||||
|
||||
for (var i = 0; i < keysA.length; i++) {
|
||||
if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
17
node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js
generated
vendored
Normal file
17
node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.useIsomorphicLayoutEffect = void 0;
|
||||
|
||||
var _react = require("react");
|
||||
|
||||
// React currently throws a warning when using useLayoutEffect on the server.
|
||||
// To get around it, we can conditionally useEffect on the server (no-op) and
|
||||
// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
|
||||
// subscription callback always has the selector from the latest render commit
|
||||
// available, otherwise a store update may happen between render and the effect,
|
||||
// which may cause missed updates; we also must ensure the store subscription
|
||||
// is created synchronously, otherwise a store update may occur before the
|
||||
// subscription is created and an inconsistent state may be observed
|
||||
var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
|
||||
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
|
||||
10
node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.native.js
generated
vendored
Normal file
10
node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.native.js
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.useIsomorphicLayoutEffect = void 0;
|
||||
|
||||
var _react = require("react");
|
||||
|
||||
// Under React Native, we know that we always want to use useLayoutEffect
|
||||
var useIsomorphicLayoutEffect = _react.useLayoutEffect;
|
||||
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
|
||||
16
node_modules/react-redux/lib/utils/verifyPlainObject.js
generated
vendored
Normal file
16
node_modules/react-redux/lib/utils/verifyPlainObject.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = verifyPlainObject;
|
||||
|
||||
var _isPlainObject = _interopRequireDefault(require("./isPlainObject"));
|
||||
|
||||
var _warning = _interopRequireDefault(require("./warning"));
|
||||
|
||||
function verifyPlainObject(value, displayName, methodName) {
|
||||
if (!(0, _isPlainObject["default"])(value)) {
|
||||
(0, _warning["default"])(methodName + "() in " + displayName + " must return a plain object. Instead received " + value + ".");
|
||||
}
|
||||
}
|
||||
29
node_modules/react-redux/lib/utils/warning.js
generated
vendored
Normal file
29
node_modules/react-redux/lib/utils/warning.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = warning;
|
||||
|
||||
/**
|
||||
* Prints a warning in the console if it exists.
|
||||
*
|
||||
* @param {String} message The warning message.
|
||||
* @returns {void}
|
||||
*/
|
||||
function warning(message) {
|
||||
/* eslint-disable no-console */
|
||||
if (typeof console !== 'undefined' && typeof console.error === 'function') {
|
||||
console.error(message);
|
||||
}
|
||||
/* eslint-enable no-console */
|
||||
|
||||
|
||||
try {
|
||||
// This error was thrown as a convenience so that if you enable
|
||||
// "break on all exceptions" in your console,
|
||||
// it would pause the execution at this line.
|
||||
throw new Error(message);
|
||||
/* eslint-disable no-empty */
|
||||
} catch (e) {}
|
||||
/* eslint-enable no-empty */
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user