@orpc/vue-query 0.0.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -12,15 +12,6 @@ function buildKey(path, options) {
12
12
  ];
13
13
  }
14
14
 
15
- // src/utils-general.ts
16
- function createGeneralUtils(path) {
17
- return {
18
- key(options) {
19
- return buildKey(path, options);
20
- }
21
- };
22
- }
23
-
24
15
  // src/utils.ts
25
16
  import { isRef } from "vue";
26
17
  function deepUnref(value) {
@@ -39,22 +30,32 @@ function deepUnref(value) {
39
30
  return value;
40
31
  }
41
32
 
33
+ // src/utils-general.ts
34
+ function createGeneralUtils(path) {
35
+ return {
36
+ key(options) {
37
+ return buildKey(path, deepUnref(options));
38
+ }
39
+ };
40
+ }
41
+
42
42
  // src/utils-procedure.ts
43
+ import { computed } from "vue";
43
44
  function createProcedureUtils(client, path) {
44
45
  return {
45
46
  queryOptions(...[options]) {
46
47
  const input = options?.input;
47
48
  return {
48
- queryKey: buildKey(path, { type: "query", input }),
49
- queryFn: () => client(deepUnref(input)),
49
+ queryKey: computed(() => buildKey(path, { type: "query", input: deepUnref(input) })),
50
+ queryFn: ({ signal }) => client(deepUnref(input), { signal }),
50
51
  ...options
51
52
  };
52
53
  },
53
54
  infiniteOptions(options) {
54
55
  const input = options.input;
55
56
  return {
56
- queryKey: buildKey(path, { type: "infinite", input }),
57
- queryFn: ({ pageParam }) => client({ ...deepUnref(input), cursor: pageParam }),
57
+ queryKey: computed(() => buildKey(path, { type: "infinite", input: deepUnref(input) })),
58
+ queryFn: ({ pageParam, signal }) => client({ ...deepUnref(input), cursor: pageParam }, { signal }),
58
59
  ...options
59
60
  };
60
61
  },
@@ -1,7 +1,7 @@
1
- import type { SetOptional } from '@orpc/shared';
1
+ import type { AnyFunction, SetOptional } from '@orpc/shared';
2
2
  import type { DefaultError, MutationObserverOptions, QueryKey, QueryObserverOptions, UseInfiniteQueryOptions } from '@tanstack/vue-query';
3
3
  import type { MaybeRef, MaybeRefOrGetter } from 'vue';
4
- export type MaybeDeepRef<T> = MaybeRef<T extends object ? {
4
+ export type MaybeDeepRef<T> = MaybeRef<T extends AnyFunction ? T : T extends object ? {
5
5
  [K in keyof T]: MaybeDeepRef<T[K]>;
6
6
  } : T>;
7
7
  export type NonUndefinedGuard<T> = T extends undefined ? never : T;
@@ -1,10 +1,11 @@
1
1
  import type { QueryKey } from '@tanstack/vue-query';
2
2
  import type { BuildKeyOptions, KeyType } from './key';
3
+ import type { MaybeDeepRef } from './types';
3
4
  /**
4
5
  * Utils at any level (procedure or router)
5
6
  */
6
7
  export interface GeneralUtils<TInput> {
7
- key: <UType extends KeyType = undefined>(options?: BuildKeyOptions<UType, TInput>) => QueryKey;
8
+ key: <UType extends KeyType = undefined>(options?: MaybeDeepRef<BuildKeyOptions<UType, TInput>>) => QueryKey;
8
9
  }
9
10
  export declare function createGeneralUtils<TInput>(path: string[]): GeneralUtils<TInput>;
10
11
  //# sourceMappingURL=utils-general.d.ts.map
@@ -1,19 +1,21 @@
1
+ import type { Caller } from '@orpc/server';
1
2
  import type { IsEqual } from '@orpc/shared';
2
3
  import type { QueryKey } from '@tanstack/vue-query';
4
+ import type { ComputedRef } from 'vue';
3
5
  import type { InfiniteOptions, MutationOptions, QueryOptions } from './types';
4
6
  /**
5
7
  * Utils at procedure level
6
8
  */
7
9
  export interface ProcedureUtils<TInput, TOutput> {
8
- queryOptions: <U extends QueryOptions<TInput, TOutput, TOutput>>(...options: [U] | (undefined extends TInput ? [] : never)) => IsEqual<U, QueryOptions<TInput, TOutput, TOutput>> extends true ? {
10
+ queryOptions: <U extends QueryOptions<TInput, TOutput, any>>(...options: [U] | (undefined extends TInput ? [] : never)) => IsEqual<U, QueryOptions<TInput, TOutput, any>> extends true ? {
9
11
  queryKey: QueryKey;
10
12
  queryFn: () => Promise<TOutput>;
11
13
  } : Omit<{
12
- queryKey: QueryKey;
14
+ queryKey: ComputedRef<QueryKey>;
13
15
  queryFn: () => Promise<TOutput>;
14
16
  }, keyof U> & U;
15
17
  infiniteOptions: <U extends InfiniteOptions<TInput, TOutput, any>>(options: U) => Omit<{
16
- queryKey: QueryKey;
18
+ queryKey: ComputedRef<QueryKey>;
17
19
  queryFn: () => Promise<TOutput>;
18
20
  initialPageParam: undefined;
19
21
  }, keyof U> & U;
@@ -25,5 +27,5 @@ export interface ProcedureUtils<TInput, TOutput> {
25
27
  mutationFn: (input: TInput) => Promise<TOutput>;
26
28
  }, keyof U> & U;
27
29
  }
28
- export declare function createProcedureUtils<TInput, TOutput>(client: (input: TInput) => Promise<TOutput>, path: string[]): ProcedureUtils<TInput, TOutput>;
30
+ export declare function createProcedureUtils<TInput, TOutput>(client: Caller<TInput, TOutput>, path: string[]): ProcedureUtils<TInput, TOutput>;
29
31
  //# sourceMappingURL=utils-procedure.d.ts.map
@@ -1,3 +1,4 @@
1
+ import type { RouterClient } from '@orpc/client';
1
2
  import type { ContractProcedure, ContractRouter, SchemaInput, SchemaOutput } from '@orpc/contract';
2
3
  import type { Lazy, Procedure, Router } from '@orpc/server';
3
4
  import { type GeneralUtils } from './utils-general';
@@ -9,6 +10,5 @@ export type RouterUtils<T extends Router<any> | ContractRouter> = {
9
10
  * @param client - The client create form `@orpc/client`
10
11
  * @param path - The base path for query key
11
12
  */
12
- export declare function createRouterUtils<T extends Router<any> | ContractRouter>(client: any, // TODO typed
13
- path?: string[]): RouterUtils<T>;
13
+ export declare function createRouterUtils<T extends Router<any> | ContractRouter>(client: RouterClient<T>, path?: string[]): RouterUtils<T>;
14
14
  //# sourceMappingURL=utils-router.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/vue-query",
3
3
  "type": "module",
4
- "version": "0.0.0",
4
+ "version": "0.15.0",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -34,9 +34,9 @@
34
34
  "peerDependencies": {
35
35
  "@tanstack/vue-query": ">=5.50.0",
36
36
  "vue": ">=3.3.0",
37
- "@orpc/contract": "0.14.0",
38
- "@orpc/client": "0.14.0",
39
- "@orpc/server": "0.14.0"
37
+ "@orpc/client": "0.15.0",
38
+ "@orpc/contract": "0.15.0",
39
+ "@orpc/server": "0.15.0"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsup --clean --sourcemap --entry.index=src/index.ts --format=esm --onSuccess='tsc -b --noCheck'",