mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 21:10:54 +08:00
[windows-x] Generate TS models
This commit is contained in:
parent
63117fd519
commit
c5d9fd1a0d
@ -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
|
||||
|
||||
}
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user