UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

15 lines (14 loc) • 914 B
import { isPlainRecord } from "./object-utils.js"; const areQueryKeySegmentsEqual = (left, right)=>{ if (Object.is(left, right)) return true; if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((entry, index)=>areQueryKeySegmentsEqual(entry, right[index])); if (isPlainRecord(left) && isPlainRecord(right)) { const leftKeys = Object.keys(left); const rightKeys = Object.keys(right); return leftKeys.length === rightKeys.length && leftKeys.every((key)=>areQueryKeySegmentsEqual(left[key], right[key])); } return false; }; const getSortedRecordKeys = (...records)=>Array.from(new Set(records.flatMap((record)=>Object.keys(record)))).sort(); const hasQueryKeyPrefix = (queryKey, prefix)=>prefix.every((segment, index)=>queryKey[index] === segment); export { areQueryKeySegmentsEqual, getSortedRecordKeys, hasQueryKeyPrefix };