feat: 添加resolve方法解析dns,关闭script规则需要解析IP

This commit is contained in:
Skyxim
2022-06-05 21:06:26 +08:00
parent 9602d42d7d
commit d578ca788c
7 changed files with 101 additions and 15 deletions

34
component/js/script.go Normal file
View File

@@ -0,0 +1,34 @@
//go:build !no_script
package js
import (
"github.com/dop251/goja"
"sync"
)
var JS sync.Map
var mux sync.Mutex
func NewJS(name, code string) error {
program, err := compiler(name, code)
if err != nil {
return err
}
if _, ok := JS.Load(name); !ok {
mux.Lock()
defer mux.Unlock()
if _, ok := JS.Load(name); !ok {
JS.Store(name, program)
}
}
return nil
}
func Run(name string, args map[string]any, callback func(any, error)) {
if value, ok := JS.Load(name); ok {
run(getLoop(), value.(*goja.Program), args, callback)
}
}