mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2025-07-27 00:19:55 +03:00
Resolve Symbol.observable at store creation time
This commit is contained in:
parent
4ca5e23253
commit
8c48a73c28
|
@ -0,0 +1,3 @@
|
||||||
|
export default function getSymbolObservable() {
|
||||||
|
return (typeof Symbol === 'function' && Symbol.observable) || '@@observable';
|
||||||
|
}
|
|
@ -1,16 +1,16 @@
|
||||||
import difference from 'lodash/difference';
|
import difference from 'lodash/difference';
|
||||||
import union from 'lodash/union';
|
import union from 'lodash/union';
|
||||||
import isPlainObject from 'lodash/isPlainObject';
|
import isPlainObject from 'lodash/isPlainObject';
|
||||||
import $$observable from './symbol-observable';
|
|
||||||
import {
|
import {
|
||||||
Action,
|
Action,
|
||||||
Observable,
|
Observer,
|
||||||
PreloadedState,
|
PreloadedState,
|
||||||
Reducer,
|
Reducer,
|
||||||
Store,
|
Store,
|
||||||
StoreEnhancer,
|
StoreEnhancer,
|
||||||
StoreEnhancerStoreCreator,
|
StoreEnhancerStoreCreator,
|
||||||
} from 'redux';
|
} from 'redux';
|
||||||
|
import getSymbolObservable from './getSymbolObservable';
|
||||||
|
|
||||||
export const ActionTypes = {
|
export const ActionTypes = {
|
||||||
PERFORM_ACTION: 'PERFORM_ACTION',
|
PERFORM_ACTION: 'PERFORM_ACTION',
|
||||||
|
@ -903,6 +903,8 @@ export function unliftStore<
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const $$observable = getSymbolObservable();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
liftedStore,
|
liftedStore,
|
||||||
|
|
||||||
|
@ -924,10 +926,9 @@ export function unliftStore<
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
[$$observable](): Observable<S> {
|
[$$observable]() {
|
||||||
return {
|
return {
|
||||||
...(liftedStore as any)[$$observable](),
|
subscribe(observer: Observer<S>) {
|
||||||
subscribe(observer) {
|
|
||||||
if (typeof observer !== 'object') {
|
if (typeof observer !== 'object') {
|
||||||
throw new TypeError('Expected the observer to be an object.');
|
throw new TypeError('Expected the observer to be an object.');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
declare global {
|
|
||||||
interface SymbolConstructor {
|
|
||||||
readonly observable: symbol;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const $$observable = /* #__PURE__ */ (() =>
|
|
||||||
(typeof Symbol === 'function' && Symbol.observable) || '@@observable')();
|
|
||||||
|
|
||||||
export default $$observable;
|
|
Loading…
Reference in New Issue
Block a user