@orpc/vue-query 0.0.0-next.67ca77c → 0.0.0-next.6acfc62

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -54,6 +54,7 @@ function createProcedureUtils(client, path) {
54
54
  infiniteOptions(options) {
55
55
  const input = options.input;
56
56
  return {
57
+ initialPageParam: void 0,
57
58
  queryKey: computed(() => buildKey(path, { type: "infinite", input: deepUnref(input) })),
58
59
  queryFn: ({ pageParam, signal }) => {
59
60
  return client({ ...deepUnref(input), cursor: pageParam }, { signal, context: deepUnref(options.context) });
@@ -1,6 +1,6 @@
1
1
  import type { AnyFunction, SetOptional } from '@orpc/shared';
2
- import type { DefaultError, MutationObserverOptions, QueryKey, QueryObserverOptions, UseInfiniteQueryOptions } from '@tanstack/vue-query';
3
- import type { MaybeRef, MaybeRefOrGetter } from 'vue';
2
+ import type { MutationObserverOptions, QueryFunctionContext, QueryKey, QueryObserverOptions, UseInfiniteQueryOptions } from '@tanstack/vue-query';
3
+ import type { ComputedRef, MaybeRef, MaybeRefOrGetter } from 'vue';
4
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>;
@@ -8,7 +8,7 @@ export type NonUndefinedGuard<T> = T extends undefined ? never : T;
8
8
  export type InferCursor<T> = T extends {
9
9
  cursor?: any;
10
10
  } ? T['cursor'] : never;
11
- export type QueryOptions<TInput, TOutput, TClientContext, TSelectData> = (undefined extends TInput ? {
11
+ export type QueryOptionsExtra<TClientContext, TInput, TOutput, TError extends Error, TSelectData> = (undefined extends TInput ? {
12
12
  input?: MaybeDeepRef<TInput>;
13
13
  } : {
14
14
  input: MaybeDeepRef<TInput>;
@@ -17,12 +17,17 @@ export type QueryOptions<TInput, TOutput, TClientContext, TSelectData> = (undefi
17
17
  } : {
18
18
  context: MaybeDeepRef<TClientContext>;
19
19
  }) & SetOptional<{
20
- [P in keyof QueryObserverOptions<TOutput, DefaultError, TSelectData, TOutput, QueryKey>]: P extends 'enabled' ? MaybeRefOrGetter<QueryObserverOptions<TOutput, DefaultError, TSelectData, TOutput, QueryKey>[P]> : MaybeDeepRef<QueryObserverOptions<TOutput, DefaultError, TSelectData, TOutput, QueryKey>[P]>;
20
+ [P in keyof QueryObserverOptions<TOutput, TError, TSelectData, TOutput, QueryKey>]: P extends 'enabled' ? MaybeRefOrGetter<QueryObserverOptions<TOutput, TError, TSelectData, TOutput, QueryKey>[P]> : MaybeDeepRef<QueryObserverOptions<TOutput, TError, TSelectData, TOutput, QueryKey>[P]>;
21
21
  }, 'queryKey'> & {
22
22
  shallow?: MaybeRef<boolean>;
23
23
  initialData?: NonUndefinedGuard<TOutput> | (() => NonUndefinedGuard<TOutput>) | undefined;
24
24
  };
25
- export type InfiniteOptions<TInput, TOutput, TClientContext, TSelectData> = (undefined extends TInput ? {
25
+ export interface QueryOptionsBase<TOutput, TError extends Error> {
26
+ queryKey: ComputedRef<QueryKey>;
27
+ queryFn(ctx: QueryFunctionContext): Promise<TOutput>;
28
+ retry?(failureCount: number, error: TError): boolean;
29
+ }
30
+ export type InfiniteOptionsExtra<TClientContext, TInput, TOutput, TError extends Error, TSelectData> = (undefined extends TInput ? {
26
31
  input?: MaybeDeepRef<Omit<TInput, 'cursor'>>;
27
32
  } : {
28
33
  input: MaybeDeepRef<Omit<TInput, 'cursor'>>;
@@ -30,14 +35,25 @@ export type InfiniteOptions<TInput, TOutput, TClientContext, TSelectData> = (und
30
35
  context?: MaybeDeepRef<TClientContext>;
31
36
  } : {
32
37
  context: MaybeDeepRef<TClientContext>;
33
- }) & SetOptional<UseInfiniteQueryOptions<TOutput, DefaultError, TSelectData, TOutput, QueryKey, InferCursor<TInput>>, 'queryKey' | (undefined extends InferCursor<TInput> ? 'initialPageParam' : never)>;
34
- export type MutationOptions<TInput, TOutput, TClientContext> = (undefined extends TClientContext ? {
38
+ }) & SetOptional<UseInfiniteQueryOptions<TOutput, TError, TSelectData, TOutput, QueryKey, InferCursor<TInput>>, 'queryKey' | (undefined extends InferCursor<TInput> ? 'initialPageParam' : never)>;
39
+ export interface InfiniteOptionsBase<TInput, TOutput, TError extends Error> {
40
+ queryKey: ComputedRef<QueryKey>;
41
+ queryFn(ctx: QueryFunctionContext<QueryKey, InferCursor<TInput>>): Promise<TOutput>;
42
+ initialPageParam: undefined;
43
+ retry?(failureCount: number, error: TError): boolean;
44
+ }
45
+ export type MutationOptionsExtra<TClientContext, TInput, TOutput, TError extends Error> = (undefined extends TClientContext ? {
35
46
  context?: MaybeDeepRef<TClientContext>;
36
47
  } : {
37
48
  context: MaybeDeepRef<TClientContext>;
38
49
  }) & {
39
- [P in keyof MutationObserverOptions<TOutput, DefaultError, TInput, unknown>]: MaybeDeepRef<MutationObserverOptions<TOutput, DefaultError, TInput, unknown>[P]>;
50
+ [P in keyof MutationObserverOptions<TOutput, TError, TInput, unknown>]: MaybeDeepRef<MutationObserverOptions<TOutput, TError, TInput, unknown>[P]>;
40
51
  } & {
41
52
  shallow?: MaybeRef<boolean>;
42
53
  };
54
+ export interface MutationOptionsBase<TInput, TOutput, TError extends Error> {
55
+ mutationKey: QueryKey;
56
+ mutationFn(input: TInput): Promise<TOutput>;
57
+ retry?(failureCount: number, error: TError): boolean;
58
+ }
43
59
  //# sourceMappingURL=types.d.ts.map
@@ -5,7 +5,7 @@ import type { MaybeDeepRef } from './types';
5
5
  * Utils at any level (procedure or router)
6
6
  */
7
7
  export interface GeneralUtils<TInput> {
8
- key: <UType extends KeyType = undefined>(options?: MaybeDeepRef<BuildKeyOptions<UType, TInput>>) => QueryKey;
8
+ key<UType extends KeyType = undefined>(options?: MaybeDeepRef<BuildKeyOptions<UType, TInput>>): QueryKey;
9
9
  }
10
10
  export declare function createGeneralUtils<TInput>(path: string[]): GeneralUtils<TInput>;
11
11
  //# sourceMappingURL=utils-general.d.ts.map
@@ -1,31 +1,13 @@
1
- import type { ProcedureClient } from '@orpc/server';
1
+ import type { Client } from '@orpc/contract';
2
2
  import type { IsEqual } from '@orpc/shared';
3
- import type { QueryFunctionContext, QueryKey } from '@tanstack/vue-query';
4
- import type { ComputedRef } from 'vue';
5
- import type { InferCursor, InfiniteOptions, MutationOptions, QueryOptions } from './types';
3
+ import type { InfiniteOptionsBase, InfiniteOptionsExtra, MutationOptionsBase, MutationOptionsExtra, QueryOptionsBase, QueryOptionsExtra } from './types';
6
4
  /**
7
5
  * Utils at procedure level
8
6
  */
9
- export interface ProcedureUtils<TInput, TOutput, TClientContext> {
10
- queryOptions: <U extends QueryOptions<TInput, TOutput, TClientContext, any>>(...opt: [options: U] | (undefined extends TInput & TClientContext ? [] : never)) => IsEqual<U, QueryOptions<TInput, TOutput, TClientContext, any>> extends true ? {
11
- queryKey: ComputedRef<QueryKey>;
12
- queryFn: (ctx: QueryFunctionContext) => Promise<TOutput>;
13
- } : Omit<{
14
- queryKey: ComputedRef<QueryKey>;
15
- queryFn: (ctx: QueryFunctionContext) => Promise<TOutput>;
16
- }, keyof U> & U;
17
- infiniteOptions: <U extends InfiniteOptions<TInput, TOutput, TClientContext, any>>(options: U) => Omit<{
18
- queryKey: ComputedRef<QueryKey>;
19
- queryFn: (ctx: QueryFunctionContext<QueryKey, InferCursor<TInput>>) => Promise<TOutput>;
20
- initialPageParam: undefined;
21
- }, keyof U> & U;
22
- mutationOptions: <U extends MutationOptions<TInput, TOutput, TClientContext>>(...opt: [options: U] | (undefined extends TClientContext ? [] : never)) => IsEqual<U, MutationOptions<TInput, TOutput, TClientContext>> extends true ? {
23
- mutationKey: QueryKey;
24
- mutationFn: (input: TInput) => Promise<TOutput>;
25
- } : Omit<{
26
- mutationKey: QueryKey;
27
- mutationFn: (input: TInput) => Promise<TOutput>;
28
- }, keyof U> & U;
7
+ export interface ProcedureUtils<TClientContext, TInput, TOutput, TError extends Error> {
8
+ queryOptions<U extends QueryOptionsExtra<TClientContext, TInput, TOutput, TError, any>>(...opt: [options: U] | (undefined extends TInput & TClientContext ? [] : never)): IsEqual<U, QueryOptionsExtra<TClientContext, TInput, TOutput, TError, any>> extends true ? QueryOptionsBase<TOutput, TError> : Omit<QueryOptionsBase<TOutput, TError>, keyof U> & U;
9
+ infiniteOptions<U extends InfiniteOptionsExtra<TClientContext, TInput, TOutput, TError, any>>(options: U): Omit<InfiniteOptionsBase<TInput, TOutput, TError>, keyof U> & U;
10
+ mutationOptions<U extends MutationOptionsExtra<TClientContext, TInput, TOutput, TError>>(...opt: [options: U] | (undefined extends TClientContext ? [] : never)): IsEqual<U, MutationOptionsExtra<TClientContext, TInput, TOutput, TError>> extends true ? MutationOptionsBase<TInput, TOutput, TError> : Omit<MutationOptionsBase<TInput, TOutput, TError>, keyof U> & U;
29
11
  }
30
- export declare function createProcedureUtils<TInput, TOutput, TClientContext>(client: ProcedureClient<TInput, TOutput, TClientContext>, path: string[]): ProcedureUtils<TInput, TOutput, TClientContext>;
12
+ export declare function createProcedureUtils<TClientContext, TInput, TOutput, TError extends Error>(client: Client<TClientContext, TInput, TOutput, TError>, path: string[]): ProcedureUtils<TClientContext, TInput, TOutput, TError>;
31
13
  //# sourceMappingURL=utils-procedure.d.ts.map
@@ -1,12 +1,12 @@
1
- import type { ProcedureClient, RouterClient } from '@orpc/server';
1
+ import type { Client, NestedClient } from '@orpc/contract';
2
2
  import { type GeneralUtils } from './utils-general';
3
3
  import { type ProcedureUtils } from './utils-procedure';
4
- export type RouterUtils<T extends RouterClient<any, any>> = T extends ProcedureClient<infer TInput, infer TOutput, infer TClientContext> ? ProcedureUtils<TInput, TOutput, TClientContext> & GeneralUtils<TInput> : {
5
- [K in keyof T]: T[K] extends RouterClient<any, any> ? RouterUtils<T[K]> : never;
4
+ export type RouterUtils<T extends NestedClient<any>> = T extends Client<infer TClientContext, infer UInput, infer UOutput, infer UError> ? ProcedureUtils<TClientContext, UInput, UOutput, UError> & GeneralUtils<UInput> : {
5
+ [K in keyof T]: T[K] extends NestedClient<any> ? RouterUtils<T[K]> : never;
6
6
  } & GeneralUtils<unknown>;
7
7
  /**
8
8
  * @param client - The client create form `@orpc/client`
9
9
  * @param path - The base path for query key
10
10
  */
11
- export declare function createRouterUtils<T extends RouterClient<any, any>>(client: T, path?: string[]): RouterUtils<T>;
11
+ export declare function createRouterUtils<T extends NestedClient<any>>(client: T, path?: string[]): RouterUtils<T>;
12
12
  //# 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-next.67ca77c",
4
+ "version": "0.0.0-next.6acfc62",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -34,9 +34,8 @@
34
34
  "peerDependencies": {
35
35
  "@tanstack/vue-query": ">=5.50.0",
36
36
  "vue": ">=3.3.0",
37
- "@orpc/client": "0.0.0-next.67ca77c",
38
- "@orpc/contract": "0.0.0-next.67ca77c",
39
- "@orpc/server": "0.0.0-next.67ca77c"
37
+ "@orpc/client": "0.0.0-next.6acfc62",
38
+ "@orpc/contract": "0.0.0-next.6acfc62"
40
39
  },
41
40
  "scripts": {
42
41
  "build": "tsup --clean --sourcemap --entry.index=src/index.ts --format=esm --onSuccess='tsc -b --noCheck'",