Skip to content

Commit c1f1920

Browse files
committed
more fixes
1 parent 630acea commit c1f1920

File tree

15 files changed

+826
-118
lines changed

15 files changed

+826
-118
lines changed

packages/plugins/trpc/src/client-helper/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,12 @@ export function getPrismaOperationTypes(model: string, operation: string) {
154154

155155
switch (operation) {
156156
case 'findUnique':
157-
case 'findUniqueOrThrow':
158157
case 'findFirst':
158+
argsType = selectSubset;
159+
resultType = `${getPayload} | null`;
160+
break;
161+
162+
case 'findUniqueOrThrow':
159163
case 'findFirstOrThrow':
160164
argsType = selectSubset;
161165
resultType = getPayload;

packages/plugins/trpc/src/client-helper/nuxt.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,17 @@ export function generateProcedureTyping(
3131
writer.block(() => {
3232
if (procType === 'query') {
3333
writer.writeLine(`
34+
query: <T extends ${genericBase}>(input${inputOptional}: ${argsType}) => Promise<${resultType}>;
3435
useQuery: <T extends ${genericBase}, ResT = ${resultType}, DataE = ${errorType}, DataT = ResT, PickKeys extends KeysOf<DataT> = KeysOf<DataT>, DefaultT = null>(input${inputOptional}: MaybeRefOrGetter<${argsType}>, opts?: Omit<AsyncDataOptions<ResT, DataT, PickKeys, DefaultT>, 'watch'> & {
3536
trpc?: TRPCRequestOptions;
3637
queryKey?: string;
3738
watch?: AsyncDataOptions<ResT, DataT, PickKeys, DefaultT>['watch'] | false;
3839
}) => AsyncData<PickFrom<DataT, PickKeys> | DefaultT, DataE>;
40+
useLazyQuery: <T extends ${genericBase}, ResT = ${resultType}, DataE = ${errorType}, DataT = ResT, PickKeys extends KeysOf<DataT> = KeysOf<DataT>, DefaultT = null>(input${inputOptional}: MaybeRefOrGetter<${argsType}>, opts?: Omit<AsyncDataOptions<ResT, DataT, PickKeys, DefaultT>, 'lazy' | 'watch'> & {
41+
trpc?: TRPCRequestOptions;
42+
queryKey?: string;
43+
watch?: AsyncDataOptions<ResT, DataT, PickKeys, DefaultT>['watch'] | false;
44+
}) => AsyncData<PickFrom<DataT, PickKeys> | DefaultT, DataE>;
3945
`);
4046
} else if (procType === 'mutation') {
4147
writer.writeLine(`

packages/plugins/trpc/src/client-helper/react.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ export function generateProcedureTyping(
8181
${errorType},
8282
${resultType},
8383
Context
84-
>,) =>
84+
>) =>
8585
Omit<UseTRPCMutationResult<${resultType}, ${errorType}, ${argsType}, Context>, 'mutateAsync'> & {
8686
mutateAsync:
87-
<T extends ${genericBase}>(variables${argsOptional}: T, opts?: UseTRPCMutationOptions<T, ${errorType}, ${resultType}, Context>) => Promise<${resultType}>
87+
<T extends ${genericBase}>(variables${inputOptional}: T, opts?: UseTRPCMutationOptions<T, ${errorType}, ${resultType}, Context>) => Promise<${resultType}>
8888
};
8989
`);
9090
}

packages/plugins/trpc/src/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export const getInputSchemaByOpName = (opName: string, modelName: string) => {
110110
};
111111

112112
export const getProcedureTypeByOpName = (opName: string) => {
113-
let procType;
113+
let procType: string | undefined;
114114
switch (opName) {
115115
case 'findUnique':
116116
case 'findFirst':
@@ -132,7 +132,7 @@ export const getProcedureTypeByOpName = (opName: string) => {
132132
procType = 'mutation';
133133
break;
134134
default:
135-
console.log('getProcedureTypeByOpName: ', { opName });
135+
break;
136136
}
137137
return procType;
138138
};

packages/plugins/trpc/tests/projects/nuxt-trpc-v10/app.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
<script setup lang="ts">
22
const { $client } = useNuxtApp();
3+
4+
$client.post.findFirst
5+
.query({
6+
where: { id: '1' },
7+
include: { author: true },
8+
})
9+
.then((post) => {
10+
console.log('Author:', post?.author.email);
11+
});
12+
313
const { data: posts } = $client.post.findMany.useQuery({
414
include: { author: true },
515
});
616
717
const { mutate } = $client.post.create.useMutation();
818
19+
$client.post.findMany.query();
20+
921
const onCreate = async () => {
1022
const r1 = await $client.post.create.mutate({
1123
data: {

packages/plugins/trpc/tests/projects/nuxt-trpc-v10/server/trpc/routers/generated/client/Post.nuxt.type.ts

Lines changed: 170 additions & 2 deletions
Large diffs are not rendered by default.

packages/plugins/trpc/tests/projects/nuxt-trpc-v10/server/trpc/routers/generated/client/User.nuxt.type.ts

Lines changed: 170 additions & 2 deletions
Large diffs are not rendered by default.

packages/plugins/trpc/tests/projects/nuxt-trpc-v11/app.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
<script setup lang="ts">
22
const { $client } = useNuxtApp();
3+
4+
$client.post.findFirst
5+
.query({
6+
where: { id: '1' },
7+
include: { author: true },
8+
})
9+
.then((post) => {
10+
console.log('Author:', post?.author.email);
11+
});
12+
313
const { data: posts } = $client.post.findMany.useQuery({
414
include: { author: true },
515
});

packages/plugins/trpc/tests/projects/nuxt-trpc-v11/server/trpc/routers/generated/client/Post.nuxt.type.ts

Lines changed: 170 additions & 2 deletions
Large diffs are not rendered by default.

packages/plugins/trpc/tests/projects/nuxt-trpc-v11/server/trpc/routers/generated/client/User.nuxt.type.ts

Lines changed: 170 additions & 2 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)