Composables

useSurrealQuery

Execute SurrealQL queries with SSR-safe async data.

useSurrealQuery

Run a set of SurrealQL statements against the database with automatic SSR support. Results are automatically JSON-serialized for SSR payload transfer. Supports parameterized queries and reactive bindings.

Usage

app/pages/index.vue
<script setup lang="ts">
const { data } = await useSurrealQuery<[{ name: string, age: number }[]]>(
  'SELECT * FROM users WHERE age > $min',
  { min: 18 },
)
</script>

With reactive bindings

app/pages/search.vue
<script setup lang="ts">
const search = ref('')

const { data } = await useSurrealQuery<[{ name: string }[]]>(
  'SELECT * FROM users WHERE name CONTAINS $search;',
  { search },
  { watch: [search] },
)
</script>

Arguments

ArgumentTypeDescription
queryMaybeRefOrGetter<string>The SurrealQL query string (reactive)
bindings?MaybeRefOrGetter<Record<string, MaybeRefOrGetter<unknown>>>Query variable bindings (reactive)
asyncDataOptions?AsyncDataOptionsOptions passed to useAsyncData

Return type

Returns the same shape as useSurrealAsyncData, with data typed according to the generic parameter.