Files
2024-04-14 21:41:33 +10:00

90 lines
1.9 KiB
Markdown

# KVStore Plugin
This plugin provides a simple key/value store for your Wails applications.
## Installation
Add the plugin to the `Plugins` option in the Applications options:
```go
package main
import (
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/plugins/kvstore"
)
func main() {
kvstorePlugin := kvstore.NewPlugin(&kvstore.Config{
Filename: "myapp.db",
})
app := application.New(application.Options{
// ...
Plugins: map[string]application.Plugin{
"kvstore": kvstorePlugin,
},
})
```
### Options
```go
type Config struct {
Filename string
AutoSave bool
}
```
- `Filename` - The name of the file to store the key/value pairs in. This file will be created in the application's data directory.
- `AutoSave` - If true, the store will be saved to disk after every change. If false, you will need to call `Save()` to persist the changes.
## Usage
### Go
You can call the methods exported by the plugin directly:
```go
// Set a key
err := kvstore.Set("url", "https://www.google.com")
if err != nil {
// handle error
}
// Get a key
url := kvstore.Get("url").(string)
// Delete a key
err = kvstore.Delete("url")
if err != nil {
// handle error
}
// If you have not enables AutoSave, you will need to call Save() to persist the changes
err = kvstore.Save()
if err != nil {
// handle error
}
```
### Javascript
You can call the methods from the frontend using the Plugin method:
```js
wails.Plugin("kvstore","Set", "url", "https://www.google.com")
wails.Plugin("kvstore","Get", "url").then((url) => {
})
wails.Plugin("kvstore","Delete", "url").then((url) => {
})
// or
wails.Plugin("browser","OpenFile","/path/to/file")
```
## Support
If you find a bug in this plugin, please raise a ticket on the Wails [Issue Tracker](https://github.com/wailsapp/wails/issues).