mirror of
https://github.com/ArthurDanjou/trpc-nuxt.git
synced 2026-01-26 18:00:37 +01:00
import useAsyncData and useState from #app
This commit is contained in:
@@ -6,6 +6,8 @@ import type {
|
|||||||
import { createFlatProxy, createRecursiveProxy } from '@trpc/server/shared'
|
import { createFlatProxy, createRecursiveProxy } from '@trpc/server/shared'
|
||||||
import { hash } from 'ohash'
|
import { hash } from 'ohash'
|
||||||
import type { DecoratedProcedureRecord } from './types'
|
import type { DecoratedProcedureRecord } from './types'
|
||||||
|
// @ts-ignore: nuxt internal
|
||||||
|
import { useAsyncData, useState } from '#app'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculates the key used for `useAsyncData` call
|
* Calculates the key used for `useAsyncData` call
|
||||||
@@ -27,7 +29,7 @@ export function createNuxtProxyDecoration<TRouter extends AnyRouter>(name: strin
|
|||||||
const pathCopy = [name, ...opts.path]
|
const pathCopy = [name, ...opts.path]
|
||||||
|
|
||||||
// The last arg is for instance `.mutate` or `.query()`
|
// The last arg is for instance `.mutate` or `.query()`
|
||||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
||||||
const lastArg = pathCopy.pop()!
|
const lastArg = pathCopy.pop()!
|
||||||
|
|
||||||
const path = pathCopy.join('.')
|
const path = pathCopy.join('.')
|
||||||
@@ -44,9 +46,7 @@ export function createNuxtProxyDecoration<TRouter extends AnyRouter>(name: strin
|
|||||||
* Custom useAsyncData to add server error to client
|
* Custom useAsyncData to add server error to client
|
||||||
*/
|
*/
|
||||||
async function useAsyncDataWithError(queryKey: string, cb: any, asyncDataOptions: any) {
|
async function useAsyncDataWithError(queryKey: string, cb: any, asyncDataOptions: any) {
|
||||||
// @ts-ignore: nuxt internal
|
|
||||||
const serverError = useState(`error-${queryKey}`, () => null)
|
const serverError = useState(`error-${queryKey}`, () => null)
|
||||||
// @ts-ignore: nuxt internal
|
|
||||||
const { error, data, ...rest } = await useAsyncData(queryKey, cb, asyncDataOptions)
|
const { error, data, ...rest } = await useAsyncData(queryKey, cb, asyncDataOptions)
|
||||||
|
|
||||||
if (error.value && !serverError.value)
|
if (error.value && !serverError.value)
|
||||||
|
|||||||
Reference in New Issue
Block a user