/** * @param obj The object to inspect. * @returns True if the argument appears to be a plain object. */ export default function isPlainObject(obj: any): obj is object { if (typeof obj !== 'object' || obj === null) return false let proto = obj while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto) } return ( Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null ) }