vue-3-supabase
Version:
Simple Vue 3 wrap for Supabase.js Client (v2) build with Vitejs
108 lines (77 loc) • 2.77 kB
Markdown
# Vue 3 Supabase.js
:hamburger: Simple [Vue 3](https://github.com/vuejs/docs-next) wrap for [Supabase.js Client (v2)](https://supabase.io/docs/reference/javascript/supabase-client) build with [Vitejs](https://github.com/vitejs/vite)
### Table of content:
- [Install](#install)
- [Usages](#usages)
- [Methods](#methods)
Install the package via npm:
``` bash
npm i vue-3-supabase
```
# Install
It's Simple! In your `main.js` add the following:
``` javascript
import { createApp } from 'vue'
import App from './App.vue'
// Import supabase
import supabase from 'vue-3-supabase'
const app = createApp(App)
// Use supabase
app.use(supabase, {
supabaseUrl: 'https://xxxxxxxxxxxxxxxxx.supabase.co', // actually you can use something like import.meta.env.VITE_SUPABASE_URL
supabaseKey: 'xxxxx__xxxxx___xxxxx___xxxxx', // actually you can use something like import.meta.env.VITE_SUPABASE_KEY,
options: {}
})
app.mount('#app')
```
It takes three params as argument :
`supabaseUrl`: the unique **required** Supabase URL which is supplied when you create a new project in your project dashboard.
`supabaseKey`: the unique **required** Supabase Key which is supplied when you create a new project in your project dashboard.
`options`: additional parameters **not required**
More references [here](https://supabase.io/docs/reference/javascript/initializing)
# Usages
### Options API
In the **Option API** you can use `this.$supabase` to access the Supabase.js Client:
``` vue
<template>
// Your HTML Stuff
</template>
<script>
export default {
async mounted () {
const { user, session, error } = await this.$supabase.auth.signUp({
email: 'user@provider.com',
password: 'myawesomepassword',
})
console.log(user, session, error)
}
}
</script>
```
### Composition API
In the **Composition API** you can use `useSupabase()` hook to access the Supabase.js Client:
``` vue
<template>
// Your HTML Stuff
</template>
<script setup>
import { onMounted } from 'vue'
import { useSupabase } from 'vue-3-supabase'
onMounted(async () => {
const { user, session, error } = await useSupabase().auth.signUp({
email: 'user@provider.com',
password: 'myawesomepassword',
})
console.log(user, session, error)
})
</script>
```
# Methods
Here the methods references from official doc:
- [Auth](https://supabase.io/docs/reference/javascript/auth-signup)
- [Data](https://supabase.io/docs/reference/javascript/select)
- [Realtime](https://supabase.io/docs/reference/javascript/subscribe)
- [Storage](https://supabase.io/docs/reference/javascript/storage-createbucket)
- [Modifiers](https://supabase.io/docs/reference/javascript/using-modifiers)
- [Filters](https://supabase.io/docs/reference/javascript/using-filters)
Enjoy :punch: