UNPKG

nuqs

Version:

Type-safe search params state manager for React - Like useState, but stored in the URL query string

27 lines (25 loc) 953 B
import { debug } from "./context-BWo_DoaC.js"; //#region src/adapters/lib/key-isolation.ts function applyChange(newValue, keys, copy) { return (oldValue) => { const hasChanged = keys.length === 0 ? true : keys.some((key) => oldValue.get(key) !== newValue.get(key)); if (!hasChanged) { debug("[nuqs `%s`] no change, returning previous", keys.join(","), oldValue); return oldValue; } const filtered = filterSearchParams(newValue, keys, copy); debug(`[nuqs \`%s\`] subbed search params change from %O to %O`, keys.join(","), oldValue, filtered); return filtered; }; } function filterSearchParams(search, keys, copy) { if (keys.length === 0) return search; const filtered = copy ? new URLSearchParams(search) : search; for (const key of search.keys()) if (!keys.includes(key)) filtered.delete(key); return filtered; } //#endregion export { applyChange, filterSearchParams }; //# sourceMappingURL=key-isolation-CKEBJ11E.js.map