@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
15 lines (14 loc) • 914 B
JavaScript
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 };