diff --git a/packages/lib/src/Tools.ts b/packages/lib/src/Tools.ts index 2cd4d84..e3296c2 100644 --- a/packages/lib/src/Tools.ts +++ b/packages/lib/src/Tools.ts @@ -174,26 +174,11 @@ export const ellipsize = (s: string, l: number, suffix = '...') => { } export const isPojo = (obj: any) => { - const hasOwnProperty = Object.prototype.hasOwnProperty - const toString = Object.prototype.toString - - // Detect obvious negatives use toString to catch host objects - if (obj === null || toString.call(obj) !== '[object Object]') { + if (obj === null || typeof obj !== "object") { return false } - const proto = Object.getPrototypeOf(obj) - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if (!proto) { - return true - } - - // Objects with prototype are plain iff constructed by `Object` function - const ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor - return ( - typeof ctor === 'function' && - hasOwnProperty.toString.call(ctor) === hasOwnProperty.toString.call(Object) - ) + return Object.getPrototypeOf(obj) === Object.prototype } export const equals = (a: any, b: any) => {