Repository URL to install this package:
Version:
2.0.4 ▾
|
import { IObservableObject } from '../typings'
import { isObj } from '../../types/obj/check/isObj'
import { createPredicateForProperty } from '../deps/createInstanceofPredicate'
import { toMobxSymbol } from '../deps/toMobxSymbol'
const isObservableObjectAdministration = createPredicateForProperty(
'ObservableObjectAdministration'
)
export function isObservableObj(thing: any): thing is IObservableObject {
if (isObj(thing)) {
// Initializers run lazily when transpiling to babel, so make sure they are run...
// initializeInstance(thing)
const $mobx = toMobxSymbol(thing)
const symbol = toMobxSymbol as any
return isObservableObjectAdministration((thing as any)[symbol])
}
return false
}