d2/lib/jsrunner/jsrunner.go
2025-01-15 16:30:33 -07:00

28 lines
450 B
Go

package jsrunner
import "context"
type Engine int
const (
Goja Engine = iota
Native
)
type JSRunner interface {
RunString(code string) (JSValue, error)
NewObject() JSObject
Set(name string, value interface{}) error
WaitPromise(ctx context.Context, val JSValue) (interface{}, error)
Engine() Engine
MustGet(string) (JSValue, error)
}
type JSValue interface {
String() string
Export() interface{}
}
type JSObject interface {
JSValue
}