diff --git a/v2/internal/appng/app_dev.go b/v2/internal/appng/app_dev.go index 5f77f0aae..56570e449 100644 --- a/v2/internal/appng/app_dev.go +++ b/v2/internal/appng/app_dev.go @@ -12,11 +12,15 @@ import ( "github.com/wailsapp/wails/v2/internal/frontend/devserver" "github.com/wailsapp/wails/v2/internal/frontend/dispatcher" "github.com/wailsapp/wails/v2/internal/frontend/runtime" + "github.com/wailsapp/wails/v2/internal/fs" "github.com/wailsapp/wails/v2/internal/logger" "github.com/wailsapp/wails/v2/internal/menumanager" + "github.com/wailsapp/wails/v2/internal/project" "github.com/wailsapp/wails/v2/internal/signal" pkglogger "github.com/wailsapp/wails/v2/pkg/logger" "github.com/wailsapp/wails/v2/pkg/options" + "os" + "path/filepath" ) // App defines a Wails application structure @@ -98,8 +102,7 @@ func CreateApp(appoptions *options.App) (*App, error) { bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady} appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions) - bindingsDir := "." - err = appBindings.WriteTS(bindingsDir) + err = generateBindings(appBindings) if err != nil { return nil, err } @@ -128,3 +131,28 @@ func CreateApp(appoptions *options.App) (*App, error) { return result, nil } + +func generateBindings(bindings *binding.Bindings) error { + + cwd, err := os.Getwd() + if err != nil { + return err + } + projectConfig, err := project.Load(cwd) + if err != nil { + return err + } + + targetDir := filepath.Join(projectConfig.WailsJSDir, "wailsjs", "go") + println("TargetDir =", targetDir) + _ = fs.MkDirs(targetDir) + modelsFile := filepath.Join(targetDir, "models.ts") + err = bindings.WriteTS(modelsFile) + if err != nil { + return err + } + + // Write backend method wrappers + return nil + +} diff --git a/v2/internal/binding/binding.go b/v2/internal/binding/binding.go index 6500e6798..2efb16c64 100755 --- a/v2/internal/binding/binding.go +++ b/v2/internal/binding/binding.go @@ -3,7 +3,6 @@ package binding import ( "fmt" "github.com/tkrajina/typescriptify-golang-structs/typescriptify" - "path/filepath" "reflect" "runtime" "strings" @@ -30,6 +29,9 @@ func NewBindings(logger *logger.Logger, structPointersToBind []interface{}, exem converter: typescriptify.New(), } + // No backups + result.converter.WithBackupDir("") + for _, exemption := range exemptions { if exemptions == nil { continue @@ -71,8 +73,9 @@ func (b *Bindings) Add(structPtr interface{}) error { return nil } -func (b *Bindings) WriteTS(dir string) error { - return b.converter.ConvertToFile(filepath.Join(dir, "models.ts")) +func (b *Bindings) WriteTS(filename string) error { + println("WriteTS to:", filename) + return b.converter.ConvertToFile(filename) } func (b *Bindings) DB() *DB {