react-query-tree 0.0.2 → 0.0.8
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/README.md +146 -0
- package/dist/api.d.ts +5 -7
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +11 -4
- package/dist/api.js.map +1 -1
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# React Query Tree
|
|
2
|
+
|
|
3
|
+
React Query Tree lets you define your API as a tree of queries and mutations, with fully typed queryKeys and a slim API for accessing them.
|
|
4
|
+
|
|
5
|
+
> React Query Tree is heavily inspired by the tRPC React Query client. It provides the same type-safe, hierarchical developer experience, but is designed for client-side use cases where a tRPC server is not required.
|
|
6
|
+
|
|
7
|
+
<br />
|
|
8
|
+
|
|
9
|
+
**☹️ Traditional method**
|
|
10
|
+
|
|
11
|
+
- Query keys and path keys are not typed
|
|
12
|
+
- No obvious way to structure collections of queries and mutations to is easily accessible.
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
const todosQuery = useQuery({
|
|
16
|
+
queryKey: ["todos", "list"],
|
|
17
|
+
queryFn: () => {
|
|
18
|
+
return fetch("/todos");
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
<br />
|
|
24
|
+
|
|
25
|
+
**🥳 With React Query Tree**
|
|
26
|
+
|
|
27
|
+
- Single object for accessing all queries and mutations
|
|
28
|
+
- Query keys are typed which makes invalidation a breeze
|
|
29
|
+
|
|
30
|
+
**api.ts**
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { createApi, query } from "react-query-tree";
|
|
34
|
+
|
|
35
|
+
export const api = createApi({
|
|
36
|
+
todos: {
|
|
37
|
+
list: query({
|
|
38
|
+
queryFn: () => {
|
|
39
|
+
return fetch("/todos");
|
|
40
|
+
},
|
|
41
|
+
}),
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**component.tsx**
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
const todosQuery = useQuery(api.todos.list.queryOptions());
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## API Documentation
|
|
53
|
+
|
|
54
|
+
### Nested APIs
|
|
55
|
+
|
|
56
|
+
To avoid making the API object huge you can split it into smaller chunks that are then used the main API object.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { createApi, query } from "react-query-tree";
|
|
60
|
+
|
|
61
|
+
const todosApi = createApi({
|
|
62
|
+
list: query({
|
|
63
|
+
queryFn: () => {
|
|
64
|
+
return fetch("/todos");
|
|
65
|
+
},
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const usersApi = createApi({
|
|
70
|
+
list: query({
|
|
71
|
+
queryFn: () => {
|
|
72
|
+
return fetch("/users");
|
|
73
|
+
},
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
export const api = createApi({
|
|
77
|
+
todos: todosApi,
|
|
78
|
+
users: usersApi,
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Invalidation
|
|
83
|
+
|
|
84
|
+
Invalidating a query.
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
queryClient.invalidateQueries({ queryKey: api.todos.list.queryKey() });
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Invalidating a path (all nested queries inside that object).
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
queryClient.invalidateQueries({ queryKey: api.todos.pathKey() });
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Invalidating inside an API.
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
const todosApi = createApi({
|
|
100
|
+
list: query({
|
|
101
|
+
queryFn: () => {
|
|
102
|
+
return fetch("/todos").then((res) => res.json());
|
|
103
|
+
},
|
|
104
|
+
}),
|
|
105
|
+
create: mutation({
|
|
106
|
+
mutationFn: (todo) => {
|
|
107
|
+
return fetch("/todos", {
|
|
108
|
+
method: "POST",
|
|
109
|
+
body: JSON.stringify(todo),
|
|
110
|
+
});
|
|
111
|
+
},
|
|
112
|
+
onSuccess: () => {
|
|
113
|
+
queryClient.invalidateQueries({ queryKey: api.todos.pathKey() });
|
|
114
|
+
},
|
|
115
|
+
}),
|
|
116
|
+
});
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Query and Mutation options
|
|
120
|
+
|
|
121
|
+
You can add query and mutation option directly inside your API.
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
const todosApi = createApi({
|
|
125
|
+
list: query({
|
|
126
|
+
queryFn: () => {
|
|
127
|
+
return fetch("/todos").then((res) => res.json());
|
|
128
|
+
},
|
|
129
|
+
staleTime: 10_000,
|
|
130
|
+
retry: false,
|
|
131
|
+
}),
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
These can be extended when consuming the API.
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
useQuery(
|
|
139
|
+
todosApi.list.queryOptions({
|
|
140
|
+
staleTime: 5_000,
|
|
141
|
+
})
|
|
142
|
+
);
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
- Primitive values will override the base options.
|
|
146
|
+
- Functions such as `onSuccess` will be merged.
|
package/dist/api.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type MutationBrand } from "./mutation";
|
|
|
3
3
|
import { type QueryBrand } from "./query";
|
|
4
4
|
import type { DeepPartial } from "./types";
|
|
5
5
|
export type Collection = {
|
|
6
|
-
[key: string]: QueryBrand | MutationBrand | ((filter: any) => QueryBrand) | Collection
|
|
6
|
+
[key: string]: QueryBrand | MutationBrand | ((filter: any) => QueryBrand) | Collection | OutputApi<any>;
|
|
7
7
|
};
|
|
8
8
|
type Query<T> = T extends Omit<DefinedInitialDataOptions<infer TQueryFnData, infer TError, infer TData> & QueryBrand, "queryKey"> ? {
|
|
9
9
|
queryOptions: <TInnerData = TData>(opts?: Partial<Omit<DefinedInitialDataOptions<TQueryFnData, TError, TInnerData>, "queryKey">>) => Omit<DefinedInitialDataOptions<TQueryFnData, TError, TInnerData>, "queryKey"> & {
|
|
@@ -55,14 +55,12 @@ export type OutputApi<T extends Collection> = {
|
|
|
55
55
|
"~type": "query";
|
|
56
56
|
} ? Query<T[K]> : T[K] extends {
|
|
57
57
|
"~type": "mutation";
|
|
58
|
-
} ? Mutation<T[K]> : T[K] extends (filter: any) => any ? QueryWithFilter<T[K]> : T[K] extends
|
|
58
|
+
} ? Mutation<T[K]> : T[K] extends (filter: any) => any ? QueryWithFilter<T[K]> : T[K] extends OutputApi<infer U> ? OutputApi<U> & {
|
|
59
|
+
pathKey: () => string[];
|
|
60
|
+
} : T[K] extends Record<string, any> ? OutputApi<T[K]> & {
|
|
59
61
|
pathKey: () => string[];
|
|
60
62
|
} : never;
|
|
61
63
|
};
|
|
62
|
-
export declare
|
|
63
|
-
type Prettify<T> = {
|
|
64
|
-
[K in keyof T]: T[K];
|
|
65
|
-
} & {};
|
|
66
|
-
export declare function createClient<T extends Collection>(config: T): Prettify<OutputApi<T>>;
|
|
64
|
+
export declare function createApi<T extends Collection>(config: T): OutputApi<T>;
|
|
67
65
|
export {};
|
|
68
66
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,yBAAyB,EACzB,WAAW,EACX,QAAQ,EACR,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAc,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { mutationBrand } from "./mutation";
|
|
2
2
|
import { queryBrand } from "./query";
|
|
3
3
|
import { mergeMutationOptions } from "./utils";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
export function createClient(config) {
|
|
4
|
+
const PROXY_SYMBOL = Symbol("IS_PROXY");
|
|
5
|
+
export function createApi(config) {
|
|
8
6
|
const createProxy = (proxyTarget, path = []) => {
|
|
9
7
|
return new Proxy(proxyTarget, {
|
|
10
8
|
get(obj, prop) {
|
|
9
|
+
if (prop === PROXY_SYMBOL) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
11
12
|
if (typeof prop === "symbol" || prop === "toJSON") {
|
|
12
13
|
return obj[prop];
|
|
13
14
|
}
|
|
@@ -16,6 +17,12 @@ export function createClient(config) {
|
|
|
16
17
|
if (prop === "pathKey") {
|
|
17
18
|
return () => path;
|
|
18
19
|
}
|
|
20
|
+
if (prop === "config") {
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
if (value && typeof value === "object" && value[PROXY_SYMBOL]) {
|
|
24
|
+
return createProxy(value.config, currentPath);
|
|
25
|
+
}
|
|
19
26
|
if (value && typeof value === "object" && value["~type"] === queryBrand["~type"]) {
|
|
20
27
|
return {
|
|
21
28
|
queryOptions: (opts) => ({ ...value, queryKey: currentPath, ...opts }),
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsB,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAmB,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-query-tree",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.8",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"tag": "latest"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/feelixe/react-query-tree.git"
|
|
12
|
+
},
|
|
6
13
|
"exports": {
|
|
7
14
|
".": {
|
|
8
15
|
"import": "./dist/index.js",
|
|
@@ -26,7 +33,7 @@
|
|
|
26
33
|
"react-dom": "19.2.3",
|
|
27
34
|
"@types/react": "19.2.3",
|
|
28
35
|
"@types/react-dom": "19.2.3",
|
|
29
|
-
"@biomejs/biome": "
|
|
36
|
+
"@biomejs/biome": "catalog:"
|
|
30
37
|
},
|
|
31
38
|
"peerDependencies": {
|
|
32
39
|
"@tanstack/react-query": "^5.0.0"
|