No more query key strings
Keys come from your route structure — eden.proxy.users.get becomes [Symbol, 'users', 'get']. Rename a route, the key follows.
Derive query keys from your routes. Unwrap Eden responses. Invalidate the right caches. All typed, all automatic.
Set up once:
// lib/eden.ts
import { createEdenQueryHelpers } from '@elysia-vue-query/vue'
import { treaty } from '@elysiajs/eden'
import type { App } from './server'
const client = treaty<App>('http://localhost:3000')
export const eden = createEdenQueryHelpers(client)Then use it in any component:
<script setup lang="ts">
import { eden } from '../lib/eden'
// data is typed. key is automatic. response is unwrapped.
const { data: users, isLoading } = eden.useQuery(eden.proxy.users.get)
// after mutate() succeeds, users.get refetches on its own.
const createUser = eden.useMutation(eden.proxy.users.post)
</script>