From 1f4751ed5ad6bbcff0cf14bbadf0db4fa09d6198 Mon Sep 17 00:00:00 2001 From: Irakli Gozalishvili Date: Thu, 12 May 2022 00:12:33 -0700 Subject: [PATCH] fix: add support for use of arrays in t.like fixes: #2627 --- lib/like-selector.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/like-selector.js b/lib/like-selector.js index 09675a9fe..d100b8520 100644 --- a/lib/like-selector.js +++ b/lib/like-selector.js @@ -1,7 +1,8 @@ export function isLikeSelector(selector) { + const prototype = Reflect.getPrototypeOf(selector) return selector !== null && typeof selector === 'object' - && Reflect.getPrototypeOf(selector) === Object.prototype + && (prototype === Object.prototype || prototype === Array.prototype) && Reflect.ownKeys(selector).length > 0; } @@ -18,7 +19,7 @@ export function selectComparable(lhs, selector, circular = new Set()) { return lhs; } - const comparable = {}; + const comparable = Array.isArray(selector) : [] : {}; for (const [key, rhs] of Object.entries(selector)) { if (isLikeSelector(rhs)) { comparable[key] = selectComparable(Reflect.get(lhs, key), rhs, circular);