yao/widget/widget.go
2023-02-01 17:25:11 +08:00

111 lines
2.7 KiB
Go

package widget
import (
"github.com/yaoapp/gou/application"
"github.com/yaoapp/gou/widget"
"github.com/yaoapp/yao/config"
)
// Load Widgets
func Load(cfg config.Config) error {
register := moduleRegister()
return application.App.Walk("widgets", func(root, file string, isdir bool) error {
if !isdir {
return nil
}
_, err := widget.Load(file, nil, register)
return err
}, config.DSLExtensions...)
// var root = filepath.Join(cfg.Root, "widgets")
// return LoadFrom(root)
}
// // LoadFrom widget
// func LoadFrom(dir string) error {
// register := moduleRegister()
// if share.DirNotExists(dir) {
// return fmt.Errorf("%s does not exists", dir)
// }
// paths, err := ioutil.ReadDir(dir)
// if err != nil {
// return err
// }
// for _, path := range paths {
// if !path.IsDir() {
// continue
// }
// name := path.Name()
// if _, err := os.Stat(filepath.Join(dir, name, "widget.json")); errors.Is(err, os.ErrNotExist) {
// // path/to/whatever does not exist
// continue
// }
// w, err := gou.LoadWidget(filepath.Join(dir, name), name, register)
// if err != nil {
// return err
// }
// // Load instances
// err = w.Load()
// if err != nil {
// return err
// }
// }
// return err
// }
func moduleRegister() widget.ModuleRegister {
// return widget.ModuleRegister{
// "Apis": func(name string, source []byte) error {
// _, err := api.Load(string(source), name)
// log.Trace("[Widget] Register api %s", name)
// if err != nil {
// log.Error("[Widget] Register api %s %v", name, err)
// }
// return err
// },
// "Models": func(name string, source []byte) error {
// _, err := model.Load(string(source), name)
// log.Trace("[Widget] Register model %s", name)
// if err != nil {
// log.Error("[Widget] Register model %s %v", name, err)
// }
// return err
// },
// "Tables": func(name string, source []byte) error {
// log.Trace("[Widget] Register table %s", name)
// _, err := table.LoadTable(string(source), name)
// if err != nil {
// log.Error("[Widget] Register table %s %v", name, err)
// }
// return nil
// },
// "Tasks": func(name string, source []byte) error {
// log.Trace("[Widget] Register task %s", name)
// _, err := gou.LoadTask(string(source), name)
// if err != nil {
// log.Error("[Widget] Register task %s %v", name, err)
// }
// return nil
// },
// "Schedules": func(name string, source []byte) error {
// log.Trace("[Widget] Register schedule %s", name)
// _, err := gou.LoadSchedule(string(source), name)
// if err != nil {
// log.Error("[Widget] Register schedule %s %v", name, err)
// }
// return nil
// },
// }
return nil
}