convex-route-query 0.0.1 → 0.0.2

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 CHANGED
@@ -52,6 +52,24 @@ function BlogPostPage() {
52
52
  }
53
53
  ```
54
54
 
55
+ Use `useQuery` for non-suspense components.
56
+
57
+ ```ts
58
+ function DraftPostPage() {
59
+ const { slug } = Route.useParams();
60
+ const { data: post, isPending } = getPost.useQuery(
61
+ { slug },
62
+ { enabled: Boolean(slug) },
63
+ );
64
+
65
+ if (isPending) {
66
+ return <Spinner />;
67
+ }
68
+
69
+ return <PostEditor post={post} />;
70
+ }
71
+ ```
72
+
55
73
  ## Install
56
74
 
57
75
  ```sh
@@ -67,6 +85,7 @@ Returns an object with:
67
85
  - `options(...args)` - the underlying `convexQuery(...)` options.
68
86
  - `fetchQuery(queryClient, ...args)` - calls `queryClient.fetchQuery(...)`.
69
87
  - `prefetchQuery(queryClient, ...args)` - calls `queryClient.prefetchQuery(...)`.
88
+ - `useQuery(...args, queryOptions)` - calls React Query's `useQuery(...)`.
70
89
  - `useSuspenseQuery(...args)` - calls React Query's `useSuspenseQuery(...)`.
71
90
 
72
- The loader helpers need a `QueryClient` because loaders run outside React context. The hook reads the `QueryClient` from React context.
91
+ The loader helpers need a `QueryClient` because loaders run outside React context. The hooks read the `QueryClient` from React context.
package/dist/index.cjs CHANGED
@@ -13,6 +13,13 @@ function createConvexRouteQuery(query) {
13
13
  prefetchQuery(queryClient, ...args) {
14
14
  return queryClient.prefetchQuery(options(...args));
15
15
  },
16
+ useQuery(...args) {
17
+ const [queryArgs, queryOptions] = args;
18
+ return (0, _tanstack_react_query.useQuery)({
19
+ ...options(...[queryArgs]),
20
+ ...queryOptions
21
+ });
22
+ },
16
23
  useSuspenseQuery(...args) {
17
24
  return (0, _tanstack_react_query.useSuspenseQuery)(options(...args));
18
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["convexQuery"],"sources":["../src/index.ts"],"sourcesContent":["import { convexQuery } from \"@convex-dev/react-query\";\nimport {\n useSuspenseQuery as useTanStackSuspenseQuery,\n type UseSuspenseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n FunctionArgs,\n FunctionReference,\n FunctionReturnType,\n OptionalRestArgs,\n} from \"convex/server\";\n\nexport type ConvexRouteQueryOptions<Query extends FunctionReference<\"query\">> =\n {\n queryKey: [\"convexQuery\", Query, FunctionArgs<Query>];\n staleTime: number;\n };\n\nexport type ConvexRouteQuery<Query extends FunctionReference<\"query\">> = {\n options: (...args: OptionalRestArgs<Query>) => ConvexRouteQueryOptions<Query>;\n fetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<FunctionReturnType<Query>>;\n prefetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<void>;\n useSuspenseQuery: (\n ...args: OptionalRestArgs<Query>\n ) => UseSuspenseQueryResult<FunctionReturnType<Query>, Error>;\n};\n\nexport type ConvexRouteQueryClient<Query extends FunctionReference<\"query\">> = {\n fetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<unknown>;\n prefetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<void>;\n};\n\ntype CreateConvexQueryOptions<Query extends FunctionReference<\"query\">> = (\n query: Query,\n ...args: OptionalRestArgs<Query>\n) => ConvexRouteQueryOptions<Query>;\n\nexport function createConvexRouteQuery<\n Query extends FunctionReference<\"query\">,\n>(query: Query): ConvexRouteQuery<Query> {\n const createOptions =\n convexQuery as unknown as CreateConvexQueryOptions<Query>;\n const options = (...args: OptionalRestArgs<Query>) =>\n createOptions(query, ...args);\n\n return {\n options,\n fetchQuery(queryClient, ...args) {\n return queryClient.fetchQuery(options(...args)) as Promise<\n FunctionReturnType<Query>\n >;\n },\n prefetchQuery(queryClient, ...args) {\n return queryClient.prefetchQuery(options(...args));\n },\n useSuspenseQuery(...args) {\n return useTanStackSuspenseQuery(options(...args));\n },\n };\n}\n"],"mappings":";;;;AA2CA,SAAgB,uBAEd,OAAuC;CACvC,MAAM,gBACJA,wBAAAA;CACF,MAAM,WAAW,GAAG,SAClB,cAAc,OAAO,GAAG,IAAI;CAE9B,OAAO;EACL;EACA,WAAW,aAAa,GAAG,MAAM;GAC/B,OAAO,YAAY,WAAW,QAAQ,GAAG,IAAI,CAAC;EAGhD;EACA,cAAc,aAAa,GAAG,MAAM;GAClC,OAAO,YAAY,cAAc,QAAQ,GAAG,IAAI,CAAC;EACnD;EACA,iBAAiB,GAAG,MAAM;GACxB,QAAA,GAAA,sBAAA,iBAAA,CAAgC,QAAQ,GAAG,IAAI,CAAC;EAClD;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["convexQuery"],"sources":["../src/index.ts"],"sourcesContent":["import { convexQuery } from \"@convex-dev/react-query\";\nimport {\n useQuery as useTanStackQuery,\n useSuspenseQuery as useTanStackSuspenseQuery,\n type UseQueryOptions,\n type UseQueryResult,\n type UseSuspenseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n ArgsAndOptions,\n FunctionArgs,\n FunctionReference,\n FunctionReturnType,\n OptionalRestArgs,\n} from \"convex/server\";\n\nexport type ConvexRouteQueryOptions<Query extends FunctionReference<\"query\">> =\n {\n queryKey: [\"convexQuery\", Query, FunctionArgs<Query>];\n staleTime: number;\n };\n\nexport type ConvexRouteUseQueryOptions<\n Query extends FunctionReference<\"query\">,\n Data = FunctionReturnType<Query>,\n> = Omit<\n UseQueryOptions<\n FunctionReturnType<Query>,\n Error,\n Data,\n ConvexRouteQueryOptions<Query>[\"queryKey\"]\n >,\n \"queryKey\" | \"queryFn\" | \"staleTime\"\n>;\n\nexport type ConvexRouteQuery<Query extends FunctionReference<\"query\">> = {\n options: (...args: OptionalRestArgs<Query>) => ConvexRouteQueryOptions<Query>;\n fetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<FunctionReturnType<Query>>;\n prefetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<void>;\n useQuery: <Data = FunctionReturnType<Query>>(\n ...args: ArgsAndOptions<Query, ConvexRouteUseQueryOptions<Query, Data>>\n ) => UseQueryResult<Data, Error>;\n useSuspenseQuery: (\n ...args: OptionalRestArgs<Query>\n ) => UseSuspenseQueryResult<FunctionReturnType<Query>, Error>;\n};\n\nexport type ConvexRouteQueryClient<Query extends FunctionReference<\"query\">> = {\n fetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<unknown>;\n prefetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<void>;\n};\n\ntype CreateConvexQueryOptions<Query extends FunctionReference<\"query\">> = (\n query: Query,\n ...args: OptionalRestArgs<Query>\n) => ConvexRouteQueryOptions<Query>;\n\nexport function createConvexRouteQuery<\n Query extends FunctionReference<\"query\">,\n>(query: Query): ConvexRouteQuery<Query> {\n const createOptions =\n convexQuery as unknown as CreateConvexQueryOptions<Query>;\n const options = (...args: OptionalRestArgs<Query>) =>\n createOptions(query, ...args);\n\n return {\n options,\n fetchQuery(queryClient, ...args) {\n return queryClient.fetchQuery(options(...args)) as Promise<\n FunctionReturnType<Query>\n >;\n },\n prefetchQuery(queryClient, ...args) {\n return queryClient.prefetchQuery(options(...args));\n },\n useQuery(...args) {\n const [queryArgs, queryOptions] = args;\n\n return useTanStackQuery({\n ...options(...([queryArgs] as OptionalRestArgs<Query>)),\n ...queryOptions,\n });\n },\n useSuspenseQuery(...args) {\n return useTanStackSuspenseQuery(options(...args));\n },\n };\n}\n"],"mappings":";;;;AA+DA,SAAgB,uBAEd,OAAuC;CACvC,MAAM,gBACJA,wBAAAA;CACF,MAAM,WAAW,GAAG,SAClB,cAAc,OAAO,GAAG,IAAI;CAE9B,OAAO;EACL;EACA,WAAW,aAAa,GAAG,MAAM;GAC/B,OAAO,YAAY,WAAW,QAAQ,GAAG,IAAI,CAAC;EAGhD;EACA,cAAc,aAAa,GAAG,MAAM;GAClC,OAAO,YAAY,cAAc,QAAQ,GAAG,IAAI,CAAC;EACnD;EACA,SAAS,GAAG,MAAM;GAChB,MAAM,CAAC,WAAW,gBAAgB;GAElC,QAAA,GAAA,sBAAA,SAAA,CAAwB;IACtB,GAAG,QAAQ,GAAI,CAAC,SAAS,CAA6B;IACtD,GAAG;GACL,CAAC;EACH;EACA,iBAAiB,GAAG,MAAM;GACxB,QAAA,GAAA,sBAAA,iBAAA,CAAgC,QAAQ,GAAG,IAAI,CAAC;EAClD;CACF;AACF"}
package/dist/index.d.cts CHANGED
@@ -1,15 +1,17 @@
1
- import { UseSuspenseQueryResult } from "@tanstack/react-query";
2
- import { FunctionArgs, FunctionReference, FunctionReturnType, OptionalRestArgs } from "convex/server";
1
+ import { UseQueryOptions, UseQueryResult, UseSuspenseQueryResult } from "@tanstack/react-query";
2
+ import { ArgsAndOptions, FunctionArgs, FunctionReference, FunctionReturnType, OptionalRestArgs } from "convex/server";
3
3
 
4
4
  //#region src/index.d.ts
5
5
  type ConvexRouteQueryOptions<Query extends FunctionReference<"query">> = {
6
6
  queryKey: ["convexQuery", Query, FunctionArgs<Query>];
7
7
  staleTime: number;
8
8
  };
9
+ type ConvexRouteUseQueryOptions<Query extends FunctionReference<"query">, Data = FunctionReturnType<Query>> = Omit<UseQueryOptions<FunctionReturnType<Query>, Error, Data, ConvexRouteQueryOptions<Query>["queryKey"]>, "queryKey" | "queryFn" | "staleTime">;
9
10
  type ConvexRouteQuery<Query extends FunctionReference<"query">> = {
10
11
  options: (...args: OptionalRestArgs<Query>) => ConvexRouteQueryOptions<Query>;
11
12
  fetchQuery: (queryClient: ConvexRouteQueryClient<Query>, ...args: OptionalRestArgs<Query>) => Promise<FunctionReturnType<Query>>;
12
13
  prefetchQuery: (queryClient: ConvexRouteQueryClient<Query>, ...args: OptionalRestArgs<Query>) => Promise<void>;
14
+ useQuery: <Data = FunctionReturnType<Query>>(...args: ArgsAndOptions<Query, ConvexRouteUseQueryOptions<Query, Data>>) => UseQueryResult<Data, Error>;
13
15
  useSuspenseQuery: (...args: OptionalRestArgs<Query>) => UseSuspenseQueryResult<FunctionReturnType<Query>, Error>;
14
16
  };
15
17
  type ConvexRouteQueryClient<Query extends FunctionReference<"query">> = {
@@ -18,5 +20,5 @@ type ConvexRouteQueryClient<Query extends FunctionReference<"query">> = {
18
20
  };
19
21
  declare function createConvexRouteQuery<Query extends FunctionReference<"query">>(query: Query): ConvexRouteQuery<Query>;
20
22
  //#endregion
21
- export { ConvexRouteQuery, ConvexRouteQueryClient, ConvexRouteQueryOptions, createConvexRouteQuery };
23
+ export { ConvexRouteQuery, ConvexRouteQueryClient, ConvexRouteQueryOptions, ConvexRouteUseQueryOptions, createConvexRouteQuery };
22
24
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;KAYY,uBAAA,eAAsC,iBAAA;EAE9C,QAAA,kBAA0B,KAAA,EAAO,YAAA,CAAa,KAAA;EAC9C,SAAA;AAAA;AAAA,KAGQ,gBAAA,eAA+B,iBAAA;EACzC,OAAA,MAAa,IAAA,EAAM,gBAAA,CAAiB,KAAA,MAAW,uBAAA,CAAwB,KAAA;EACvE,UAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA,CAAQ,kBAAA,CAAmB,KAAA;EAChC,aAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA;EACL,gBAAA,MACK,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,sBAAA,CAAuB,kBAAA,CAAmB,KAAA,GAAQ,KAAA;AAAA;AAAA,KAG7C,sBAAA,eAAqC,iBAAA;EAC/C,UAAA,GAAa,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;EACzD,aAAA,GAAgB,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;AAAA;AAAA,iBAQ9C,sBAAA,eACA,iBAAA,WACd,KAAA,EAAO,KAAA,GAAQ,gBAAA,CAAiB,KAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;KAgBY,uBAAA,eAAsC,iBAAA;EAE9C,QAAA,kBAA0B,KAAA,EAAO,YAAA,CAAa,KAAA;EAC9C,SAAA;AAAA;AAAA,KAGQ,0BAAA,eACI,iBAAA,kBACP,kBAAA,CAAmB,KAAA,KACxB,IAAA,CACF,eAAA,CACE,kBAAA,CAAmB,KAAA,GACnB,KAAA,EACA,IAAA,EACA,uBAAA,CAAwB,KAAA;AAAA,KAKhB,gBAAA,eAA+B,iBAAA;EACzC,OAAA,MAAa,IAAA,EAAM,gBAAA,CAAiB,KAAA,MAAW,uBAAA,CAAwB,KAAA;EACvE,UAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA,CAAQ,kBAAA,CAAmB,KAAA;EAChC,aAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA;EACL,QAAA,UAAkB,kBAAA,CAAmB,KAAA,MAChC,IAAA,EAAM,cAAA,CAAe,KAAA,EAAO,0BAAA,CAA2B,KAAA,EAAO,IAAA,OAC9D,cAAA,CAAe,IAAA,EAAM,KAAA;EAC1B,gBAAA,MACK,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,sBAAA,CAAuB,kBAAA,CAAmB,KAAA,GAAQ,KAAA;AAAA;AAAA,KAG7C,sBAAA,eAAqC,iBAAA;EAC/C,UAAA,GAAa,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;EACzD,aAAA,GAAgB,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;AAAA;AAAA,iBAQ9C,sBAAA,eACA,iBAAA,WACd,KAAA,EAAO,KAAA,GAAQ,gBAAA,CAAiB,KAAA"}
package/dist/index.d.mts CHANGED
@@ -1,15 +1,17 @@
1
- import { UseSuspenseQueryResult } from "@tanstack/react-query";
2
- import { FunctionArgs, FunctionReference, FunctionReturnType, OptionalRestArgs } from "convex/server";
1
+ import { UseQueryOptions, UseQueryResult, UseSuspenseQueryResult } from "@tanstack/react-query";
2
+ import { ArgsAndOptions, FunctionArgs, FunctionReference, FunctionReturnType, OptionalRestArgs } from "convex/server";
3
3
 
4
4
  //#region src/index.d.ts
5
5
  type ConvexRouteQueryOptions<Query extends FunctionReference<"query">> = {
6
6
  queryKey: ["convexQuery", Query, FunctionArgs<Query>];
7
7
  staleTime: number;
8
8
  };
9
+ type ConvexRouteUseQueryOptions<Query extends FunctionReference<"query">, Data = FunctionReturnType<Query>> = Omit<UseQueryOptions<FunctionReturnType<Query>, Error, Data, ConvexRouteQueryOptions<Query>["queryKey"]>, "queryKey" | "queryFn" | "staleTime">;
9
10
  type ConvexRouteQuery<Query extends FunctionReference<"query">> = {
10
11
  options: (...args: OptionalRestArgs<Query>) => ConvexRouteQueryOptions<Query>;
11
12
  fetchQuery: (queryClient: ConvexRouteQueryClient<Query>, ...args: OptionalRestArgs<Query>) => Promise<FunctionReturnType<Query>>;
12
13
  prefetchQuery: (queryClient: ConvexRouteQueryClient<Query>, ...args: OptionalRestArgs<Query>) => Promise<void>;
14
+ useQuery: <Data = FunctionReturnType<Query>>(...args: ArgsAndOptions<Query, ConvexRouteUseQueryOptions<Query, Data>>) => UseQueryResult<Data, Error>;
13
15
  useSuspenseQuery: (...args: OptionalRestArgs<Query>) => UseSuspenseQueryResult<FunctionReturnType<Query>, Error>;
14
16
  };
15
17
  type ConvexRouteQueryClient<Query extends FunctionReference<"query">> = {
@@ -18,5 +20,5 @@ type ConvexRouteQueryClient<Query extends FunctionReference<"query">> = {
18
20
  };
19
21
  declare function createConvexRouteQuery<Query extends FunctionReference<"query">>(query: Query): ConvexRouteQuery<Query>;
20
22
  //#endregion
21
- export { ConvexRouteQuery, ConvexRouteQueryClient, ConvexRouteQueryOptions, createConvexRouteQuery };
23
+ export { ConvexRouteQuery, ConvexRouteQueryClient, ConvexRouteQueryOptions, ConvexRouteUseQueryOptions, createConvexRouteQuery };
22
24
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;KAYY,uBAAA,eAAsC,iBAAA;EAE9C,QAAA,kBAA0B,KAAA,EAAO,YAAA,CAAa,KAAA;EAC9C,SAAA;AAAA;AAAA,KAGQ,gBAAA,eAA+B,iBAAA;EACzC,OAAA,MAAa,IAAA,EAAM,gBAAA,CAAiB,KAAA,MAAW,uBAAA,CAAwB,KAAA;EACvE,UAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA,CAAQ,kBAAA,CAAmB,KAAA;EAChC,aAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA;EACL,gBAAA,MACK,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,sBAAA,CAAuB,kBAAA,CAAmB,KAAA,GAAQ,KAAA;AAAA;AAAA,KAG7C,sBAAA,eAAqC,iBAAA;EAC/C,UAAA,GAAa,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;EACzD,aAAA,GAAgB,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;AAAA;AAAA,iBAQ9C,sBAAA,eACA,iBAAA,WACd,KAAA,EAAO,KAAA,GAAQ,gBAAA,CAAiB,KAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;KAgBY,uBAAA,eAAsC,iBAAA;EAE9C,QAAA,kBAA0B,KAAA,EAAO,YAAA,CAAa,KAAA;EAC9C,SAAA;AAAA;AAAA,KAGQ,0BAAA,eACI,iBAAA,kBACP,kBAAA,CAAmB,KAAA,KACxB,IAAA,CACF,eAAA,CACE,kBAAA,CAAmB,KAAA,GACnB,KAAA,EACA,IAAA,EACA,uBAAA,CAAwB,KAAA;AAAA,KAKhB,gBAAA,eAA+B,iBAAA;EACzC,OAAA,MAAa,IAAA,EAAM,gBAAA,CAAiB,KAAA,MAAW,uBAAA,CAAwB,KAAA;EACvE,UAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA,CAAQ,kBAAA,CAAmB,KAAA;EAChC,aAAA,GACE,WAAA,EAAa,sBAAA,CAAuB,KAAA,MACjC,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,OAAA;EACL,QAAA,UAAkB,kBAAA,CAAmB,KAAA,MAChC,IAAA,EAAM,cAAA,CAAe,KAAA,EAAO,0BAAA,CAA2B,KAAA,EAAO,IAAA,OAC9D,cAAA,CAAe,IAAA,EAAM,KAAA;EAC1B,gBAAA,MACK,IAAA,EAAM,gBAAA,CAAiB,KAAA,MACvB,sBAAA,CAAuB,kBAAA,CAAmB,KAAA,GAAQ,KAAA;AAAA;AAAA,KAG7C,sBAAA,eAAqC,iBAAA;EAC/C,UAAA,GAAa,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;EACzD,aAAA,GAAgB,OAAA,EAAS,uBAAA,CAAwB,KAAA,MAAW,OAAA;AAAA;AAAA,iBAQ9C,sBAAA,eACA,iBAAA,WACd,KAAA,EAAO,KAAA,GAAQ,gBAAA,CAAiB,KAAA"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { convexQuery } from "@convex-dev/react-query";
2
- import { useSuspenseQuery } from "@tanstack/react-query";
2
+ import { useQuery, useSuspenseQuery } from "@tanstack/react-query";
3
3
  //#region src/index.ts
4
4
  function createConvexRouteQuery(query) {
5
5
  const createOptions = convexQuery;
@@ -12,6 +12,13 @@ function createConvexRouteQuery(query) {
12
12
  prefetchQuery(queryClient, ...args) {
13
13
  return queryClient.prefetchQuery(options(...args));
14
14
  },
15
+ useQuery(...args) {
16
+ const [queryArgs, queryOptions] = args;
17
+ return useQuery({
18
+ ...options(...[queryArgs]),
19
+ ...queryOptions
20
+ });
21
+ },
15
22
  useSuspenseQuery(...args) {
16
23
  return useSuspenseQuery(options(...args));
17
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["useTanStackSuspenseQuery"],"sources":["../src/index.ts"],"sourcesContent":["import { convexQuery } from \"@convex-dev/react-query\";\nimport {\n useSuspenseQuery as useTanStackSuspenseQuery,\n type UseSuspenseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n FunctionArgs,\n FunctionReference,\n FunctionReturnType,\n OptionalRestArgs,\n} from \"convex/server\";\n\nexport type ConvexRouteQueryOptions<Query extends FunctionReference<\"query\">> =\n {\n queryKey: [\"convexQuery\", Query, FunctionArgs<Query>];\n staleTime: number;\n };\n\nexport type ConvexRouteQuery<Query extends FunctionReference<\"query\">> = {\n options: (...args: OptionalRestArgs<Query>) => ConvexRouteQueryOptions<Query>;\n fetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<FunctionReturnType<Query>>;\n prefetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<void>;\n useSuspenseQuery: (\n ...args: OptionalRestArgs<Query>\n ) => UseSuspenseQueryResult<FunctionReturnType<Query>, Error>;\n};\n\nexport type ConvexRouteQueryClient<Query extends FunctionReference<\"query\">> = {\n fetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<unknown>;\n prefetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<void>;\n};\n\ntype CreateConvexQueryOptions<Query extends FunctionReference<\"query\">> = (\n query: Query,\n ...args: OptionalRestArgs<Query>\n) => ConvexRouteQueryOptions<Query>;\n\nexport function createConvexRouteQuery<\n Query extends FunctionReference<\"query\">,\n>(query: Query): ConvexRouteQuery<Query> {\n const createOptions =\n convexQuery as unknown as CreateConvexQueryOptions<Query>;\n const options = (...args: OptionalRestArgs<Query>) =>\n createOptions(query, ...args);\n\n return {\n options,\n fetchQuery(queryClient, ...args) {\n return queryClient.fetchQuery(options(...args)) as Promise<\n FunctionReturnType<Query>\n >;\n },\n prefetchQuery(queryClient, ...args) {\n return queryClient.prefetchQuery(options(...args));\n },\n useSuspenseQuery(...args) {\n return useTanStackSuspenseQuery(options(...args));\n },\n };\n}\n"],"mappings":";;;AA2CA,SAAgB,uBAEd,OAAuC;CACvC,MAAM,gBACJ;CACF,MAAM,WAAW,GAAG,SAClB,cAAc,OAAO,GAAG,IAAI;CAE9B,OAAO;EACL;EACA,WAAW,aAAa,GAAG,MAAM;GAC/B,OAAO,YAAY,WAAW,QAAQ,GAAG,IAAI,CAAC;EAGhD;EACA,cAAc,aAAa,GAAG,MAAM;GAClC,OAAO,YAAY,cAAc,QAAQ,GAAG,IAAI,CAAC;EACnD;EACA,iBAAiB,GAAG,MAAM;GACxB,OAAOA,iBAAyB,QAAQ,GAAG,IAAI,CAAC;EAClD;CACF;AACF"}
1
+ {"version":3,"file":"index.mjs","names":["useTanStackQuery","useTanStackSuspenseQuery"],"sources":["../src/index.ts"],"sourcesContent":["import { convexQuery } from \"@convex-dev/react-query\";\nimport {\n useQuery as useTanStackQuery,\n useSuspenseQuery as useTanStackSuspenseQuery,\n type UseQueryOptions,\n type UseQueryResult,\n type UseSuspenseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n ArgsAndOptions,\n FunctionArgs,\n FunctionReference,\n FunctionReturnType,\n OptionalRestArgs,\n} from \"convex/server\";\n\nexport type ConvexRouteQueryOptions<Query extends FunctionReference<\"query\">> =\n {\n queryKey: [\"convexQuery\", Query, FunctionArgs<Query>];\n staleTime: number;\n };\n\nexport type ConvexRouteUseQueryOptions<\n Query extends FunctionReference<\"query\">,\n Data = FunctionReturnType<Query>,\n> = Omit<\n UseQueryOptions<\n FunctionReturnType<Query>,\n Error,\n Data,\n ConvexRouteQueryOptions<Query>[\"queryKey\"]\n >,\n \"queryKey\" | \"queryFn\" | \"staleTime\"\n>;\n\nexport type ConvexRouteQuery<Query extends FunctionReference<\"query\">> = {\n options: (...args: OptionalRestArgs<Query>) => ConvexRouteQueryOptions<Query>;\n fetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<FunctionReturnType<Query>>;\n prefetchQuery: (\n queryClient: ConvexRouteQueryClient<Query>,\n ...args: OptionalRestArgs<Query>\n ) => Promise<void>;\n useQuery: <Data = FunctionReturnType<Query>>(\n ...args: ArgsAndOptions<Query, ConvexRouteUseQueryOptions<Query, Data>>\n ) => UseQueryResult<Data, Error>;\n useSuspenseQuery: (\n ...args: OptionalRestArgs<Query>\n ) => UseSuspenseQueryResult<FunctionReturnType<Query>, Error>;\n};\n\nexport type ConvexRouteQueryClient<Query extends FunctionReference<\"query\">> = {\n fetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<unknown>;\n prefetchQuery: (options: ConvexRouteQueryOptions<Query>) => Promise<void>;\n};\n\ntype CreateConvexQueryOptions<Query extends FunctionReference<\"query\">> = (\n query: Query,\n ...args: OptionalRestArgs<Query>\n) => ConvexRouteQueryOptions<Query>;\n\nexport function createConvexRouteQuery<\n Query extends FunctionReference<\"query\">,\n>(query: Query): ConvexRouteQuery<Query> {\n const createOptions =\n convexQuery as unknown as CreateConvexQueryOptions<Query>;\n const options = (...args: OptionalRestArgs<Query>) =>\n createOptions(query, ...args);\n\n return {\n options,\n fetchQuery(queryClient, ...args) {\n return queryClient.fetchQuery(options(...args)) as Promise<\n FunctionReturnType<Query>\n >;\n },\n prefetchQuery(queryClient, ...args) {\n return queryClient.prefetchQuery(options(...args));\n },\n useQuery(...args) {\n const [queryArgs, queryOptions] = args;\n\n return useTanStackQuery({\n ...options(...([queryArgs] as OptionalRestArgs<Query>)),\n ...queryOptions,\n });\n },\n useSuspenseQuery(...args) {\n return useTanStackSuspenseQuery(options(...args));\n },\n };\n}\n"],"mappings":";;;AA+DA,SAAgB,uBAEd,OAAuC;CACvC,MAAM,gBACJ;CACF,MAAM,WAAW,GAAG,SAClB,cAAc,OAAO,GAAG,IAAI;CAE9B,OAAO;EACL;EACA,WAAW,aAAa,GAAG,MAAM;GAC/B,OAAO,YAAY,WAAW,QAAQ,GAAG,IAAI,CAAC;EAGhD;EACA,cAAc,aAAa,GAAG,MAAM;GAClC,OAAO,YAAY,cAAc,QAAQ,GAAG,IAAI,CAAC;EACnD;EACA,SAAS,GAAG,MAAM;GAChB,MAAM,CAAC,WAAW,gBAAgB;GAElC,OAAOA,SAAiB;IACtB,GAAG,QAAQ,GAAI,CAAC,SAAS,CAA6B;IACtD,GAAG;GACL,CAAC;EACH;EACA,iBAAiB,GAAG,MAAM;GACxB,OAAOC,iBAAyB,QAAQ,GAAG,IAAI,CAAC;EAClD;CACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convex-route-query",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Type-safe Convex query helpers for TanStack Router loaders and React Query Suspense.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -63,7 +63,8 @@
63
63
  "url": "https://github.com/ludicroushq/convex-route-query/issues"
64
64
  },
65
65
  "publishConfig": {
66
- "access": "public"
66
+ "access": "public",
67
+ "provenance": true
67
68
  },
68
69
  "engines": {
69
70
  "node": ">=20.0.0"