mirror of
https://github.com/spf13/viper
synced 2024-12-22 11:37:02 +00:00
feat: make sure Viper compiles on WASM
fsnotify is not available on WASM, so config watching is not going to work. Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
parent
727a41c38a
commit
36be6bf91f
4 changed files with 68 additions and 1 deletions
26
.github/workflows/wasm.yml
vendored
Normal file
26
.github/workflows/wasm.yml
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
name: WASM
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GOFLAGS: -mod=readonly
|
||||
|
||||
steps:
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.16'
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Ensure Viper compiles for WASM
|
||||
run: GOOS=js GOARCH=wasm go build .
|
2
viper.go
2
viper.go
|
@ -344,7 +344,7 @@ func (v *Viper) WatchConfig() {
|
|||
initWG := sync.WaitGroup{}
|
||||
initWG.Add(1)
|
||||
go func() {
|
||||
watcher, err := fsnotify.NewWatcher()
|
||||
watcher, err := newWatcher()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
11
watch.go
Normal file
11
watch.go
Normal file
|
@ -0,0 +1,11 @@
|
|||
// +build !js
|
||||
|
||||
package viper
|
||||
|
||||
import "github.com/fsnotify/fsnotify"
|
||||
|
||||
type watcher = fsnotify.Watcher
|
||||
|
||||
func newWatcher() (*watcher, error) {
|
||||
return fsnotify.NewWatcher()
|
||||
}
|
30
watch_wasm.go
Normal file
30
watch_wasm.go
Normal file
|
@ -0,0 +1,30 @@
|
|||
// +build js,wasm
|
||||
|
||||
package viper
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/fsnotify/fsnotify"
|
||||
)
|
||||
|
||||
type watcher struct {
|
||||
Events chan fsnotify.Event
|
||||
Errors chan error
|
||||
}
|
||||
|
||||
func (*watcher) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (*watcher) Add(name string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (*watcher) Remove(name string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func newWatcher() (*watcher, error) {
|
||||
return &watcher{}, errors.New("fsnotify is not supported on WASM")
|
||||
}
|
Loading…
Reference in a new issue