@falcondev-oss/trpc-vue-query 0.4.2 → 0.5.0-rc.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/README.md +2 -1
- package/dist/index.cjs +5 -4
- package/dist/index.d.cts +16 -19
- package/dist/index.d.ts +16 -19
- package/dist/index.mjs +5 -4
- package/package.json +26 -27
package/README.md
CHANGED
|
@@ -58,6 +58,7 @@ export function useTRPC() {
|
|
|
58
58
|
<script lang="ts" setup>
|
|
59
59
|
const { data: greeting } = useTRPC().hello.useQuery({ name: 'World' })
|
|
60
60
|
</script>
|
|
61
|
+
|
|
61
62
|
<template>
|
|
62
63
|
<div>
|
|
63
64
|
<h1>{{ greeting }}</h1>
|
|
@@ -102,7 +103,7 @@ const { mutate: updateGreeting } = useTRPC().hello.update.useMutation({
|
|
|
102
103
|
<template>
|
|
103
104
|
<div>
|
|
104
105
|
<input v-model="name" type="text" />
|
|
105
|
-
<button @click="updateGreeting({ name })">Update greeting</button>
|
|
106
|
+
<button @click="() => updateGreeting({ name })">Update greeting</button>
|
|
106
107
|
</div>
|
|
107
108
|
</template>
|
|
108
109
|
```
|
package/dist/index.cjs
CHANGED
|
@@ -25,7 +25,8 @@ __export(src_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(src_exports);
|
|
26
26
|
var import_vue_query = require("@tanstack/vue-query");
|
|
27
27
|
var import_client = require("@trpc/client");
|
|
28
|
-
var
|
|
28
|
+
var import_server = require("@trpc/server");
|
|
29
|
+
var import_unstable_core_do_not_import = require("@trpc/server/unstable-core-do-not-import");
|
|
29
30
|
var import_core = require("@vueuse/core");
|
|
30
31
|
var import_vue = require("vue");
|
|
31
32
|
function getQueryKey(path, input) {
|
|
@@ -35,7 +36,7 @@ function maybeToRefs(obj) {
|
|
|
35
36
|
return (0, import_vue.isReactive)(obj) ? (0, import_core.toRefs)(obj) : (0, import_core.toRefs)((0, import_core.toRef)(obj));
|
|
36
37
|
}
|
|
37
38
|
function createVueQueryProxyDecoration(name, client, queryClient) {
|
|
38
|
-
return (0,
|
|
39
|
+
return (0, import_unstable_core_do_not_import.createRecursiveProxy)((opts) => {
|
|
39
40
|
const args = opts.args;
|
|
40
41
|
const path = [name, ...opts.path];
|
|
41
42
|
const lastProperty = path.pop();
|
|
@@ -79,8 +80,8 @@ function createVueQueryProxyDecoration(name, client, queryClient) {
|
|
|
79
80
|
});
|
|
80
81
|
}
|
|
81
82
|
function createTRPCVueQueryClient(opts) {
|
|
82
|
-
const client = (0, import_client.
|
|
83
|
-
const decoratedClient = (0,
|
|
83
|
+
const client = (0, import_client.createTRPCClient)(opts.trpc);
|
|
84
|
+
const decoratedClient = (0, import_server.createTRPCFlatProxy)((key) => {
|
|
84
85
|
return createVueQueryProxyDecoration(key, client, opts.queryClient);
|
|
85
86
|
});
|
|
86
87
|
return decoratedClient;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { QueryKey, UseQueryOptions, UseQueryReturnType, QueryClient, UseMutationOptions, UseMutationReturnType } from '@tanstack/vue-query';
|
|
2
2
|
import { TRPCClientErrorLike, TRPCRequestOptions, CreateTRPCClientOptions } from '@trpc/client';
|
|
3
|
-
import {
|
|
3
|
+
import { AnyTRPCRouter, AnyTRPCProcedure, AnyTRPCQueryProcedure, inferTransformedProcedureOutput, inferProcedureInput, AnyTRPCMutationProcedure, AnyTRPCSubscriptionProcedure, inferProcedureOutput } from '@trpc/server';
|
|
4
4
|
import { inferObservableValue, Unsubscribable } from '@trpc/server/observable';
|
|
5
|
-
import {
|
|
5
|
+
import { ProcedureOptions } from '@trpc/server/unstable-core-do-not-import';
|
|
6
6
|
import { MaybeRefOrGetter, UnwrapRef } from 'vue';
|
|
7
7
|
|
|
8
8
|
type TRPCSubscriptionObserver<TValue, TError> = {
|
|
@@ -12,36 +12,33 @@ type TRPCSubscriptionObserver<TValue, TError> = {
|
|
|
12
12
|
onStopped: () => void;
|
|
13
13
|
onComplete: () => void;
|
|
14
14
|
};
|
|
15
|
-
type Resolver<TProcedure extends
|
|
16
|
-
type SubscriptionResolver<TProcedure extends
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
]) => Unsubscribable;
|
|
20
|
-
type DecorateProcedure<TProcedure extends AnyProcedure, TRouter extends AnyRouter> = TProcedure extends AnyQueryProcedure ? {
|
|
21
|
-
useQuery: <TQueryFnData = inferTransformedProcedureOutput<TProcedure>, TError = TRPCClientErrorLike<TProcedure>, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(input: MaybeRefOrGetter<inferProcedureInput<TProcedure>>, opts?: MaybeRefOrGetter<Omit<UnwrapRef<UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>, 'queryKey'> & {
|
|
15
|
+
type Resolver<TRouter extends AnyTRPCRouter, TProcedure extends AnyTRPCProcedure> = (input: inferProcedureInput<TProcedure>, opts?: ProcedureOptions) => Promise<inferTransformedProcedureOutput<TRouter, TProcedure>>;
|
|
16
|
+
type SubscriptionResolver<TProcedure extends AnyTRPCProcedure, TRouter extends AnyTRPCRouter> = (input: inferProcedureInput<TProcedure>, opts: ProcedureOptions & Partial<TRPCSubscriptionObserver<inferObservableValue<inferProcedureOutput<TProcedure>>, TRPCClientErrorLike<TRouter>>>) => Unsubscribable;
|
|
17
|
+
type DecorateProcedure<TProcedure extends AnyTRPCProcedure, TRouter extends AnyTRPCRouter> = TProcedure extends AnyTRPCQueryProcedure ? {
|
|
18
|
+
useQuery: <TQueryFnData = inferTransformedProcedureOutput<TRouter, TProcedure>, TError = TRPCClientErrorLike<TRouter>, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(input: MaybeRefOrGetter<inferProcedureInput<TProcedure>>, opts?: MaybeRefOrGetter<Omit<UnwrapRef<UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>, 'queryKey'> & {
|
|
22
19
|
trpc?: TRPCRequestOptions;
|
|
23
20
|
queryKey?: TQueryKey;
|
|
24
21
|
}>) => UseQueryReturnType<TData, TError>;
|
|
25
|
-
query: Resolver<TProcedure>;
|
|
22
|
+
query: Resolver<TRouter, TProcedure>;
|
|
26
23
|
invalidate: (input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => Promise<void>;
|
|
27
|
-
setQueryData: (updater: inferTransformedProcedureOutput<TProcedure>, input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => ReturnType<QueryClient['setQueryData']>;
|
|
24
|
+
setQueryData: (updater: inferTransformedProcedureOutput<TRouter, TProcedure>, input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => ReturnType<QueryClient['setQueryData']>;
|
|
28
25
|
key: (input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => QueryKey;
|
|
29
|
-
} : TProcedure extends
|
|
30
|
-
mutate: Resolver<TProcedure>;
|
|
31
|
-
useMutation: <TData = inferTransformedProcedureOutput<TProcedure>, TError = TRPCClientErrorLike<
|
|
26
|
+
} : TProcedure extends AnyTRPCMutationProcedure ? {
|
|
27
|
+
mutate: Resolver<TRouter, TProcedure>;
|
|
28
|
+
useMutation: <TData = inferTransformedProcedureOutput<TRouter, TProcedure>, TError = TRPCClientErrorLike<TRouter>, TVariables = inferProcedureInput<TProcedure>, TContext = unknown>(opts?: MaybeRefOrGetter<UseMutationOptions<TData, TError, TVariables, TContext> & {
|
|
32
29
|
trpc?: TRPCRequestOptions;
|
|
33
30
|
}>) => UseMutationReturnType<TData, TError, TVariables, TContext>;
|
|
34
|
-
} : TProcedure extends
|
|
31
|
+
} : TProcedure extends AnyTRPCSubscriptionProcedure ? {
|
|
35
32
|
subscribe: SubscriptionResolver<TProcedure, TRouter>;
|
|
36
|
-
} :
|
|
33
|
+
} : 'test';
|
|
37
34
|
/**
|
|
38
35
|
* @internal
|
|
39
36
|
*/
|
|
40
|
-
type DecoratedProcedureRecord<TProcedures extends
|
|
41
|
-
[
|
|
37
|
+
type DecoratedProcedureRecord<TProcedures extends Record<string, any>, TRouter extends AnyTRPCRouter> = {
|
|
38
|
+
[K in keyof TProcedures]: TProcedures[K] extends AnyTRPCProcedure ? DecorateProcedure<TProcedures[K], TRouter> : DecoratedProcedureRecord<TProcedures[K], TRouter>;
|
|
42
39
|
};
|
|
43
40
|
|
|
44
|
-
declare function createTRPCVueQueryClient<TRouter extends
|
|
41
|
+
declare function createTRPCVueQueryClient<TRouter extends AnyTRPCRouter>(opts: {
|
|
45
42
|
queryClient: QueryClient;
|
|
46
43
|
trpc: CreateTRPCClientOptions<TRouter>;
|
|
47
44
|
}): DecoratedProcedureRecord<TRouter["_def"]["record"], TRouter>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { QueryKey, UseQueryOptions, UseQueryReturnType, QueryClient, UseMutationOptions, UseMutationReturnType } from '@tanstack/vue-query';
|
|
2
2
|
import { TRPCClientErrorLike, TRPCRequestOptions, CreateTRPCClientOptions } from '@trpc/client';
|
|
3
|
-
import {
|
|
3
|
+
import { AnyTRPCRouter, AnyTRPCProcedure, AnyTRPCQueryProcedure, inferTransformedProcedureOutput, inferProcedureInput, AnyTRPCMutationProcedure, AnyTRPCSubscriptionProcedure, inferProcedureOutput } from '@trpc/server';
|
|
4
4
|
import { inferObservableValue, Unsubscribable } from '@trpc/server/observable';
|
|
5
|
-
import {
|
|
5
|
+
import { ProcedureOptions } from '@trpc/server/unstable-core-do-not-import';
|
|
6
6
|
import { MaybeRefOrGetter, UnwrapRef } from 'vue';
|
|
7
7
|
|
|
8
8
|
type TRPCSubscriptionObserver<TValue, TError> = {
|
|
@@ -12,36 +12,33 @@ type TRPCSubscriptionObserver<TValue, TError> = {
|
|
|
12
12
|
onStopped: () => void;
|
|
13
13
|
onComplete: () => void;
|
|
14
14
|
};
|
|
15
|
-
type Resolver<TProcedure extends
|
|
16
|
-
type SubscriptionResolver<TProcedure extends
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
]) => Unsubscribable;
|
|
20
|
-
type DecorateProcedure<TProcedure extends AnyProcedure, TRouter extends AnyRouter> = TProcedure extends AnyQueryProcedure ? {
|
|
21
|
-
useQuery: <TQueryFnData = inferTransformedProcedureOutput<TProcedure>, TError = TRPCClientErrorLike<TProcedure>, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(input: MaybeRefOrGetter<inferProcedureInput<TProcedure>>, opts?: MaybeRefOrGetter<Omit<UnwrapRef<UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>, 'queryKey'> & {
|
|
15
|
+
type Resolver<TRouter extends AnyTRPCRouter, TProcedure extends AnyTRPCProcedure> = (input: inferProcedureInput<TProcedure>, opts?: ProcedureOptions) => Promise<inferTransformedProcedureOutput<TRouter, TProcedure>>;
|
|
16
|
+
type SubscriptionResolver<TProcedure extends AnyTRPCProcedure, TRouter extends AnyTRPCRouter> = (input: inferProcedureInput<TProcedure>, opts: ProcedureOptions & Partial<TRPCSubscriptionObserver<inferObservableValue<inferProcedureOutput<TProcedure>>, TRPCClientErrorLike<TRouter>>>) => Unsubscribable;
|
|
17
|
+
type DecorateProcedure<TProcedure extends AnyTRPCProcedure, TRouter extends AnyTRPCRouter> = TProcedure extends AnyTRPCQueryProcedure ? {
|
|
18
|
+
useQuery: <TQueryFnData = inferTransformedProcedureOutput<TRouter, TProcedure>, TError = TRPCClientErrorLike<TRouter>, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(input: MaybeRefOrGetter<inferProcedureInput<TProcedure>>, opts?: MaybeRefOrGetter<Omit<UnwrapRef<UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>, 'queryKey'> & {
|
|
22
19
|
trpc?: TRPCRequestOptions;
|
|
23
20
|
queryKey?: TQueryKey;
|
|
24
21
|
}>) => UseQueryReturnType<TData, TError>;
|
|
25
|
-
query: Resolver<TProcedure>;
|
|
22
|
+
query: Resolver<TRouter, TProcedure>;
|
|
26
23
|
invalidate: (input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => Promise<void>;
|
|
27
|
-
setQueryData: (updater: inferTransformedProcedureOutput<TProcedure>, input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => ReturnType<QueryClient['setQueryData']>;
|
|
24
|
+
setQueryData: (updater: inferTransformedProcedureOutput<TRouter, TProcedure>, input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => ReturnType<QueryClient['setQueryData']>;
|
|
28
25
|
key: (input?: MaybeRefOrGetter<inferProcedureInput<TProcedure>>) => QueryKey;
|
|
29
|
-
} : TProcedure extends
|
|
30
|
-
mutate: Resolver<TProcedure>;
|
|
31
|
-
useMutation: <TData = inferTransformedProcedureOutput<TProcedure>, TError = TRPCClientErrorLike<
|
|
26
|
+
} : TProcedure extends AnyTRPCMutationProcedure ? {
|
|
27
|
+
mutate: Resolver<TRouter, TProcedure>;
|
|
28
|
+
useMutation: <TData = inferTransformedProcedureOutput<TRouter, TProcedure>, TError = TRPCClientErrorLike<TRouter>, TVariables = inferProcedureInput<TProcedure>, TContext = unknown>(opts?: MaybeRefOrGetter<UseMutationOptions<TData, TError, TVariables, TContext> & {
|
|
32
29
|
trpc?: TRPCRequestOptions;
|
|
33
30
|
}>) => UseMutationReturnType<TData, TError, TVariables, TContext>;
|
|
34
|
-
} : TProcedure extends
|
|
31
|
+
} : TProcedure extends AnyTRPCSubscriptionProcedure ? {
|
|
35
32
|
subscribe: SubscriptionResolver<TProcedure, TRouter>;
|
|
36
|
-
} :
|
|
33
|
+
} : 'test';
|
|
37
34
|
/**
|
|
38
35
|
* @internal
|
|
39
36
|
*/
|
|
40
|
-
type DecoratedProcedureRecord<TProcedures extends
|
|
41
|
-
[
|
|
37
|
+
type DecoratedProcedureRecord<TProcedures extends Record<string, any>, TRouter extends AnyTRPCRouter> = {
|
|
38
|
+
[K in keyof TProcedures]: TProcedures[K] extends AnyTRPCProcedure ? DecorateProcedure<TProcedures[K], TRouter> : DecoratedProcedureRecord<TProcedures[K], TRouter>;
|
|
42
39
|
};
|
|
43
40
|
|
|
44
|
-
declare function createTRPCVueQueryClient<TRouter extends
|
|
41
|
+
declare function createTRPCVueQueryClient<TRouter extends AnyTRPCRouter>(opts: {
|
|
45
42
|
queryClient: QueryClient;
|
|
46
43
|
trpc: CreateTRPCClientOptions<TRouter>;
|
|
47
44
|
}): DecoratedProcedureRecord<TRouter["_def"]["record"], TRouter>;
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { useMutation, useQuery } from "@tanstack/vue-query";
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
createTRPCClient
|
|
5
5
|
} from "@trpc/client";
|
|
6
|
-
import {
|
|
6
|
+
import { createTRPCFlatProxy } from "@trpc/server";
|
|
7
|
+
import { createRecursiveProxy } from "@trpc/server/unstable-core-do-not-import";
|
|
7
8
|
import { toRef, toRefs, toValue } from "@vueuse/core";
|
|
8
9
|
import { computed, isReactive } from "vue";
|
|
9
10
|
function getQueryKey(path, input) {
|
|
@@ -57,8 +58,8 @@ function createVueQueryProxyDecoration(name, client, queryClient) {
|
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
function createTRPCVueQueryClient(opts) {
|
|
60
|
-
const client =
|
|
61
|
-
const decoratedClient =
|
|
61
|
+
const client = createTRPCClient(opts.trpc);
|
|
62
|
+
const decoratedClient = createTRPCFlatProxy((key) => {
|
|
62
63
|
return createVueQueryProxyDecoration(key, client, opts.queryClient);
|
|
63
64
|
});
|
|
64
65
|
return decoratedClient;
|
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@falcondev-oss/trpc-vue-query",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"packageManager": "pnpm@8.15.3",
|
|
4
|
+
"version": "0.5.0-rc.0",
|
|
6
5
|
"description": "A tRPC wrapper around '@tanstack/vue-query'",
|
|
7
6
|
"license": "MIT",
|
|
8
7
|
"repository": "github:falcondev-oss/trpc-vue-query",
|
|
@@ -29,33 +28,33 @@
|
|
|
29
28
|
"vue": "^3.4.19"
|
|
30
29
|
},
|
|
31
30
|
"dependencies": {
|
|
32
|
-
"@vueuse/core": "^
|
|
31
|
+
"@vueuse/core": "^11.0.3"
|
|
33
32
|
},
|
|
34
33
|
"devDependencies": {
|
|
35
|
-
"@commitlint/cli": "^19.
|
|
36
|
-
"@eslint/eslintrc": "^3.0
|
|
37
|
-
"@louishaftmann/commitlint-config": "^
|
|
38
|
-
"@louishaftmann/eslint-config": "^
|
|
39
|
-
"@louishaftmann/lintstaged-config": "^
|
|
40
|
-
"@louishaftmann/prettier-config": "^
|
|
41
|
-
"@tanstack/vue-query": "^5.
|
|
42
|
-
"@trpc/client": "
|
|
43
|
-
"@trpc/server": "
|
|
44
|
-
"@types/eslint": "^
|
|
45
|
-
"@types/eslint__eslintrc": "^2.1.
|
|
46
|
-
"@vitest/ui": "^
|
|
47
|
-
"eslint": "^
|
|
48
|
-
"happy-dom": "^
|
|
49
|
-
"husky": "^9.
|
|
50
|
-
"lint-staged": "^15.2.
|
|
51
|
-
"prettier": "^3.
|
|
52
|
-
"start-server-and-test": "^2.0.
|
|
53
|
-
"tsup": "^8.
|
|
54
|
-
"tsx": "^4.
|
|
55
|
-
"typescript": "^5.4
|
|
56
|
-
"vitest": "^
|
|
57
|
-
"vue": "^3.4.
|
|
58
|
-
"vue-demi": "^0.14.
|
|
34
|
+
"@commitlint/cli": "^19.4.1",
|
|
35
|
+
"@eslint/eslintrc": "^3.1.0",
|
|
36
|
+
"@louishaftmann/commitlint-config": "^4.0.3",
|
|
37
|
+
"@louishaftmann/eslint-config": "^4.0.3",
|
|
38
|
+
"@louishaftmann/lintstaged-config": "^4.0.3",
|
|
39
|
+
"@louishaftmann/prettier-config": "^4.0.3",
|
|
40
|
+
"@tanstack/vue-query": "^5.53.1",
|
|
41
|
+
"@trpc/client": "11.0.0-rc.490",
|
|
42
|
+
"@trpc/server": "11.0.0-rc.490",
|
|
43
|
+
"@types/eslint": "^9.6.1",
|
|
44
|
+
"@types/eslint__eslintrc": "^2.1.2",
|
|
45
|
+
"@vitest/ui": "^2.0.5",
|
|
46
|
+
"eslint": "^9.9.1",
|
|
47
|
+
"happy-dom": "^15.7.2",
|
|
48
|
+
"husky": "^9.1.5",
|
|
49
|
+
"lint-staged": "^15.2.9",
|
|
50
|
+
"prettier": "^3.3.3",
|
|
51
|
+
"start-server-and-test": "^2.0.5",
|
|
52
|
+
"tsup": "^8.2.4",
|
|
53
|
+
"tsx": "^4.19.0",
|
|
54
|
+
"typescript": "^5.5.4",
|
|
55
|
+
"vitest": "^2.0.5",
|
|
56
|
+
"vue": "^3.4.38",
|
|
57
|
+
"vue-demi": "^0.14.10"
|
|
59
58
|
},
|
|
60
59
|
"changelogithub": {
|
|
61
60
|
"extends": "gh:falcondev-it/configs/changelogithub"
|