Results
How to handle results
A Result
object will always be returned when calling the API. This allows us to handle errors in a typesafe and functional approach.
Use case
If we eg. want to update a store when everything goes well, we can use the ok property.
+page.svelte<script lang="ts">
import { api } from "$lib/kavi/client"
import { user } from "$lib/stores"
await api.getUser().ok((user) => ($user = user))
</script>
Result class
The following is a list of methods on the Result
object.
ok
Will run only if no error has occured.
await api.route()
.ok()
// or
.ok((result) => ...)
error
Will run only if an error has occured.
await api.route()
.error()
// or
.error((error) => ...)
See how you can handle errors.
match
handle both ok
and error
, it returns whatever the handlers return types are, making it useful for default values.
await api.route().match({
ok(result) {},
error(error) {},
})
run
return early and prevent callbacks.
const [res, error] = await api.route().run()
if (error) return
// do something with the result
expect
Will run the function like normal and throw any errors. To throw custom errors pass a callback.
await api.route().expect((currentError) => customError)