is-observable
Version:
Check if a value is an Observable
18 lines (14 loc) • 488 B
JavaScript
export default function isObservable(value) {
if (!value) {
return false;
}
// eslint-disable-next-line no-use-extend-native/no-use-extend-native
if (typeof Symbol.observable === 'symbol' && typeof value[Symbol.observable] === 'function') {
// eslint-disable-next-line no-use-extend-native/no-use-extend-native
return value === value[Symbol.observable]();
}
if (typeof value['@@observable'] === 'function') {
return value === value['@@observable']();
}
return false;
}