react-magic-search-params 2.2.2 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +4 -2
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var V=Object.defineProperty;var
|
|
1
|
+
"use strict";var V=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var Pe=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var fe=(u,d)=>{for(var l in d)V(u,l,{get:d[l],enumerable:!0})},le=(u,d,l,p)=>{if(d&&typeof d=="object"||typeof d=="function")for(let y of Pe(d))!pe.call(u,y)&&y!==l&&V(u,y,{get:()=>d[y],enumerable:!(p=ue(d,y))||p.enumerable});return u};var ge=u=>le(V({},"__esModule",{value:!0}),u);var ye={};fe(ye,{useMagicSearchParams:()=>G});module.exports=ge(ye);var q=require("react-router-dom"),P=require("react"),G=({mandatory:u={},optional:d={},defaultParams:l={},arraySerialization:p="csv",forceParams:y={},omitParamsByValues:J=[],coerceParams:F={},codecs:E={},historyMode:L="push",resetOnChange:X={},paginationStrategy:w,unknownParamsPolicy:A="drop"})=>{let[i,I]=(0,q.useSearchParams)(),T=(0,P.useRef)({}),j=(0,P.useRef)({}),B=(0,P.useCallback)((r,e)=>{I(r,{replace:(e??L)==="replace"})},[I,L]),f=(0,P.useMemo)(()=>({...u,...d}),[u,d]),Z=(0,P.useMemo)(()=>Array.from(Object.keys(f)),[f]),N=(0,P.useCallback)(r=>Object.prototype.hasOwnProperty.call(f,r),[f]),z=r=>!Array.isArray(f[r])||p==="csv"?i.get(r):p==="repeat"?i.getAll(r):i.getAll(`${r}[]`),H=(0,P.useCallback)(()=>{if(A==="drop")return[];let r=[];for(let[e,a]of i.entries()){let s=e.endsWith("[]")?e.replace("[]",""):e;N(s)||r.push([e,a])}return r},[A,i,N]),_=(0,P.useCallback)(r=>{if(A==="drop")return r;let e=new URLSearchParams(r.toString()),a=H();for(let[s,t]of a)e.append(s,t);return e},[A,H]),W=(r,e)=>Array.isArray(r)&&Array.isArray(e)?r.length!==e.length?!1:r.every((a,s)=>a===e[s]):r===e,x=(0,P.useMemo)(()=>Object.keys(f).filter(r=>Array.isArray(f[r])),[f]),ee=(r,e)=>{let a={...r};return x.length===0||x.forEach(s=>{let t=[];switch(p){case"csv":{t=(i.get(s)||"").split(",").map(o=>o.trim()).filter(Boolean);break}case"repeat":{let n=i.getAll(s);t=n.length>0?n:[];break}case"brackets":{let n=i.getAll(`${s}[]`);t=n.length>0?n:[];break}default:t=(i.get(s)??"").split(",").map(o=>o.trim()).filter(Boolean)}if(e[s]!==void 0){let n=e[s],o=[];typeof n=="string"?o=t.includes(n)?t.filter(m=>m!==n):[...t,n]:Array.isArray(n)?o=Array.from(new Set([...n.map(String)])):o=t,a[s]=o}}),a},b=r=>{let e=new URLSearchParams,a=Object.keys(r);for(let s of a){let t=E[s];if(t?.serialize){let n=t.serialize(r[s],{key:s});if(n==null)continue;if(Array.isArray(n))if(Array.isArray(f[s]))if(p==="csv")e.set(s,n.join(","));else if(p==="repeat")for(let o of n)e.append(s,String(o));else for(let o of n)e.append(`${s}[]`,String(o));else n.length>0&&e.set(s,String(n[0]));else e.set(s,String(n));continue}if(Array.isArray(f[s])){let n=r[s];switch(p){case"csv":{e.set(s,n.join(","));break}case"repeat":{for(let o of n)e.append(s,String(o));break}case"brackets":{for(let o of n)e.append(`${s}[]`,String(o));break}default:e.set(s,n.join(","))}}else e.set(s,String(r[s]))}return e},O=(r,e)=>Object.prototype.hasOwnProperty.call(u,r)?u[r]:Object.prototype.hasOwnProperty.call(l,r)?l[r]:e,$=({paramsForced:r,compareParams:e})=>Object.entries(r).every(([s,t])=>e[s]===t),U=r=>{let e=z(r),a=E[r];if(a?.parse)return a.parse(e,{key:r,searchParams:i});let s=F[r];if(s==="number"){let t=Number.parseInt(String(e??""),10);if(Number.isNaN(t)){let n=O(r,0);return typeof n=="number"?n:0}return t}if(s==="boolean")return String(e)==="true";if(s==="array")return p==="csv"?String(e??"").split(",").filter(Boolean):Array.isArray(e)?e:e?[e]:[];if(s==="string")return Array.isArray(e)?e[0]??"":e??"";if(typeof f[r]=="number"){let t=Number.parseInt(String(e??""),10);if(Number.isNaN(t)){let n=O(r,0);return typeof n=="number"?n:0}return t}return typeof f[r]=="boolean"?String(e)==="true":Array.isArray(f[r])?p==="csv"?String(e??"").split(",").filter(Boolean):Array.isArray(e)?e:e?[e]:[]:Array.isArray(e)?e[0]??"":e??""},D=(r,e)=>{let a=F[r];if(!a)return e;if(a==="boolean")return typeof e=="boolean"?e:String(e??"")==="true";if(a==="number"){if(typeof e=="number"&&Number.isFinite(e))return e;let s=Number.parseInt(String(e??""),10);if(Number.isNaN(s)){let t=O(r,0);return typeof t=="number"?t:0}return s}return a==="array"?Array.isArray(e)?e:e==null||e===""?[]:[String(e)]:a==="string"?Array.isArray(e)?e[0]??"":e==null?"":String(e):e},Q=(r,e)=>{if(Array.isArray(f[r])){if(p==="brackets"){let t=i.getAll(`${r}[]`),n=b({[r]:t}).toString();return decodeURIComponent(n)}if(p==="csv"){let t=i.getAll(r),n=b({[r]:t}).toString();return decodeURIComponent(n)}let s=i.getAll(r);return b({[r]:s}).toString()}return e[r]},re=r=>{let e={};for(let[a,s]of r.entries())if(a.endsWith("[]")){let t=a.replace("[]","");e[t]?e[t].push(s):e[t]=[s]}else e[a]?Array.isArray(e[a])?e[a].push(s):e[a]=[e[a],s]:e[a]=s;return e},S=(0,P.useMemo)(()=>p==="brackets"?re(i):Object.fromEntries(i.entries()),[i,p]),M=({convert:r=!0}={})=>Object.keys(S).reduce((a,s)=>{if(Object.prototype.hasOwnProperty.call(f,s)){let t=p==="brackets"?s.replace("[]",""):s;if(r===!0){let n=U(t);a[t]=D(t,n)}else a[t]=Q(s,S)}return a},{}),K=(r,e)=>{let a=String(r);return e?.convert!==!1?D(a,U(a)):Q(a,S)},se=r=>r==null||typeof r!="object"?!1:Object.prototype.hasOwnProperty.call(r,"newParams")||Object.prototype.hasOwnProperty.call(r,"keepParams")||Object.prototype.hasOwnProperty.call(r,"historyMode"),ae=r=>{let e=M({convert:!0});if(typeof r=="function"){let a=r(e);return se(a)?{newParams:typeof a.newParams=="function"?a.newParams(e):a.newParams??{},keepParams:a.keepParams??{},historyMode:a.historyMode}:{newParams:a,keepParams:{},historyMode:void 0}}return r?{newParams:typeof r.newParams=="function"?r.newParams(e):r.newParams??{},keepParams:r.keepParams??{},historyMode:r.historyMode}:{newParams:{},keepParams:{},historyMode:void 0}},te=({currentParams:r,newParams:e,keepParams:a})=>{let s={...e},t={...a};for(let[n,o]of Object.entries(X))if(!(!o||o.length===0||!Object.prototype.hasOwnProperty.call(s,n)||W(s[n],r[n]))){for(let c of o)if(!Object.prototype.hasOwnProperty.call(y,c)){if(Object.prototype.hasOwnProperty.call(u,c)){s[c]=u[c],delete t[c];continue}if(Object.prototype.hasOwnProperty.call(l,c)){s[c]=l[c],delete t[c];continue}delete s[c],t[c]=!1}}return{newParams:s,keepParams:t}},ne=(r,e)=>{let a=M(),s=Object.entries(r).filter(([o])=>!Array.isArray(f[o])),t=Object.assign({...a,...Object.fromEntries(s)},y),n=Object.keys(t).reduce((o,m)=>{if(Object.prototype.hasOwnProperty.call(e,m)&&e[m]===!1)return o;let c=t[m],h=typeof c=="string"&&J.includes(c);return c!=null&&c!==""&&!h&&(o[m]=c),o},{});return{...u,...n}},oe=r=>Z.reduce((a,s)=>(Object.prototype.hasOwnProperty.call(r,s)&&(a[s]=r[s]),a),{}),ce=()=>{let r=x.length>0,e=M({convert:r});return Object.keys(e).reduce((s,t)=>(Object.prototype.hasOwnProperty.call(u,t)&&(s[t]=e[t]),s),{})},Y=({keepMandatoryParams:r=!0,historyMode:e}={})=>{let a=b({...u,...r&&{...ce()},...y}),s=_(a);B(s,e)},g=r=>{let e=ae(r),a=M({convert:!0}),s=te({currentParams:a,newParams:e.newParams,keepParams:e.keepParams}),t=s.newParams,n=s.keepParams;if(Object.keys(t).length===0&&Object.keys(n).length===0){Y({historyMode:e.historyMode});return}let o=ne(t,n),m=ee(o,t),c=oe(m),h=b(c),v=_(h);B(v,e.historyMode)},k=w?.mode==="page"?w:void 0,R=w?.mode==="offset"?w:void 0,C=w?.mode==="cursor"?w:void 0,ie={mode:w?.mode??"page",next:r=>{let e=w?.mode??"page";if(e==="cursor"){let n=C?.cursorKey??"cursor";typeof r=="string"&&g({newParams:{[n]:r}});return}if(e==="offset"){let n=R?.offsetKey??"offset",o=R?.limitKey??"limit",m=Number(K(n,{convert:!0})??0),c=Number(K(o,{convert:!0})??O(String(o),10)),h=Number.isFinite(m)?m:0,v=Number.isFinite(c)&&c>0?c:10;g({newParams:{[n]:h+v}});return}let a=k?k.pageKey??"page":"page",s=Number(K(a,{convert:!0})??O(String(a),1)),t=Number.isFinite(s)&&s>0?s:1;g({newParams:{[a]:t+1}})},prev:()=>{let r=w?.mode??"page";if(r==="cursor"){let t=C?.cursorKey??"cursor";g({keepParams:{[t]:!1}});return}if(r==="offset"){let t=R?.offsetKey??"offset",n=R?.limitKey??"limit",o=Number(K(t,{convert:!0})??0),m=Number(K(n,{convert:!0})??O(String(n),10)),c=Number.isFinite(o)?o:0,h=Number.isFinite(m)&&m>0?m:10;g({newParams:{[t]:Math.max(0,c-h)}});return}let e=k?k.pageKey??"page":"page",a=Number(K(e,{convert:!0})??O(String(e),1)),s=Number.isFinite(a)&&a>0?a:1;g({newParams:{[e]:Math.max(1,s-1)}})},reset:()=>{let r=w?.mode??"page";if(r==="cursor"){let s=C?.cursorKey??"cursor";g({keepParams:{[s]:!1}});return}if(r==="offset"){let s=R?.offsetKey??"offset",t=Number(O(String(s),0));g({newParams:{[s]:Number.isFinite(t)?t:0}});return}let e=k?k.pageKey??"page":"page",a=Number(O(String(e),1));g({newParams:{[e]:Number.isFinite(a)&&a>0?a:1}})},setCursor:r=>{let a=(w?.mode??"page")==="cursor"?C?.cursorKey??"cursor":"cursor";if(r==null||r===""){g({keepParams:{[a]:!1}});return}g({newParams:{[a]:r}})}},me=(0,P.useCallback)((r,e)=>{let a=String(r);return T.current[a]=e,()=>{delete T.current[a],delete j.current[a]}},[]);return(0,P.useEffect)(()=>{for(let[r,e]of Object.entries(T.current)){let a=N(r)?U(r):i.get(r),s=j.current[r]??null;if(!W(a,s))for(let t of e)t({key:r,previousValue:s,currentValue:a});j.current[r]=a}},[S,N,i]),(0,P.useEffect)(()=>{let r=Object.keys(l),e=Object.keys(y);if(r.length===0&&e.length===0)return;function a(){let s=b(l).toString(),t=M(),n=b(t).toString();if(!$({paramsForced:y,compareParams:t})){g({newParams:{...l,...y}});return}let m=$({paramsForced:y,compareParams:l});if(r.length>0&&m){if(s===n)return;g({newParams:l})}}a()},[]),{searchParams:i,updateParams:g,clearParams:Y,getParams:M,getParam:K,onChange:me,pagination:ie}};0&&(module.exports={useMagicSearchParams});
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useSearchParams as
|
|
1
|
+
import{useSearchParams as ue}from"react-router-dom";import{useMemo as C,useEffect as q,useRef as G,useCallback as k}from"react";var Pe=({mandatory:l={},optional:V={},defaultParams:g={},arraySerialization:p="csv",forceParams:d={},omitParamsByValues:J=[],coerceParams:F={},codecs:E={},historyMode:L="push",resetOnChange:X={},paginationStrategy:f,unknownParamsPolicy:R="drop"})=>{let[i,I]=ue(),T=G({}),j=G({}),B=k((r,e)=>{I(r,{replace:(e??L)==="replace"})},[I,L]),u=C(()=>({...l,...V}),[l,V]),Z=C(()=>Array.from(Object.keys(u)),[u]),A=k(r=>Object.prototype.hasOwnProperty.call(u,r),[u]),z=r=>!Array.isArray(u[r])||p==="csv"?i.get(r):p==="repeat"?i.getAll(r):i.getAll(`${r}[]`),H=k(()=>{if(R==="drop")return[];let r=[];for(let[e,a]of i.entries()){let s=e.endsWith("[]")?e.replace("[]",""):e;A(s)||r.push([e,a])}return r},[R,i,A]),_=k(r=>{if(R==="drop")return r;let e=new URLSearchParams(r.toString()),a=H();for(let[s,t]of a)e.append(s,t);return e},[R,H]),W=(r,e)=>Array.isArray(r)&&Array.isArray(e)?r.length!==e.length?!1:r.every((a,s)=>a===e[s]):r===e,x=C(()=>Object.keys(u).filter(r=>Array.isArray(u[r])),[u]),ee=(r,e)=>{let a={...r};return x.length===0||x.forEach(s=>{let t=[];switch(p){case"csv":{t=(i.get(s)||"").split(",").map(o=>o.trim()).filter(Boolean);break}case"repeat":{let n=i.getAll(s);t=n.length>0?n:[];break}case"brackets":{let n=i.getAll(`${s}[]`);t=n.length>0?n:[];break}default:t=(i.get(s)??"").split(",").map(o=>o.trim()).filter(Boolean)}if(e[s]!==void 0){let n=e[s],o=[];typeof n=="string"?o=t.includes(n)?t.filter(m=>m!==n):[...t,n]:Array.isArray(n)?o=Array.from(new Set([...n.map(String)])):o=t,a[s]=o}}),a},w=r=>{let e=new URLSearchParams,a=Object.keys(r);for(let s of a){let t=E[s];if(t?.serialize){let n=t.serialize(r[s],{key:s});if(n==null)continue;if(Array.isArray(n))if(Array.isArray(u[s]))if(p==="csv")e.set(s,n.join(","));else if(p==="repeat")for(let o of n)e.append(s,String(o));else for(let o of n)e.append(`${s}[]`,String(o));else n.length>0&&e.set(s,String(n[0]));else e.set(s,String(n));continue}if(Array.isArray(u[s])){let n=r[s];switch(p){case"csv":{e.set(s,n.join(","));break}case"repeat":{for(let o of n)e.append(s,String(o));break}case"brackets":{for(let o of n)e.append(`${s}[]`,String(o));break}default:e.set(s,n.join(","))}}else e.set(s,String(r[s]))}return e},y=(r,e)=>Object.prototype.hasOwnProperty.call(l,r)?l[r]:Object.prototype.hasOwnProperty.call(g,r)?g[r]:e,$=({paramsForced:r,compareParams:e})=>Object.entries(r).every(([s,t])=>e[s]===t),U=r=>{let e=z(r),a=E[r];if(a?.parse)return a.parse(e,{key:r,searchParams:i});let s=F[r];if(s==="number"){let t=Number.parseInt(String(e??""),10);if(Number.isNaN(t)){let n=y(r,0);return typeof n=="number"?n:0}return t}if(s==="boolean")return String(e)==="true";if(s==="array")return p==="csv"?String(e??"").split(",").filter(Boolean):Array.isArray(e)?e:e?[e]:[];if(s==="string")return Array.isArray(e)?e[0]??"":e??"";if(typeof u[r]=="number"){let t=Number.parseInt(String(e??""),10);if(Number.isNaN(t)){let n=y(r,0);return typeof n=="number"?n:0}return t}return typeof u[r]=="boolean"?String(e)==="true":Array.isArray(u[r])?p==="csv"?String(e??"").split(",").filter(Boolean):Array.isArray(e)?e:e?[e]:[]:Array.isArray(e)?e[0]??"":e??""},D=(r,e)=>{let a=F[r];if(!a)return e;if(a==="boolean")return typeof e=="boolean"?e:String(e??"")==="true";if(a==="number"){if(typeof e=="number"&&Number.isFinite(e))return e;let s=Number.parseInt(String(e??""),10);if(Number.isNaN(s)){let t=y(r,0);return typeof t=="number"?t:0}return s}return a==="array"?Array.isArray(e)?e:e==null||e===""?[]:[String(e)]:a==="string"?Array.isArray(e)?e[0]??"":e==null?"":String(e):e},Q=(r,e)=>{if(Array.isArray(u[r])){if(p==="brackets"){let t=i.getAll(`${r}[]`),n=w({[r]:t}).toString();return decodeURIComponent(n)}if(p==="csv"){let t=i.getAll(r),n=w({[r]:t}).toString();return decodeURIComponent(n)}let s=i.getAll(r);return w({[r]:s}).toString()}return e[r]},re=r=>{let e={};for(let[a,s]of r.entries())if(a.endsWith("[]")){let t=a.replace("[]","");e[t]?e[t].push(s):e[t]=[s]}else e[a]?Array.isArray(e[a])?e[a].push(s):e[a]=[e[a],s]:e[a]=s;return e},N=C(()=>p==="brackets"?re(i):Object.fromEntries(i.entries()),[i,p]),K=({convert:r=!0}={})=>Object.keys(N).reduce((a,s)=>{if(Object.prototype.hasOwnProperty.call(u,s)){let t=p==="brackets"?s.replace("[]",""):s;if(r===!0){let n=U(t);a[t]=D(t,n)}else a[t]=Q(s,N)}return a},{}),O=(r,e)=>{let a=String(r);return e?.convert!==!1?D(a,U(a)):Q(a,N)},se=r=>r==null||typeof r!="object"?!1:Object.prototype.hasOwnProperty.call(r,"newParams")||Object.prototype.hasOwnProperty.call(r,"keepParams")||Object.prototype.hasOwnProperty.call(r,"historyMode"),ae=r=>{let e=K({convert:!0});if(typeof r=="function"){let a=r(e);return se(a)?{newParams:typeof a.newParams=="function"?a.newParams(e):a.newParams??{},keepParams:a.keepParams??{},historyMode:a.historyMode}:{newParams:a,keepParams:{},historyMode:void 0}}return r?{newParams:typeof r.newParams=="function"?r.newParams(e):r.newParams??{},keepParams:r.keepParams??{},historyMode:r.historyMode}:{newParams:{},keepParams:{},historyMode:void 0}},te=({currentParams:r,newParams:e,keepParams:a})=>{let s={...e},t={...a};for(let[n,o]of Object.entries(X))if(!(!o||o.length===0||!Object.prototype.hasOwnProperty.call(s,n)||W(s[n],r[n]))){for(let c of o)if(!Object.prototype.hasOwnProperty.call(d,c)){if(Object.prototype.hasOwnProperty.call(l,c)){s[c]=l[c],delete t[c];continue}if(Object.prototype.hasOwnProperty.call(g,c)){s[c]=g[c],delete t[c];continue}delete s[c],t[c]=!1}}return{newParams:s,keepParams:t}},ne=(r,e)=>{let a=K(),s=Object.entries(r).filter(([o])=>!Array.isArray(u[o])),t=Object.assign({...a,...Object.fromEntries(s)},d),n=Object.keys(t).reduce((o,m)=>{if(Object.prototype.hasOwnProperty.call(e,m)&&e[m]===!1)return o;let c=t[m],b=typeof c=="string"&&J.includes(c);return c!=null&&c!==""&&!b&&(o[m]=c),o},{});return{...l,...n}},oe=r=>Z.reduce((a,s)=>(Object.prototype.hasOwnProperty.call(r,s)&&(a[s]=r[s]),a),{}),ce=()=>{let r=x.length>0,e=K({convert:r});return Object.keys(e).reduce((s,t)=>(Object.prototype.hasOwnProperty.call(l,t)&&(s[t]=e[t]),s),{})},Y=({keepMandatoryParams:r=!0,historyMode:e}={})=>{let a=w({...l,...r&&{...ce()},...d}),s=_(a);B(s,e)},P=r=>{let e=ae(r),a=K({convert:!0}),s=te({currentParams:a,newParams:e.newParams,keepParams:e.keepParams}),t=s.newParams,n=s.keepParams;if(Object.keys(t).length===0&&Object.keys(n).length===0){Y({historyMode:e.historyMode});return}let o=ne(t,n),m=ee(o,t),c=oe(m),b=w(c),v=_(b);B(v,e.historyMode)},h=f?.mode==="page"?f:void 0,M=f?.mode==="offset"?f:void 0,S=f?.mode==="cursor"?f:void 0,ie={mode:f?.mode??"page",next:r=>{let e=f?.mode??"page";if(e==="cursor"){let n=S?.cursorKey??"cursor";typeof r=="string"&&P({newParams:{[n]:r}});return}if(e==="offset"){let n=M?.offsetKey??"offset",o=M?.limitKey??"limit",m=Number(O(n,{convert:!0})??0),c=Number(O(o,{convert:!0})??y(String(o),10)),b=Number.isFinite(m)?m:0,v=Number.isFinite(c)&&c>0?c:10;P({newParams:{[n]:b+v}});return}let a=h?h.pageKey??"page":"page",s=Number(O(a,{convert:!0})??y(String(a),1)),t=Number.isFinite(s)&&s>0?s:1;P({newParams:{[a]:t+1}})},prev:()=>{let r=f?.mode??"page";if(r==="cursor"){let t=S?.cursorKey??"cursor";P({keepParams:{[t]:!1}});return}if(r==="offset"){let t=M?.offsetKey??"offset",n=M?.limitKey??"limit",o=Number(O(t,{convert:!0})??0),m=Number(O(n,{convert:!0})??y(String(n),10)),c=Number.isFinite(o)?o:0,b=Number.isFinite(m)&&m>0?m:10;P({newParams:{[t]:Math.max(0,c-b)}});return}let e=h?h.pageKey??"page":"page",a=Number(O(e,{convert:!0})??y(String(e),1)),s=Number.isFinite(a)&&a>0?a:1;P({newParams:{[e]:Math.max(1,s-1)}})},reset:()=>{let r=f?.mode??"page";if(r==="cursor"){let s=S?.cursorKey??"cursor";P({keepParams:{[s]:!1}});return}if(r==="offset"){let s=M?.offsetKey??"offset",t=Number(y(String(s),0));P({newParams:{[s]:Number.isFinite(t)?t:0}});return}let e=h?h.pageKey??"page":"page",a=Number(y(String(e),1));P({newParams:{[e]:Number.isFinite(a)&&a>0?a:1}})},setCursor:r=>{let a=(f?.mode??"page")==="cursor"?S?.cursorKey??"cursor":"cursor";if(r==null||r===""){P({keepParams:{[a]:!1}});return}P({newParams:{[a]:r}})}},me=k((r,e)=>{let a=String(r);return T.current[a]=e,()=>{delete T.current[a],delete j.current[a]}},[]);return q(()=>{for(let[r,e]of Object.entries(T.current)){let a=A(r)?U(r):i.get(r),s=j.current[r]??null;if(!W(a,s))for(let t of e)t({key:r,previousValue:s,currentValue:a});j.current[r]=a}},[N,A,i]),q(()=>{let r=Object.keys(g),e=Object.keys(d);if(r.length===0&&e.length===0)return;function a(){let s=w(g).toString(),t=K(),n=w(t).toString();if(!$({paramsForced:d,compareParams:t})){P({newParams:{...g,...d}});return}let m=$({paramsForced:d,compareParams:g});if(r.length>0&&m){if(s===n)return;P({newParams:g})}}a()},[]),{searchParams:i,updateParams:P,clearParams:Y,getParams:K,getParam:O,onChange:me,pagination:ie}};export{Pe as useMagicSearchParams};
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"pagination",
|
|
25
25
|
"sorting"
|
|
26
26
|
],
|
|
27
|
-
"version": "2.2.
|
|
27
|
+
"version": "2.2.3",
|
|
28
28
|
"private": false,
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"main": "dist/index.cjs",
|
|
@@ -45,12 +45,14 @@
|
|
|
45
45
|
"typecheck": "tsc --noEmit",
|
|
46
46
|
"build": "tsup",
|
|
47
47
|
"test": "vitest run --environment jsdom",
|
|
48
|
+
"test:dist": "vitest run --environment jsdom test/useMagicSearchParams.dist.test.tsx",
|
|
48
49
|
"test:watch": "vitest --environment jsdom",
|
|
49
50
|
"lint": "tsc --noEmit",
|
|
50
51
|
"prepare": "tsup",
|
|
52
|
+
"prepublishOnly": "pnpm run typecheck && pnpm test && pnpm run build && pnpm run test:dist",
|
|
51
53
|
"size": "size-limit",
|
|
52
54
|
"analyze": "size-limit --why",
|
|
53
|
-
"prepack": "node -e \"const fs=require('fs');fs.copyFileSync('README.md','.README.repo.md');fs.copyFileSync('README_NPM.md','README.md');\"",
|
|
55
|
+
"prepack": "pnpm run build && node -e \"const fs=require('fs');fs.copyFileSync('README.md','.README.repo.md');fs.copyFileSync('README_NPM.md','README.md');\"",
|
|
54
56
|
"postpack": "node -e \"const fs=require('fs');if(fs.existsSync('.README.repo.md')){fs.copyFileSync('.README.repo.md','README.md');fs.unlinkSync('.README.repo.md');}\""
|
|
55
57
|
},
|
|
56
58
|
"peerDependencies": {
|