mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 20:40:33 +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/devserver"
|
||||||
"github.com/wailsapp/wails/v2/internal/frontend/dispatcher"
|
"github.com/wailsapp/wails/v2/internal/frontend/dispatcher"
|
||||||
"github.com/wailsapp/wails/v2/internal/frontend/runtime"
|
"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/logger"
|
||||||
"github.com/wailsapp/wails/v2/internal/menumanager"
|
"github.com/wailsapp/wails/v2/internal/menumanager"
|
||||||
|
"github.com/wailsapp/wails/v2/internal/project"
|
||||||
"github.com/wailsapp/wails/v2/internal/signal"
|
"github.com/wailsapp/wails/v2/internal/signal"
|
||||||
pkglogger "github.com/wailsapp/wails/v2/pkg/logger"
|
pkglogger "github.com/wailsapp/wails/v2/pkg/logger"
|
||||||
"github.com/wailsapp/wails/v2/pkg/options"
|
"github.com/wailsapp/wails/v2/pkg/options"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
// App defines a Wails application structure
|
// 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}
|
bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady}
|
||||||
appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions)
|
appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions)
|
||||||
|
|
||||||
bindingsDir := "."
|
err = generateBindings(appBindings)
|
||||||
err = appBindings.WriteTS(bindingsDir)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -128,3 +131,28 @@ func CreateApp(appoptions *options.App) (*App, error) {
|
|||||||
return result, nil
|
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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/tkrajina/typescriptify-golang-structs/typescriptify"
|
"github.com/tkrajina/typescriptify-golang-structs/typescriptify"
|
||||||
"path/filepath"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
@ -30,6 +29,9 @@ func NewBindings(logger *logger.Logger, structPointersToBind []interface{}, exem
|
|||||||
converter: typescriptify.New(),
|
converter: typescriptify.New(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No backups
|
||||||
|
result.converter.WithBackupDir("")
|
||||||
|
|
||||||
for _, exemption := range exemptions {
|
for _, exemption := range exemptions {
|
||||||
if exemptions == nil {
|
if exemptions == nil {
|
||||||
continue
|
continue
|
||||||
@ -71,8 +73,9 @@ func (b *Bindings) Add(structPtr interface{}) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bindings) WriteTS(dir string) error {
|
func (b *Bindings) WriteTS(filename string) error {
|
||||||
return b.converter.ConvertToFile(filepath.Join(dir, "models.ts"))
|
println("WriteTS to:", filename)
|
||||||
|
return b.converter.ConvertToFile(filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bindings) DB() *DB {
|
func (b *Bindings) DB() *DB {
|
||||||
|
Loading…
Reference in New Issue
Block a user