mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-04 07:43:11 +08:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
// Package backendjs deals with generating the `backend` Javascript module
|
|
// used by the frontend to interact with Go
|
|
package backendjs
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
"github.com/wailsapp/wails/v2/internal/fs"
|
|
)
|
|
|
|
// GenerateBackendJSPackage will attempt to create the backend javascript package
|
|
// used by the frontend to access methods and structs
|
|
func GenerateBackendJSPackage() error {
|
|
|
|
// Create directory
|
|
err := createBackendJSDirectory()
|
|
if err != nil {
|
|
return errors.Wrap(err, "Error creating backend directory:")
|
|
}
|
|
|
|
// Generate Packages
|
|
err = generatePackages()
|
|
if err != nil {
|
|
return errors.Wrap(err, "Error generating method wrappers:")
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func createBackendJSDirectory() error {
|
|
|
|
// Calculate the package directory
|
|
// Note this is *always* called from the project directory
|
|
// so using paths relative to CWD is fine
|
|
dir, err := fs.RelativeToCwd("./frontend/backend")
|
|
if err != nil {
|
|
return errors.Wrap(err, "Error creating backend js directory")
|
|
}
|
|
|
|
// Only create the directory if it doesn't exit
|
|
if !fs.DirExists(dir) {
|
|
return fs.Mkdir(dir)
|
|
}
|
|
|
|
return nil
|
|
}
|