zustand-querystring 0.6.5 → 0.7.0
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.d.mts +12 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +14 -1
- package/dist/index.mjs +14 -1
- package/package.json +8 -8
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { StoreMutatorIdentifier, StateCreator } from 'zustand/vanilla';
|
|
2
2
|
|
|
3
|
+
type Write<T, U> = Omit<T, keyof U> & U;
|
|
4
|
+
type WithQueryString<S, T> = Write<S, {
|
|
5
|
+
setDefaults: (partial: Partial<T>) => void;
|
|
6
|
+
}>;
|
|
7
|
+
declare module 'zustand/vanilla' {
|
|
8
|
+
interface StoreMutators<S, A> {
|
|
9
|
+
'zustand-querystring': WithQueryString<S, S extends {
|
|
10
|
+
getState: () => infer T;
|
|
11
|
+
} ? T : never>;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
3
14
|
type DeepSelect<T> = T extends object ? {
|
|
4
15
|
[P in keyof T]?: DeepSelect<T[P]> | boolean;
|
|
5
16
|
} : boolean;
|
|
@@ -54,7 +65,7 @@ interface QueryStringOptions<T, K extends string | false = string | false> {
|
|
|
54
65
|
/** Bidirectional mapping between store state shape and URL state shape. */
|
|
55
66
|
map?: QueryStringMap<T>;
|
|
56
67
|
}
|
|
57
|
-
type QueryString = <T, Mps extends [StoreMutatorIdentifier, unknown][] = [], Mcs extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, Mps, Mcs>, options?: QueryStringOptions<T>) => StateCreator<T, Mps, Mcs>;
|
|
68
|
+
type QueryString = <T, Mps extends [StoreMutatorIdentifier, unknown][] = [], Mcs extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, [...Mps, ['zustand-querystring', never]], Mcs>, options?: QueryStringOptions<T>) => StateCreator<T, Mps, [['zustand-querystring', never], ...Mcs]>;
|
|
58
69
|
declare const querystring: QueryString;
|
|
59
70
|
|
|
60
71
|
export { type ParseContext, type QueryStringFormat, type QueryStringFormatFor, type QueryStringFormatNamespaced, type QueryStringFormatStandalone, type QueryStringMap, type QueryStringOptions, type QueryStringParam, type QueryStringParams, createMap, querystring };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { StoreMutatorIdentifier, StateCreator } from 'zustand/vanilla';
|
|
2
2
|
|
|
3
|
+
type Write<T, U> = Omit<T, keyof U> & U;
|
|
4
|
+
type WithQueryString<S, T> = Write<S, {
|
|
5
|
+
setDefaults: (partial: Partial<T>) => void;
|
|
6
|
+
}>;
|
|
7
|
+
declare module 'zustand/vanilla' {
|
|
8
|
+
interface StoreMutators<S, A> {
|
|
9
|
+
'zustand-querystring': WithQueryString<S, S extends {
|
|
10
|
+
getState: () => infer T;
|
|
11
|
+
} ? T : never>;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
3
14
|
type DeepSelect<T> = T extends object ? {
|
|
4
15
|
[P in keyof T]?: DeepSelect<T[P]> | boolean;
|
|
5
16
|
} : boolean;
|
|
@@ -54,7 +65,7 @@ interface QueryStringOptions<T, K extends string | false = string | false> {
|
|
|
54
65
|
/** Bidirectional mapping between store state shape and URL state shape. */
|
|
55
66
|
map?: QueryStringMap<T>;
|
|
56
67
|
}
|
|
57
|
-
type QueryString = <T, Mps extends [StoreMutatorIdentifier, unknown][] = [], Mcs extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, Mps, Mcs>, options?: QueryStringOptions<T>) => StateCreator<T, Mps, Mcs>;
|
|
68
|
+
type QueryString = <T, Mps extends [StoreMutatorIdentifier, unknown][] = [], Mcs extends [StoreMutatorIdentifier, unknown][] = []>(initializer: StateCreator<T, [...Mps, ['zustand-querystring', never]], Mcs>, options?: QueryStringOptions<T>) => StateCreator<T, Mps, [['zustand-querystring', never], ...Mcs]>;
|
|
58
69
|
declare const querystring: QueryString;
|
|
59
70
|
|
|
60
71
|
export { type ParseContext, type QueryStringFormat, type QueryStringFormatFor, type QueryStringFormatNamespaced, type QueryStringFormatStandalone, type QueryStringMap, type QueryStringOptions, type QueryStringParam, type QueryStringParams, createMap, querystring };
|
package/dist/index.js
CHANGED
|
@@ -542,7 +542,7 @@ var queryStringImpl = (fn, options) => (set, get, api) => {
|
|
|
542
542
|
}
|
|
543
543
|
};
|
|
544
544
|
if (typeof window !== "undefined") {
|
|
545
|
-
|
|
545
|
+
let initialState = fn(
|
|
546
546
|
(...args) => {
|
|
547
547
|
set(...args);
|
|
548
548
|
setQuery();
|
|
@@ -557,6 +557,19 @@ var queryStringImpl = (fn, options) => (set, get, api) => {
|
|
|
557
557
|
}
|
|
558
558
|
return initialState;
|
|
559
559
|
};
|
|
560
|
+
api.setDefaults = (partial) => {
|
|
561
|
+
initialState = (0, import_lodash_es.mergeWith)(
|
|
562
|
+
{},
|
|
563
|
+
initialState,
|
|
564
|
+
partial,
|
|
565
|
+
(_objValue, srcValue) => {
|
|
566
|
+
if (Array.isArray(srcValue)) {
|
|
567
|
+
return srcValue;
|
|
568
|
+
}
|
|
569
|
+
return void 0;
|
|
570
|
+
}
|
|
571
|
+
);
|
|
572
|
+
};
|
|
560
573
|
const setQuery = () => {
|
|
561
574
|
const url = new URL(window.location.href);
|
|
562
575
|
const selectedState = getSelectedState(get(), url.pathname);
|
package/dist/index.mjs
CHANGED
|
@@ -148,7 +148,7 @@ var queryStringImpl = (fn, options) => (set, get, api) => {
|
|
|
148
148
|
}
|
|
149
149
|
};
|
|
150
150
|
if (typeof window !== "undefined") {
|
|
151
|
-
|
|
151
|
+
let initialState = fn(
|
|
152
152
|
(...args) => {
|
|
153
153
|
set(...args);
|
|
154
154
|
setQuery();
|
|
@@ -163,6 +163,19 @@ var queryStringImpl = (fn, options) => (set, get, api) => {
|
|
|
163
163
|
}
|
|
164
164
|
return initialState;
|
|
165
165
|
};
|
|
166
|
+
api.setDefaults = (partial) => {
|
|
167
|
+
initialState = mergeWith(
|
|
168
|
+
{},
|
|
169
|
+
initialState,
|
|
170
|
+
partial,
|
|
171
|
+
(_objValue, srcValue) => {
|
|
172
|
+
if (Array.isArray(srcValue)) {
|
|
173
|
+
return srcValue;
|
|
174
|
+
}
|
|
175
|
+
return void 0;
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
};
|
|
166
179
|
const setQuery = () => {
|
|
167
180
|
const url = new URL(window.location.href);
|
|
168
181
|
const selectedState = getSelectedState(get(), url.pathname);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zustand-querystring",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
"type": "github",
|
|
14
14
|
"url": "https://github.com/nitedani/zustand-querystring"
|
|
15
15
|
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsup",
|
|
18
|
+
"dev": "tsup --watch",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"test:watch": "vitest"
|
|
21
|
+
},
|
|
16
22
|
"exports": {
|
|
17
23
|
".": {
|
|
18
24
|
"types": "./dist/index.d.ts",
|
|
@@ -92,11 +98,5 @@
|
|
|
92
98
|
"vitest": "^4.0.12",
|
|
93
99
|
"vitest-browser-react": "^2.0.2",
|
|
94
100
|
"zustand": "^5.0.3"
|
|
95
|
-
},
|
|
96
|
-
"scripts": {
|
|
97
|
-
"build": "tsup",
|
|
98
|
-
"dev": "tsup --watch",
|
|
99
|
-
"test": "vitest run",
|
|
100
|
-
"test:watch": "vitest"
|
|
101
101
|
}
|
|
102
|
-
}
|
|
102
|
+
}
|