From 0fc15f46a18e49533e36be04d2396bad5317f62b Mon Sep 17 00:00:00 2001 From: Hans Pagel Date: Wed, 20 Jan 2021 15:30:23 +0100 Subject: [PATCH] refactor: move isClass to separate function and use in isObject --- packages/core/src/utilities/isClass.ts | 3 +++ packages/core/src/utilities/isObject.ts | 25 ++++++++----------------- 2 files changed, 11 insertions(+), 17 deletions(-) create mode 100644 packages/core/src/utilities/isClass.ts diff --git a/packages/core/src/utilities/isClass.ts b/packages/core/src/utilities/isClass.ts new file mode 100644 index 00000000..3c5a4e21 --- /dev/null +++ b/packages/core/src/utilities/isClass.ts @@ -0,0 +1,3 @@ +export default function isClass(item: any): boolean { + return item.constructor?.toString().substring(0, 5) === 'class' +} diff --git a/packages/core/src/utilities/isObject.ts b/packages/core/src/utilities/isObject.ts index 5321f363..2de052f3 100644 --- a/packages/core/src/utilities/isObject.ts +++ b/packages/core/src/utilities/isObject.ts @@ -1,19 +1,10 @@ +import isClass from './isClass' + export default function isObject(item: any): boolean { - if (!item) { - return false - } - - if (typeof item !== 'object') { - return false - } - - if (Array.isArray(item)) { - return false - } - - if (item.constructor?.toString().substring(0, 5) === 'class') { - return false - } - - return true + return ( + item + && typeof item === 'object' + && !Array.isArray(item) + && !isClass(item) + ) }