[add] migrate widget

This commit is contained in:
Max 2023-02-03 11:35:48 +08:00
parent f2b31c17db
commit a9d5e8dd42
3 changed files with 64 additions and 62 deletions

View file

@ -9,7 +9,7 @@ COMMIT := $(shell git log | head -n 1 | awk '{print substr($$2, 0, 12)}')
NOW := $(shell date +"%FT%T%z") NOW := $(shell date +"%FT%T%z")
# ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) # ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
TESTFOLDER := $(shell $(GO) list ./... | grep -E 'api|model|flow|script|fs|i18n|connector|query|plugin|cert|crypto|task|schedule|runtime|helper|utils' | grep -vE 'examples|tests*|config|widgets') TESTFOLDER := $(shell $(GO) list ./... | grep -E 'api|model|flow|script|fs|i18n|connector|query|plugin|cert|crypto|task|schedule|runtime|helper|utils|widget' | grep -vE 'examples|tests*|config|widgets')
TESTTAGS ?= "" TESTTAGS ?= ""
# TESTWIDGETS := $(shell $(GO) list ./widgets/...) # TESTWIDGETS := $(shell $(GO) list ./widgets/...)

View file

@ -1,6 +1,8 @@
package widget package widget
import ( import (
"path/filepath"
"github.com/yaoapp/gou/application" "github.com/yaoapp/gou/application"
"github.com/yaoapp/gou/widget" "github.com/yaoapp/gou/widget"
"github.com/yaoapp/yao/config" "github.com/yaoapp/yao/config"
@ -10,14 +12,15 @@ import (
func Load(cfg config.Config) error { func Load(cfg config.Config) error {
register := moduleRegister() register := moduleRegister()
return application.App.Walk("widgets", func(root, file string, isdir bool) error { return application.App.Walk("widgets", func(root, file string, isdir bool) error {
if !isdir { if isdir {
return nil return nil
} }
_, err := widget.Load(file, nil, register) path := filepath.Dir(file)
_, err := widget.Load(path, nil, register)
return err return err
}, config.DSLExtensions...)
}, "widget.yao", "widget.json", "widget.jsonc")
// var root = filepath.Join(cfg.Root, "widgets") // var root = filepath.Join(cfg.Root, "widgets")
// return LoadFrom(root) // return LoadFrom(root)
@ -64,48 +67,46 @@ func Load(cfg config.Config) error {
// } // }
func moduleRegister() widget.ModuleRegister { func moduleRegister() widget.ModuleRegister {
// return widget.ModuleRegister{ return widget.ModuleRegister{
// "Apis": func(name string, source []byte) error { // "Apis": func(name string, source []byte) error {
// _, err := api.Load(string(source), name) // _, err := api.Load(string(source), name)
// log.Trace("[Widget] Register api %s", name) // log.Trace("[Widget] Register api %s", name)
// if err != nil { // if err != nil {
// log.Error("[Widget] Register api %s %v", name, err) // log.Error("[Widget] Register api %s %v", name, err)
// } // }
// return err // return err
// }, // },
// "Models": func(name string, source []byte) error { // "Models": func(name string, source []byte) error {
// _, err := model.Load(string(source), name) // _, err := model.Load(string(source), name)
// log.Trace("[Widget] Register model %s", name) // log.Trace("[Widget] Register model %s", name)
// if err != nil { // if err != nil {
// log.Error("[Widget] Register model %s %v", name, err) // log.Error("[Widget] Register model %s %v", name, err)
// } // }
// return err // return err
// }, // },
// "Tables": func(name string, source []byte) error { // "Tables": func(name string, source []byte) error {
// log.Trace("[Widget] Register table %s", name) // log.Trace("[Widget] Register table %s", name)
// _, err := table.LoadTable(string(source), name) // _, err := table.LoadTable(string(source), name)
// if err != nil { // if err != nil {
// log.Error("[Widget] Register table %s %v", name, err) // log.Error("[Widget] Register table %s %v", name, err)
// } // }
// return nil // return nil
// }, // },
// "Tasks": func(name string, source []byte) error { // "Tasks": func(name string, source []byte) error {
// log.Trace("[Widget] Register task %s", name) // log.Trace("[Widget] Register task %s", name)
// _, err := gou.LoadTask(string(source), name) // _, err := gou.LoadTask(string(source), name)
// if err != nil { // if err != nil {
// log.Error("[Widget] Register task %s %v", name, err) // log.Error("[Widget] Register task %s %v", name, err)
// } // }
// return nil // return nil
// }, // },
// "Schedules": func(name string, source []byte) error { // "Schedules": func(name string, source []byte) error {
// log.Trace("[Widget] Register schedule %s", name) // log.Trace("[Widget] Register schedule %s", name)
// _, err := gou.LoadSchedule(string(source), name) // _, err := gou.LoadSchedule(string(source), name)
// if err != nil { // if err != nil {
// log.Error("[Widget] Register schedule %s %v", name, err) // log.Error("[Widget] Register schedule %s %v", name, err)
// } // }
// return nil // return nil
// }, // },
// } }
return nil
} }

View file

@ -4,22 +4,23 @@ import (
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/yaoapp/gou/process" "github.com/yaoapp/gou/widget"
"github.com/yaoapp/kun/any"
"github.com/yaoapp/yao/config" "github.com/yaoapp/yao/config"
"github.com/yaoapp/yao/share" "github.com/yaoapp/yao/test"
) )
func TestLoad(t *testing.T) { func TestLoad(t *testing.T) {
// runtime.Load(config.Conf) test.Prepare(t, config.Conf)
share.DBConnect(config.Conf.DB) // 创建数据库连接 defer test.Clean()
Load(config.Conf)
v, err := process.New("widgets.dyform.Save", "pad", "pay").Exec()
if err != nil {
t.Fatal(err)
}
res := any.Of(v).Map() Load(config.Conf)
assert.Equal(t, "pad", res.Get("instance")) check(t)
assert.Equal(t, "pay", res.Get("payload")) }
func check(t *testing.T) {
ids := map[string]bool{}
for id := range widget.Widgets {
ids[id] = true
}
assert.True(t, ids["dyform"])
} }