15 lines
449 B
JavaScript
15 lines
449 B
JavaScript
export const QUERY_REGISTRY = Object.freeze({});
|
|
|
|
/** @param {unknown} value @returns {unknown} */
|
|
export function canonicalize(value) {
|
|
if (Array.isArray(value)) return value.map(canonicalize);
|
|
if (value && typeof value === "object") {
|
|
return Object.fromEntries(
|
|
Object.entries(value)
|
|
.sort(([left], [right]) => left.localeCompare(right))
|
|
.map(([key, item]) => [key, canonicalize(item)]),
|
|
);
|
|
}
|
|
return value;
|
|
}
|